Search in sources :

Example 6 with CategoryProductXref

use of org.broadleafcommerce.core.catalog.domain.CategoryProductXref in project BroadleafCommerce by BroadleafCommerce.

the class ProductParentCategoryFieldPersistenceProvider method getDefaultCategory.

protected Category getDefaultCategory(Product product) {
    Category response = null;
    List<CategoryProductXref> xrefs = product.getAllParentCategoryXrefs();
    if (!CollectionUtils.isEmpty(xrefs)) {
        for (CategoryProductXref xref : xrefs) {
            if (xref.getCategory().isActive() && xref.getDefaultReference() != null && xref.getDefaultReference()) {
                response = xref.getCategory();
                break;
            }
        }
    }
    return response;
}
Also used : Category(org.broadleafcommerce.core.catalog.domain.Category) CategoryProductXref(org.broadleafcommerce.core.catalog.domain.CategoryProductXref)

Example 7 with CategoryProductXref

use of org.broadleafcommerce.core.catalog.domain.CategoryProductXref in project BroadleafCommerce by BroadleafCommerce.

the class ProductCustomPersistenceHandler method update.

@Override
public Entity update(PersistencePackage persistencePackage, DynamicEntityDao dynamicEntityDao, RecordHelper helper) throws ServiceException {
    Entity entity = persistencePackage.getEntity();
    try {
        PersistencePerspective persistencePerspective = persistencePackage.getPersistencePerspective();
        Map<String, FieldMetadata> adminProperties = helper.getSimpleMergedProperties(Product.class.getName(), persistencePerspective);
        BasicFieldMetadata defaultCategory = ((BasicFieldMetadata) adminProperties.get("defaultCategory"));
        defaultCategory.setFriendlyName("ProductImpl_Parent_Category");
        if (entity.findProperty("defaultCategory") != null && !StringUtils.isEmpty(entity.findProperty("defaultCategory").getValue())) {
            // Change the inherited type so that this property is disconnected from the entity and validation is temporarily skipped.
            // This is useful when the defaultCategory was previously completely empty for whatever reason. Without this, such
            // a case would fail the validation, even though the property was specified in the submission.
            defaultCategory.setInheritedFromType(String.class.getName());
        }
        Object primaryKey = helper.getPrimaryKey(entity, adminProperties);
        Product adminInstance = (Product) dynamicEntityDao.retrieve(Class.forName(entity.getType()[0]), primaryKey);
        if (adminInstance instanceof ProductBundle) {
            removeBundleFieldRestrictions((ProductBundle) adminInstance, adminProperties, entity);
        }
        CategoryProductXref oldDefault = getCurrentDefaultXref(adminInstance);
        // so override required flag for that field during deployment
        if (BroadleafRequestContext.getBroadleafRequestContext().isProductionSandBox()) {
            ((BasicFieldMetadata) adminProperties.get("defaultCategory")).setRequiredOverride(false);
        }
        adminInstance = (Product) helper.createPopulatedInstance(adminInstance, entity, adminProperties, false);
        adminInstance = dynamicEntityDao.merge(adminInstance);
        boolean handled = false;
        if (extensionManager != null) {
            ExtensionResultStatusType result = extensionManager.getProxy().manageParentCategoryForUpdate(persistencePackage, adminInstance);
            handled = ExtensionResultStatusType.NOT_HANDLED != result;
            extensionManager.getProxy().manageFields(persistencePackage, adminInstance);
        }
        if (!handled) {
            setupXref(adminInstance);
            removeOldDefault(adminInstance, oldDefault, entity);
        }
        return helper.getRecord(adminProperties, adminInstance, null, null);
    } catch (Exception e) {
        throw new ServiceException("Unable to update entity for " + entity.getType()[0], e);
    }
}
Also used : Entity(org.broadleafcommerce.openadmin.dto.Entity) FieldMetadata(org.broadleafcommerce.openadmin.dto.FieldMetadata) BasicFieldMetadata(org.broadleafcommerce.openadmin.dto.BasicFieldMetadata) CategoryProductXref(org.broadleafcommerce.core.catalog.domain.CategoryProductXref) ProductBundle(org.broadleafcommerce.core.catalog.domain.ProductBundle) Product(org.broadleafcommerce.core.catalog.domain.Product) ExtensionResultStatusType(org.broadleafcommerce.common.extension.ExtensionResultStatusType) ServiceException(org.broadleafcommerce.common.exception.ServiceException) PersistencePerspective(org.broadleafcommerce.openadmin.dto.PersistencePerspective) ServiceException(org.broadleafcommerce.common.exception.ServiceException) BasicFieldMetadata(org.broadleafcommerce.openadmin.dto.BasicFieldMetadata) CriteriaTransferObject(org.broadleafcommerce.openadmin.dto.CriteriaTransferObject)

Example 8 with CategoryProductXref

use of org.broadleafcommerce.core.catalog.domain.CategoryProductXref in project BroadleafCommerce by BroadleafCommerce.

the class ProductDaoImpl method readFilteredActiveProductsByCategoryInternal.

protected List<Product> readFilteredActiveProductsByCategoryInternal(Long categoryId, Date currentDate, SearchCriteria searchCriteria) {
    // Set up the criteria query that specifies we want to return Products
    CriteriaBuilder builder = em.getCriteriaBuilder();
    CriteriaQuery<Product> criteria = builder.createQuery(Product.class);
    // The root of our search is Category since we are browsing
    Root<CategoryProductXrefImpl> productXref = criteria.from(CategoryProductXrefImpl.class);
    // We want to filter on attributes from product and sku
    Join<CategoryProductXref, Product> product = productXref.join("product");
    Join<Product, Sku> sku = product.join("defaultSku");
    Join<CategoryProductXref, Category> category = productXref.join("category");
    // Product objects are what we want back
    criteria.select(product);
    // We only want results from the determine category
    List<Predicate> restrictions = new ArrayList<Predicate>();
    restrictions.add(category.get("id").in(sandBoxHelper.mergeCloneIds(CategoryImpl.class, categoryId)));
    attachSearchCriteria(searchCriteria, product, sku, restrictions);
    attachActiveRestriction(currentDate, product, sku, restrictions);
    attachOrderBy(searchCriteria, product, sku, criteria);
    // Execute the query with the restrictions
    criteria.where(restrictions.toArray(new Predicate[restrictions.size()]));
    TypedQuery<Product> typedQuery = em.createQuery(criteria);
    return typedQuery.getResultList();
}
Also used : CriteriaBuilder(javax.persistence.criteria.CriteriaBuilder) Category(org.broadleafcommerce.core.catalog.domain.Category) CategoryProductXref(org.broadleafcommerce.core.catalog.domain.CategoryProductXref) ArrayList(java.util.ArrayList) Product(org.broadleafcommerce.core.catalog.domain.Product) Predicate(javax.persistence.criteria.Predicate) CategoryProductXrefImpl(org.broadleafcommerce.core.catalog.domain.CategoryProductXrefImpl) Sku(org.broadleafcommerce.core.catalog.domain.Sku)

Example 9 with CategoryProductXref

use of org.broadleafcommerce.core.catalog.domain.CategoryProductXref in project BroadleafCommerce by BroadleafCommerce.

the class CatalogTest method testCatalog.

@Test(groups = { "testCatalog" })
@Transactional
public void testCatalog() throws Exception {
    Category category = new CategoryImpl();
    category.setName("Soaps");
    category = catalogService.saveCategory(category);
    Category category2 = new CategoryImpl();
    category2.setName("Towels");
    category2 = catalogService.saveCategory(category2);
    Category category3 = new CategoryImpl();
    category3.setName("SuperCategory");
    category3 = catalogService.saveCategory(category3);
    CategoryXref temp = new CategoryXrefImpl();
    temp.setCategory(category);
    temp.setSubCategory(category3);
    category3.getAllParentCategoryXrefs().add(temp);
    category3 = catalogService.saveCategory(category3);
    // Test category hierarchy
    Long cat3Id = category3.getId();
    category3 = null;
    category3 = catalogService.findCategoryById(cat3Id);
    category3.getAllParentCategoryXrefs().clear();
    CategoryXref temp2 = new CategoryXrefImpl();
    temp2.setCategory(category);
    temp2.setSubCategory(category3);
    category3.getAllParentCategoryXrefs().add(temp2);
    CategoryXref temp3 = new CategoryXrefImpl();
    temp3.setCategory(category2);
    temp3.setSubCategory(category3);
    category3.getAllParentCategoryXrefs().add(temp3);
    category3 = catalogService.saveCategory(category3);
    assert category3.getAllParentCategoryXrefs().size() == 2;
    Product newProduct = new ProductImpl();
    Sku newDefaultSku = new SkuImpl();
    newDefaultSku = catalogService.saveSku(newDefaultSku);
    newProduct.setDefaultSku(newDefaultSku);
    newProduct.setName("Lavender Soap");
    Calendar activeStartCal = Calendar.getInstance();
    activeStartCal.add(Calendar.DAY_OF_YEAR, -2);
    newProduct.setActiveStartDate(activeStartCal.getTime());
    // newProduct.setAllParentCategories(allParentCategories);
    newProduct.setDefaultCategory(category);
    newProduct.getAllParentCategoryXrefs().clear();
    newProduct = catalogService.saveProduct(newProduct);
    CategoryProductXref categoryXref = new CategoryProductXrefImpl();
    categoryXref.setProduct(newProduct);
    categoryXref.setCategory(category);
    newProduct.getAllParentCategoryXrefs().add(categoryXref);
    CategoryProductXref categoryXref2 = new CategoryProductXrefImpl();
    categoryXref2.setProduct(newProduct);
    categoryXref2.setCategory(category2);
    newProduct.getAllParentCategoryXrefs().add(categoryXref2);
    newProduct = catalogService.saveProduct(newProduct);
    Long newProductId = newProduct.getId();
    Product testProduct = catalogService.findProductById(newProductId);
    assert testProduct.getId().equals(testProduct.getId());
    Category testCategory = catalogService.findCategoryByName("Soaps");
    assert testCategory.getId().equals(category.getId());
    testCategory = catalogService.findCategoryById(category.getId());
    assert testCategory.getId().equals(category.getId());
    Media media = new MediaImpl();
    media.setAltText("test");
    media.setTitle("large");
    media.setUrl("http://myUrl");
    category.getCategoryMediaXref().put("large", new CategoryMediaXrefImpl(category, media, "large"));
    catalogService.saveCategory(testCategory);
    testCategory = catalogService.findCategoryById(category.getId());
    assert (testCategory.getCategoryMediaXref().get("large") != null);
    List<Category> categories = catalogService.findAllCategories();
    assert categories != null && categories.size() == 3;
    List<Product> products = catalogService.findAllProducts();
    boolean foundProduct = false;
    for (Product product : products) {
        if (product.getId().equals(newProductId)) {
            foundProduct = true;
        }
    }
    assert foundProduct == true;
    products = catalogService.findProductsByName(newProduct.getName());
    foundProduct = false;
    for (Product product : products) {
        if (product.getId().equals(newProductId)) {
            foundProduct = true;
        }
    }
    assert foundProduct == true;
    Sku newSku = new SkuImpl();
    newSku.setName("Under Armor T-Shirt -- Red");
    newSku.setRetailPrice(new Money(14.99));
    newSku.setActiveStartDate(activeStartCal.getTime());
    newSku = catalogService.saveSku(newSku);
    List<Sku> allSkus = new ArrayList<>();
    allSkus.add(newSku);
    newProduct.setAdditionalSkus(allSkus);
    newProduct = catalogService.saveProduct(newProduct);
    Long skuId = newProduct.getSkus().get(0).getId();
    Sku testSku = catalogService.findSkuById(skuId);
    assert testSku.getId().equals(skuId);
    List<Sku> testSkus = catalogService.findAllSkus();
    boolean foundSku = false;
    for (Sku sku : testSkus) {
        if (sku.getId().equals(skuId)) {
            foundSku = true;
        }
    }
    assert foundSku == true;
    List<Long> skuIds = new ArrayList<>();
    skuIds.add(skuId);
    testSkus = catalogService.findSkusByIds(skuIds);
    foundSku = false;
    for (Sku sku : testSkus) {
        if (sku.getId().equals(skuId)) {
            foundSku = true;
        }
    }
    assert foundSku == true;
}
Also used : CategoryXrefImpl(org.broadleafcommerce.core.catalog.domain.CategoryXrefImpl) Category(org.broadleafcommerce.core.catalog.domain.Category) CategoryProductXref(org.broadleafcommerce.core.catalog.domain.CategoryProductXref) MediaImpl(org.broadleafcommerce.common.media.domain.MediaImpl) Calendar(java.util.Calendar) Media(org.broadleafcommerce.common.media.domain.Media) ArrayList(java.util.ArrayList) Product(org.broadleafcommerce.core.catalog.domain.Product) CategoryMediaXrefImpl(org.broadleafcommerce.core.catalog.domain.CategoryMediaXrefImpl) CategoryXref(org.broadleafcommerce.core.catalog.domain.CategoryXref) CategoryImpl(org.broadleafcommerce.core.catalog.domain.CategoryImpl) Money(org.broadleafcommerce.common.money.Money) SkuImpl(org.broadleafcommerce.core.catalog.domain.SkuImpl) ProductImpl(org.broadleafcommerce.core.catalog.domain.ProductImpl) CategoryProductXrefImpl(org.broadleafcommerce.core.catalog.domain.CategoryProductXrefImpl) Sku(org.broadleafcommerce.core.catalog.domain.Sku) Test(org.testng.annotations.Test) Transactional(org.springframework.transaction.annotation.Transactional)

Example 10 with CategoryProductXref

use of org.broadleafcommerce.core.catalog.domain.CategoryProductXref in project BroadleafCommerce by BroadleafCommerce.

the class OfferDataItemProvider method createOrderWithBundle.

/**
 * Create order with a bundle with two items.  Bundle has a quantity of 2.
 * Bundle item 1 has quantity of 2, bundle item 2 has quantity of 3
 * @return
 */
public Order createOrderWithBundle() {
    Order order = new OrderImpl();
    order.setId(getOrderId());
    Category category1 = new CategoryImpl();
    category1.setName("test1");
    category1.setId(1L);
    Product product1 = new ProductImpl();
    Sku sku1 = new SkuImpl();
    sku1.setName("test1");
    sku1.setId(1L);
    sku1.setDiscountable(true);
    sku1.setRetailPrice(new Money(10D));
    product1.setDefaultSku(sku1);
    CategoryProductXref xref1 = new CategoryProductXrefImpl();
    xref1.setProduct(product1);
    xref1.setCategory(category1);
    category1.getAllProductXrefs().add(xref1);
    Category category2 = new CategoryImpl();
    category2.setName("test2");
    category2.setId(2L);
    Product product2 = new ProductImpl();
    Sku sku2 = new SkuImpl();
    sku2.setName("test2");
    sku2.setId(2L);
    sku2.setDiscountable(true);
    sku2.setRetailPrice(new Money(10D));
    product2.setDefaultSku(sku2);
    CategoryProductXref xref2 = new CategoryProductXrefImpl();
    xref2.setProduct(product2);
    xref2.setCategory(category2);
    category2.getAllProductXrefs().add(xref2);
    ProductBundle pb = new ProductBundleImpl();
    pb.setPricingModel(ProductBundlePricingModelType.ITEM_SUM);
    BundleOrderItem bundleOrderItem = new BundleOrderItemImpl();
    bundleOrderItem.setCategory(category1);
    bundleOrderItem.setName("test1");
    bundleOrderItem.setOrder(order);
    bundleOrderItem.setOrderItemType(OrderItemType.DISCRETE);
    bundleOrderItem.setQuantity(2);
    bundleOrderItem.setId(getOrderItemId());
    bundleOrderItem.setOrder(order);
    bundleOrderItem.setRetailPrice(new Money(10D));
    bundleOrderItem.setProductBundle(pb);
    OrderItemPriceDetail priceDetail = new OrderItemPriceDetailImpl();
    priceDetail.setOrderItem(bundleOrderItem);
    priceDetail.setQuantity(2);
    bundleOrderItem.getOrderItemPriceDetails().add(priceDetail);
    order.getOrderItems().add(bundleOrderItem);
    DiscreteOrderItem orderItem1 = new DiscreteOrderItemImpl();
    orderItem1.setCategory(category1);
    orderItem1.setName("test1");
    orderItem1.setOrder(order);
    orderItem1.setOrderItemType(OrderItemType.DISCRETE);
    orderItem1.setProduct(product1);
    orderItem1.setQuantity(2);
    orderItem1.setSku(sku1);
    orderItem1.setId(getOrderItemId());
    orderItem1.setOrder(order);
    OrderItemPriceDetail priceDetail1 = new OrderItemPriceDetailImpl();
    priceDetail1.setOrderItem(orderItem1);
    priceDetail1.setQuantity(2);
    orderItem1.getOrderItemPriceDetails().add(priceDetail1);
    bundleOrderItem.getDiscreteOrderItems().add(orderItem1);
    DiscreteOrderItem orderItem2 = new DiscreteOrderItemImpl();
    orderItem2.setCategory(category2);
    orderItem2.setName("test2");
    orderItem2.setOrder(order);
    orderItem2.setOrderItemType(OrderItemType.DISCRETE);
    orderItem2.setProduct(product2);
    orderItem2.setQuantity(3);
    orderItem2.setSku(sku2);
    orderItem2.setId(getOrderItemId());
    orderItem2.setOrder(order);
    OrderItemPriceDetail priceDetail2 = new OrderItemPriceDetailImpl();
    priceDetail2.setOrderItem(orderItem2);
    priceDetail2.setQuantity(3);
    orderItem2.getOrderItemPriceDetails().add(priceDetail2);
    bundleOrderItem.getDiscreteOrderItems().add(orderItem2);
    Customer customer = new CustomerImpl();
    customer.setEmailAddress("test@test.com");
    customer.setFirstName("John");
    customer.setLastName("Tester");
    customer.setReceiveEmail(true);
    customer.setRegistered(true);
    order.setCustomer(customer);
    order.setEmailAddress("test@test.com");
    FulfillmentGroup fg1 = new FulfillmentGroupImpl();
    fg1.setId(1L);
    Address address1 = new AddressImpl();
    address1.setAddressLine1("123 Test Road");
    address1.setCity("Dallas");
    Country country = new CountryImpl();
    country.setAbbreviation("US");
    country.setName("United States");
    ISOCountry isoCountry = new ISOCountryImpl();
    isoCountry.setAlpha2("US");
    isoCountry.setName("UNITED STATES");
    address1.setCountry(country);
    address1.setIsoCountryAlpha2(isoCountry);
    address1.setDefault(true);
    address1.setFirstName("John");
    address1.setLastName("Tester");
    address1.setPostalCode("75244");
    Phone primary = new PhoneImpl();
    primary.setPhoneNumber("972-976-1234");
    address1.setPhonePrimary(primary);
    State state = new StateImpl();
    state.setAbbreviation("TX");
    state.setCountry(country);
    state.setName("Texas");
    address1.setState(state);
    address1.setIsoCountrySubdivision("US-TX");
    fg1.setAddress(address1);
    fg1.setOrder(order);
    fg1.setPrimary(true);
    fg1.setRetailShippingPrice(new Money(10D));
    fg1.setShippingPrice(new Money(10D));
    fg1.setType(FulfillmentType.PHYSICAL_SHIP);
    fg1.setOrder(order);
    FulfillmentGroupItem fgItem1 = new FulfillmentGroupItemImpl();
    fgItem1.setFulfillmentGroup(fg1);
    fgItem1.setOrderItem(orderItem1);
    fgItem1.setQuantity(2);
    // fgItem1.setRetailPrice(new Money(19.99D));
    fg1.getFulfillmentGroupItems().add(fgItem1);
    order.getFulfillmentGroups().add(fg1);
    FulfillmentGroup fg2 = new FulfillmentGroupImpl();
    fg2.setId(2L);
    Address address2 = new AddressImpl();
    address2.setAddressLine1("124 Test Road");
    address2.setCity("Dallas");
    Country country2 = new CountryImpl();
    country2.setAbbreviation("US");
    country2.setName("United States");
    ISOCountry isoCountry2 = new ISOCountryImpl();
    isoCountry2.setAlpha2("US");
    isoCountry2.setName("UNITED STATES");
    address2.setCountry(country2);
    address2.setIsoCountryAlpha2(isoCountry2);
    address2.setDefault(true);
    address2.setFirstName("John");
    address2.setLastName("Tester");
    address2.setPostalCode("75244");
    Phone primary2 = new PhoneImpl();
    primary2.setPhoneNumber("972-976-1234");
    address2.setPhonePrimary(primary2);
    State state2 = new StateImpl();
    state2.setAbbreviation("TX");
    state2.setCountry(country2);
    state2.setName("Texas");
    address2.setState(state2);
    address2.setIsoCountrySubdivision("US-TX");
    fg2.setAddress(address2);
    fg2.setOrder(order);
    fg2.setPrimary(true);
    fg2.setRetailShippingPrice(new Money(20D));
    fg2.setShippingPrice(new Money(20D));
    fg2.setType(FulfillmentType.PHYSICAL_SHIP);
    fg2.setOrder(order);
    FulfillmentGroupItem fgItem2 = new FulfillmentGroupItemImpl();
    fgItem2.setFulfillmentGroup(fg2);
    fgItem2.setOrderItem(orderItem2);
    fgItem2.setQuantity(3);
    // fgItem2.setRetailPrice(new Money(29.99D));
    fg2.getFulfillmentGroupItems().add(fgItem2);
    order.getFulfillmentGroups().add(fg2);
    order.setSubTotal(new Money((2 * 19.99D) + (3 * 29.99D)));
    orders.put(order.getId(), order);
    return order;
}
Also used : DiscreteOrderItem(org.broadleafcommerce.core.order.domain.DiscreteOrderItem) Category(org.broadleafcommerce.core.catalog.domain.Category) CategoryProductXref(org.broadleafcommerce.core.catalog.domain.CategoryProductXref) BundleOrderItemImpl(org.broadleafcommerce.core.order.domain.BundleOrderItemImpl) Address(org.broadleafcommerce.profile.core.domain.Address) DiscreteOrderItemImpl(org.broadleafcommerce.core.order.domain.DiscreteOrderItemImpl) Customer(org.broadleafcommerce.profile.core.domain.Customer) OrderItemPriceDetailImpl(org.broadleafcommerce.core.order.domain.OrderItemPriceDetailImpl) Product(org.broadleafcommerce.core.catalog.domain.Product) CustomerImpl(org.broadleafcommerce.profile.core.domain.CustomerImpl) Money(org.broadleafcommerce.common.money.Money) BundleOrderItem(org.broadleafcommerce.core.order.domain.BundleOrderItem) ISOCountryImpl(org.broadleafcommerce.common.i18n.domain.ISOCountryImpl) CountryImpl(org.broadleafcommerce.profile.core.domain.CountryImpl) Phone(org.broadleafcommerce.profile.core.domain.Phone) FulfillmentGroupItem(org.broadleafcommerce.core.order.domain.FulfillmentGroupItem) CategoryProductXrefImpl(org.broadleafcommerce.core.catalog.domain.CategoryProductXrefImpl) ProductBundleImpl(org.broadleafcommerce.core.catalog.domain.ProductBundleImpl) AddressImpl(org.broadleafcommerce.profile.core.domain.AddressImpl) PhoneImpl(org.broadleafcommerce.profile.core.domain.PhoneImpl) FulfillmentGroup(org.broadleafcommerce.core.order.domain.FulfillmentGroup) ISOCountryImpl(org.broadleafcommerce.common.i18n.domain.ISOCountryImpl) ISOCountry(org.broadleafcommerce.common.i18n.domain.ISOCountry) FulfillmentGroupItemImpl(org.broadleafcommerce.core.order.domain.FulfillmentGroupItemImpl) PromotableOrder(org.broadleafcommerce.core.offer.service.discount.domain.PromotableOrder) Order(org.broadleafcommerce.core.order.domain.Order) FulfillmentGroupImpl(org.broadleafcommerce.core.order.domain.FulfillmentGroupImpl) ProductBundle(org.broadleafcommerce.core.catalog.domain.ProductBundle) StateImpl(org.broadleafcommerce.profile.core.domain.StateImpl) CategoryImpl(org.broadleafcommerce.core.catalog.domain.CategoryImpl) SkuImpl(org.broadleafcommerce.core.catalog.domain.SkuImpl) ProductImpl(org.broadleafcommerce.core.catalog.domain.ProductImpl) State(org.broadleafcommerce.profile.core.domain.State) OrderImpl(org.broadleafcommerce.core.order.domain.OrderImpl) PromotableOrderImpl(org.broadleafcommerce.core.offer.service.discount.domain.PromotableOrderImpl) Country(org.broadleafcommerce.profile.core.domain.Country) ISOCountry(org.broadleafcommerce.common.i18n.domain.ISOCountry) OrderItemPriceDetail(org.broadleafcommerce.core.order.domain.OrderItemPriceDetail) Sku(org.broadleafcommerce.core.catalog.domain.Sku)

Aggregations

CategoryProductXref (org.broadleafcommerce.core.catalog.domain.CategoryProductXref)11 CategoryProductXrefImpl (org.broadleafcommerce.core.catalog.domain.CategoryProductXrefImpl)8 Product (org.broadleafcommerce.core.catalog.domain.Product)8 Category (org.broadleafcommerce.core.catalog.domain.Category)7 CategoryImpl (org.broadleafcommerce.core.catalog.domain.CategoryImpl)6 Sku (org.broadleafcommerce.core.catalog.domain.Sku)6 Money (org.broadleafcommerce.common.money.Money)5 ProductImpl (org.broadleafcommerce.core.catalog.domain.ProductImpl)5 SkuImpl (org.broadleafcommerce.core.catalog.domain.SkuImpl)5 ArrayList (java.util.ArrayList)4 DiscreteOrderItemImpl (org.broadleafcommerce.core.order.domain.DiscreteOrderItemImpl)4 OrderImpl (org.broadleafcommerce.core.order.domain.OrderImpl)4 PromotableOrder (org.broadleafcommerce.core.offer.service.discount.domain.PromotableOrder)3 PromotableOrderImpl (org.broadleafcommerce.core.offer.service.discount.domain.PromotableOrderImpl)3 Order (org.broadleafcommerce.core.order.domain.Order)3 OrderItemPriceDetail (org.broadleafcommerce.core.order.domain.OrderItemPriceDetail)3 OrderItemPriceDetailImpl (org.broadleafcommerce.core.order.domain.OrderItemPriceDetailImpl)3 Calendar (java.util.Calendar)2 ISOCountry (org.broadleafcommerce.common.i18n.domain.ISOCountry)2 ISOCountryImpl (org.broadleafcommerce.common.i18n.domain.ISOCountryImpl)2