@Override public Map<String, Object> populateModelVariables(String tagName, Map<String, String> tagAttributes, BroadleafTemplateContext context) { HashMap<String, String> productOptionDisplayValues = new HashMap<>(); Object item = context.parseExpression(tagAttributes.get("orderItem")); if (item instanceof DiscreteOrderItem) { DiscreteOrderItem orderItem = (DiscreteOrderItem) item; for (String i : orderItem.getOrderItemAttributes().keySet()) { for (ProductOption option : orderItem.getProduct().getProductOptions()) { if (option.getAttributeName().equals(i) && !StringUtils.isEmpty(orderItem.getOrderItemAttributes().get(i).toString())) { productOptionDisplayValues.put(option.getLabel(), orderItem.getOrderItemAttributes().get(i).toString()); } } } } return ImmutableMap.of("productOptionDisplayValues", (Object) productOptionDisplayValues); }
protected OrderItem findMatchingItem(Order order, OrderItemRequestDTO itemToFind) { if (order == null) { return null; } for (OrderItem currentItem : order.getOrderItems()) { if (currentItem instanceof DiscreteOrderItem) { DiscreteOrderItem discreteItem = (DiscreteOrderItem) currentItem; if (itemMatches(discreteItem.getSku(), discreteItem.getProduct(), discreteItem.getOrderItemAttributes(), itemToFind)) { return discreteItem; } } else if (currentItem instanceof BundleOrderItem) { BundleOrderItem bundleItem = (BundleOrderItem) currentItem; if (itemMatches(bundleItem.getSku(), bundleItem.getProduct(), null, itemToFind)) { return bundleItem; } } } return null; }
Map<String, OrderItemAttribute> attributeValues = discreteOI.getOrderItemAttributes(); Product product = discreteOI.getProduct();
.price(Optional.ofNullable(discreteOrderItem.getTotalPrice()).orElse(errCode).getAmount()) .attributes( Optional.ofNullable(discreteOrderItem.getOrderItemAttributes()) .map(Map::values) .map(Collection::stream)