@Override public BundleOrderItem createBundleOrderItem(final ProductBundleOrderItemRequest itemRequest) { return createBundleOrderItem(itemRequest, true); }
protected Set<Product> findAllChildProductsInRequest(List<OrderItemRequestDTO> childItems) { Set<Product> allProductsSet = new HashSet<Product>(); for (OrderItemRequestDTO child : childItems) { ConfigurableOrderItemRequest configChild = (ConfigurableOrderItemRequest) child; Product childProduct = configChild.getProduct(); if (childProduct != null) { allProductsSet.add(childProduct); } else { List<OrderItemRequestDTO> productChoices = new ArrayList<OrderItemRequestDTO>(configChild.getProductChoices()); allProductsSet.addAll(findAllChildProductsInRequest(productChoices)); } } return allProductsSet; }
itemRequest.setItemName(ndr.getItemName()); itemRequest.setOrder(order); item = createOrderItem(itemRequest); } else if (product == null || !(product instanceof ProductBundle)) { DiscreteOrderItemRequest itemRequest = new DiscreteOrderItemRequest(); itemRequest.setSalePriceOverride(orderItemRequestDTO.getOverrideSalePrice()); itemRequest.setRetailPriceOverride(orderItemRequestDTO.getOverrideRetailPrice()); item = createDiscreteOrderItem(itemRequest); } else { ProductBundleOrderItemRequest bundleItemRequest = new ProductBundleOrderItemRequest(); bundleItemRequest.setSalePriceOverride(orderItemRequestDTO.getOverrideSalePrice()); bundleItemRequest.setRetailPriceOverride(orderItemRequestDTO.getOverrideRetailPrice()); item = createBundleOrderItem(bundleItemRequest, false); OrderItem parent = readOrderItemById(orderItemRequestDTO.getParentOrderItemId()); item.setParentOrderItem(parent); applyAdditionalOrderItemProperties(item);
public DiscreteOrderItem createDiscreteOrderItem(final AbstractOrderItemRequest itemRequest) { final DiscreteOrderItem item = (DiscreteOrderItem) orderItemDao.create(OrderItemType.DISCRETE); populateDiscreteOrderItem(item, itemRequest); item.setBaseSalePrice(itemRequest.getSku().getSalePrice()); item.setBaseRetailPrice(itemRequest.getSku().getRetailPrice()); // item.updatePrices(); item.updateSaleAndRetailPrices(); item.assignFinalPrice(); item.setPersonalMessage(itemRequest.getPersonalMessage()); applyAdditionalOrderItemProperties(item); return item; }
DiscreteOrderItem discreteOrderItem; if (discreteItemRequest instanceof GiftWrapOrderItemRequest) { discreteOrderItem = createGiftWrapOrderItem((GiftWrapOrderItemRequest) discreteItemRequest); } else { discreteOrderItem = createDiscreteOrderItem(discreteItemRequest); applyAdditionalOrderItemProperties(item);
bundleItemRequest.setBundleOrderItem(bundleOrderItem); DiscreteOrderItem bundleDiscreteItem = createDiscreteOrderItem(bundleItemRequest); bundleDiscreteItem.setSkuBundleItem(skuBundleItem); bundleOrderItem.getDiscreteOrderItems().add(bundleDiscreteItem); bundleOrderItem = (BundleOrderItem) saveOrderItem(bundleOrderItem); applyAdditionalOrderItemProperties(bundleOrderItem);
@Override public OrderItem updateDiscreteOrderItem(OrderItem item, final DiscreteOrderItemRequest itemRequest) { List<ProductOption> productOptions = null; if (item instanceof DiscreteOrderItem) { productOptions = ((DiscreteOrderItem) item).getProduct().getProductOptions(); } else if (item instanceof BundleOrderItem) { productOptions = ((BundleOrderItem) item).getProduct().getProductOptions(); } List<String> removeKeys = new ArrayList<String>(); if (productOptions != null && itemRequest.getItemAttributes() != null) { for (String name : itemRequest.getItemAttributes().keySet()) { //we do not let them update all product options. //Only allow them to update those options that can have validation to take place at later time //if option.getProductOptionValidationType() is null then it might change the sku, so we dont allow those for (ProductOption option : productOptions) { if (option.getAttributeName().equals(name) && option.getProductOptionValidationStrategyType() == null) { removeKeys.add(name); break; } } } } for (String name : removeKeys) { itemRequest.getItemAttributes().remove(name); } populateProductOptionAttributes(item, itemRequest.getItemAttributes()); applyAdditionalOrderItemProperties(item); return item; }
orderItemRequest.getChildOrderItems().add(buildOrderItemRequestDTOFromOrderItem(childItem));
@Override public DiscreteOrderItem createDiscreteOrderItem(final DiscreteOrderItemRequest itemRequest) { final DiscreteOrderItem item = (DiscreteOrderItem) orderItemDao.create(OrderItemType.DISCRETE); populateDiscreteOrderItem(item, itemRequest); item.setBundleOrderItem(itemRequest.getBundleOrderItem()); if (itemRequest.getSalePriceOverride() != null) { item.setBaseSalePrice(itemRequest.getSalePriceOverride()); } item.setDiscreteOrderItemFeePrices(itemRequest.getDiscreteOrderItemFeePrices()); if (itemRequest.getSalePriceOverride() != null) { item.setSalePriceOverride(Boolean.TRUE); item.setSalePrice(itemRequest.getSalePriceOverride()); item.setBaseSalePrice(itemRequest.getSalePriceOverride()); } if (itemRequest.getRetailPriceOverride() != null) { item.setRetailPriceOverride(Boolean.TRUE); item.setRetailPrice(itemRequest.getRetailPriceOverride()); item.setBaseRetailPrice(itemRequest.getRetailPriceOverride()); } for (DiscreteOrderItemFeePrice feePrice : item.getDiscreteOrderItemFeePrices()) { feePrice.setDiscreteOrderItem(item); } if (MapUtils.isNotEmpty(itemRequest.getAdditionalAttributes())) { item.setAdditionalAttributes(itemRequest.getAdditionalAttributes()); } item.setPersonalMessage(itemRequest.getPersonalMessage()); applyAdditionalOrderItemProperties(item); return item; }
protected void populateDiscreteOrderItem(DiscreteOrderItem item, AbstractOrderItemRequest itemRequest) { item.setSku(itemRequest.getSku()); item.setQuantity(itemRequest.getQuantity()); item.setCategory(itemRequest.getCategory()); item.setProduct(itemRequest.getProduct()); item.setOrder(itemRequest.getOrder()); Map<String, String> attributes = itemRequest.getItemAttributes(); populateProductOptionAttributes(item, attributes); applyAdditionalOrderItemProperties(item); }
@Override public DiscreteOrderItem createDynamicPriceDiscreteOrderItem(final DiscreteOrderItemRequest itemRequest, @SuppressWarnings("rawtypes") HashMap skuPricingConsiderations) { final DiscreteOrderItem item = (DiscreteOrderItem) orderItemDao.create(OrderItemType.EXTERNALLY_PRICED); populateDiscreteOrderItem(item, itemRequest); SkuPriceWrapper wrapper = new SkuPriceWrapper(itemRequest.getSku()); DynamicSkuPrices prices = dynamicSkuPricingService.getSkuPrices(wrapper, skuPricingConsiderations); item.setBundleOrderItem(itemRequest.getBundleOrderItem()); item.setBaseRetailPrice(prices.getRetailPrice()); item.setBaseSalePrice(prices.getSalePrice()); item.setSalePrice(prices.getSalePrice()); item.setRetailPrice(prices.getRetailPrice()); if (itemRequest.getSalePriceOverride() != null) { item.setSalePriceOverride(Boolean.TRUE); item.setSalePrice(itemRequest.getSalePriceOverride()); item.setBaseSalePrice(itemRequest.getSalePriceOverride()); } if (itemRequest.getRetailPriceOverride() != null) { item.setRetailPriceOverride(Boolean.TRUE); item.setRetailPrice(itemRequest.getRetailPriceOverride()); item.setBaseRetailPrice(itemRequest.getRetailPriceOverride()); } item.setDiscreteOrderItemFeePrices(itemRequest.getDiscreteOrderItemFeePrices()); for (DiscreteOrderItemFeePrice fee : itemRequest.getDiscreteOrderItemFeePrices()) { item.setSalePrice(item.getSalePrice().add(fee.getAmount())); item.setRetailPrice(item.getRetailPrice().add(fee.getAmount())); } item.setPersonalMessage(itemRequest.getPersonalMessage()); applyAdditionalOrderItemProperties(item); return item; }
@Override public Set<Product> findAllProductsInRequest(ConfigurableOrderItemRequest itemRequest) { Set<Product> allProductsSet = findAllChildProductsInRequest(itemRequest.getChildOrderItems()); allProductsSet.add(itemRequest.getProduct()); return allProductsSet; }