use of com.salesmanager.core.model.catalog.category.Category in project shopizer by shopizer-ecommerce.
the class CategoryServiceImpl method create.
public void create(Category category) throws ServiceException {
super.create(category);
StringBuilder lineage = new StringBuilder();
Category parent = category.getParent();
if (parent != null && parent.getId() != null && parent.getId() != 0) {
// get parent category
Category p = this.getById(parent.getId());
lineage.append(p.getLineage()).append(category.getId()).append("/");
category.setDepth(p.getDepth() + 1);
} else {
lineage.append("/").append(category.getId()).append("/");
category.setDepth(0);
}
category.setLineage(lineage.toString());
super.update(category);
}
use of com.salesmanager.core.model.catalog.category.Category in project shopizer by shopizer-ecommerce.
the class OrderTest method getMerchantOrders.
@Test
public void getMerchantOrders() throws ServiceException {
Currency currency = currencyService.getByCode(USD_CURRENCY_CODE);
Country country = countryService.getByCode("US");
Zone zone = zoneService.getByCode("VT");
Language en = languageService.getByCode("en");
MerchantStore merchant = merchantService.getByCode(MerchantStore.DEFAULT_STORE);
/**
* Create a customer *
*/
Customer customer = new Customer();
customer.setMerchantStore(merchant);
customer.setDefaultLanguage(en);
customer.setEmailAddress("email@email.com");
customer.setPassword("-1999");
customer.setNick("My New nick");
customer.setCompany(" Apple");
customer.setGender(CustomerGender.M);
customer.setDateOfBirth(new Date());
Billing billing = new Billing();
billing.setAddress("Billing address");
billing.setCity("Billing city");
billing.setCompany("Billing company");
billing.setCountry(country);
billing.setFirstName("Carl");
billing.setLastName("Samson");
billing.setPostalCode("Billing postal code");
billing.setState("Billing state");
billing.setZone(zone);
Delivery delivery = new Delivery();
delivery.setAddress("Shipping address");
delivery.setCountry(country);
delivery.setZone(zone);
customer.setBilling(billing);
customer.setDelivery(delivery);
customerService.create(customer);
// create a product with attributes
/**
* CATALOG CREATION *
*/
ProductType generalType = productTypeService.getProductType(ProductType.GENERAL_TYPE);
/**
* Create the category
*/
Category shirts = new Category();
shirts.setMerchantStore(merchant);
shirts.setCode("shirts");
CategoryDescription shirtsEnglishDescription = new CategoryDescription();
shirtsEnglishDescription.setName("Shirts");
shirtsEnglishDescription.setCategory(shirts);
shirtsEnglishDescription.setLanguage(en);
Set<CategoryDescription> descriptions = new HashSet<CategoryDescription>();
descriptions.add(shirtsEnglishDescription);
shirts.setDescriptions(descriptions);
categoryService.create(shirts);
/**
* Create a manufacturer
*/
Manufacturer addidas = new Manufacturer();
addidas.setMerchantStore(merchant);
addidas.setCode("addidas");
ManufacturerDescription addidasDesc = new ManufacturerDescription();
addidasDesc.setLanguage(en);
addidasDesc.setManufacturer(addidas);
addidasDesc.setName("Addidas");
addidas.getDescriptions().add(addidasDesc);
manufacturerService.create(addidas);
/**
* Create an option
*/
ProductOption option = new ProductOption();
option.setMerchantStore(merchant);
option.setCode("color");
option.setProductOptionType(ProductOptionType.Radio.name());
ProductOptionDescription optionDescription = new ProductOptionDescription();
optionDescription.setLanguage(en);
optionDescription.setName("Color");
optionDescription.setDescription("Item color");
optionDescription.setProductOption(option);
option.getDescriptions().add(optionDescription);
productOptionService.saveOrUpdate(option);
/**
* first option value *
*/
ProductOptionValue white = new ProductOptionValue();
white.setMerchantStore(merchant);
white.setCode("white");
ProductOptionValueDescription whiteDescription = new ProductOptionValueDescription();
whiteDescription.setLanguage(en);
whiteDescription.setName("White");
whiteDescription.setDescription("White color");
whiteDescription.setProductOptionValue(white);
white.getDescriptions().add(whiteDescription);
productOptionValueService.saveOrUpdate(white);
ProductOptionValue black = new ProductOptionValue();
black.setMerchantStore(merchant);
black.setCode("black");
/**
* second option value *
*/
ProductOptionValueDescription blackDesc = new ProductOptionValueDescription();
blackDesc.setLanguage(en);
blackDesc.setName("Black");
blackDesc.setDescription("Black color");
blackDesc.setProductOptionValue(black);
black.getDescriptions().add(blackDesc);
productOptionValueService.saveOrUpdate(black);
/**
* Create a complex product
*/
Product product = new Product();
product.setProductHeight(new BigDecimal(4));
product.setProductLength(new BigDecimal(3));
product.setProductWidth(new BigDecimal(1));
product.setSku("TB12345");
product.setManufacturer(addidas);
product.setType(generalType);
product.setMerchantStore(merchant);
// Product description
ProductDescription description = new ProductDescription();
description.setName("Short sleeves shirt");
description.setLanguage(en);
description.setProduct(product);
product.getDescriptions().add(description);
product.getCategories().add(shirts);
// availability
ProductAvailability availability = new ProductAvailability();
availability.setProductDateAvailable(new Date());
availability.setProductQuantity(100);
availability.setRegion("*");
// associate with product
availability.setProduct(product);
// price
ProductPrice dprice = new ProductPrice();
dprice.setDefaultPrice(true);
dprice.setProductPriceAmount(new BigDecimal(29.99));
dprice.setProductAvailability(availability);
ProductPriceDescription dpd = new ProductPriceDescription();
dpd.setName("Base price");
dpd.setProductPrice(dprice);
dpd.setLanguage(en);
dprice.getDescriptions().add(dpd);
availability.getPrices().add(dprice);
product.getAvailabilities().add(availability);
// attributes
// white
ProductAttribute whiteAttribute = new ProductAttribute();
whiteAttribute.setProduct(product);
whiteAttribute.setProductOption(option);
whiteAttribute.setAttributeDefault(true);
// no price variation
whiteAttribute.setProductAttributePrice(new BigDecimal(0));
// no weight variation
whiteAttribute.setProductAttributeWeight(new BigDecimal(0));
whiteAttribute.setProductOption(option);
whiteAttribute.setProductOptionValue(white);
product.getAttributes().add(whiteAttribute);
// black
ProductAttribute blackAttribute = new ProductAttribute();
blackAttribute.setProduct(product);
blackAttribute.setProductOption(option);
// 5 + dollars
blackAttribute.setProductAttributePrice(new BigDecimal(5));
// no weight variation
blackAttribute.setProductAttributeWeight(new BigDecimal(0));
blackAttribute.setProductOption(option);
blackAttribute.setProductOptionValue(black);
product.getAttributes().add(blackAttribute);
productService.create(product);
/**
* Create an order *
*/
Order order = new Order();
/**
* payment details *
*/
CreditCard creditCard = new CreditCard();
creditCard.setCardType(CreditCardType.VISA);
creditCard.setCcCvv("123");
creditCard.setCcExpires("12/30/2020");
creditCard.setCcNumber("123456789");
creditCard.setCcOwner("ccOwner");
order.setCreditCard(creditCard);
/**
* order core attributes *
*/
order.setDatePurchased(new Date());
order.setCurrency(currency);
order.setMerchant(merchant);
order.setLastModified(new Date());
// no price variation because of the currency
order.setCurrencyValue(new BigDecimal(1));
order.setCustomerId(1L);
order.setDelivery(delivery);
order.setIpAddress("ipAddress");
order.setMerchant(merchant);
order.setOrderDateFinished(new Date());
order.setPaymentType(PaymentType.CREDITCARD);
order.setPaymentModuleCode("payment Module Code");
order.setShippingModuleCode("UPS");
order.setStatus(OrderStatus.ORDERED);
order.setCustomerAgreement(true);
order.setConfirmedAddress(true);
order.setTotal(dprice.getProductPriceAmount());
order.setCustomerEmailAddress(customer.getEmailAddress());
order.setBilling(billing);
order.setDelivery(delivery);
/**
* ORDER PRODUCT *
*/
// OrderProduct
OrderProduct oproduct = new OrderProduct();
oproduct.setDownloads(null);
oproduct.setOneTimeCharge(dprice.getProductPriceAmount());
oproduct.setOrder(order);
oproduct.setProductName(description.getName());
oproduct.setProductQuantity(1);
oproduct.setSku(product.getSku());
// set order product price
OrderProductPrice orderProductPrice = new OrderProductPrice();
// default price (same as default product price)
orderProductPrice.setDefaultPrice(true);
orderProductPrice.setOrderProduct(oproduct);
orderProductPrice.setProductPrice(dprice.getProductPriceAmount());
orderProductPrice.setProductPriceCode(ProductPriceType.ONE_TIME.name());
oproduct.getPrices().add(orderProductPrice);
// order product attribute
OrderProductAttribute orderProductAttribute = new OrderProductAttribute();
orderProductAttribute.setOrderProduct(oproduct);
// no extra charge
orderProductAttribute.setProductAttributePrice(new BigDecimal("0.00"));
orderProductAttribute.setProductAttributeName(whiteDescription.getName());
orderProductAttribute.setProductOptionId(option.getId());
orderProductAttribute.setProductOptionValueId(white.getId());
oproduct.getOrderAttributes().add(orderProductAttribute);
order.getOrderProducts().add(oproduct);
/**
* ORDER TOTAL *
*/
OrderTotal subTotal = new OrderTotal();
subTotal.setOrder(order);
subTotal.setOrderTotalCode(Constants.OT_SUBTOTAL_MODULE_CODE);
subTotal.setSortOrder(0);
subTotal.setTitle("Sub Total");
subTotal.setValue(dprice.getProductPriceAmount());
order.getOrderTotal().add(subTotal);
OrderTotal total = new OrderTotal();
total.setOrder(order);
total.setOrderTotalCode(Constants.OT_TOTAL_MODULE_CODE);
total.setSortOrder(1);
total.setTitle("Total");
total.setValue(dprice.getProductPriceAmount());
order.getOrderTotal().add(total);
/**
* ORDER HISTORY *
*/
// create a log entry in order history
OrderStatusHistory history = new OrderStatusHistory();
history.setOrder(order);
history.setDateAdded(new Date());
history.setStatus(OrderStatus.ORDERED);
history.setComments("We received your order");
order.getOrderHistory().add(history);
/**
* CREATE ORDER *
*/
orderService.create(order);
/**
* SEARCH ORDERS *
*/
OrderCriteria criteria = new OrderCriteria();
criteria.setStartIndex(0);
criteria.setMaxCount(10);
OrderList ordserList = orderService.listByStore(merchant, criteria);
Assert.assertNotNull(ordserList);
Assert.assertNotNull("Merchant Orders are null.", ordserList.getOrders());
Assert.assertTrue("Merchant Orders count is not one.", (ordserList.getOrders() != null && ordserList.getOrders().size() == 1));
}
use of com.salesmanager.core.model.catalog.category.Category in project shopizer by shopizer-ecommerce.
the class ProductNextGenTest method testCreateProduct.
/**
* This method creates single product with variants using multiple catalog APIs
* @throws ServiceException
*/
@Test
public void testCreateProduct() throws Exception {
Language en = languageService.getByCode("en");
MerchantStore store = merchantService.getByCode(MerchantStore.DEFAULT_STORE);
ProductType generalType = productTypeService.getProductType(ProductType.GENERAL_TYPE);
/**
* Category
*/
Category shoes = new Category();
shoes.setMerchantStore(store);
shoes.setCode("shoes");
CategoryDescription shoesDescription = new CategoryDescription();
shoesDescription.setName("Shoes");
shoesDescription.setCategory(shoes);
shoesDescription.setLanguage(en);
Set<CategoryDescription> descriptions = new HashSet<CategoryDescription>();
descriptions.add(shoesDescription);
shoes.setDescriptions(descriptions);
categoryService.create(shoes);
//
/**
* Manufacturer / Brand
*/
Manufacturer brown = new Manufacturer();
brown.setMerchantStore(store);
brown.setCode("brown");
ManufacturerDescription brownd = new ManufacturerDescription();
brownd.setLanguage(en);
brownd.setName("Brown's");
brownd.setManufacturer(brown);
brown.getDescriptions().add(brownd);
manufacturerService.create(brown);
//
// PRODUCT
// -- non variable informations
Product summerShoes = new Product();
summerShoes.setProductHeight(new BigDecimal(3));
// average
summerShoes.setProductLength(new BigDecimal(9));
summerShoes.setProductWidth(new BigDecimal(4));
summerShoes.setSku("BR12345");
summerShoes.setManufacturer(brown);
summerShoes.setType(generalType);
summerShoes.setMerchantStore(store);
// is available
summerShoes.setAvailable(true);
// Product description
ProductDescription description = new ProductDescription();
description.setName("Summer shoes");
description.setLanguage(en);
description.setProduct(summerShoes);
summerShoes.getDescriptions().add(description);
// add product to shoes category
summerShoes.getCategories().add(shoes);
// -- end non variable informations
// --- add attributes to the product (size)
createOptions(summerShoes);
// --- options set
/**
* Option Set facilitates product attributes creation for redundant product creation
* it offers a list of possible options and options values administrator can create in order
* to easily create attributes
*/
createOptionsSet(store);
// --- create attributes (available options)
/**
* Add options to product
* Those are attributes
*/
ProductAttribute size_nine = new ProductAttribute();
size_nine.setProduct(summerShoes);
size_nine.setProductOption(size);
size_nine.setAttributeDefault(true);
// no price variation
size_nine.setProductAttributePrice(new BigDecimal(0));
// no weight variation
size_nine.setProductAttributeWeight(new BigDecimal(0));
size_nine.setProductOptionValue(nine);
summerShoes.getAttributes().add(size_nine);
ProductAttribute size_nine_half = new ProductAttribute();
size_nine_half.setProduct(summerShoes);
size_nine_half.setProductOption(size);
// no price variation
size_nine_half.setProductAttributePrice(new BigDecimal(0));
// weight variation
size_nine_half.setProductAttributeWeight(new BigDecimal(0));
size_nine_half.setProductOptionValue(nineHalf);
summerShoes.getAttributes().add(size_nine_half);
ProductAttribute size_ten = new ProductAttribute();
size_ten.setProduct(summerShoes);
size_ten.setProductOption(size);
// no price variation
size_ten.setProductAttributePrice(new BigDecimal(0));
// weight variation
size_ten.setProductAttributeWeight(new BigDecimal(0));
size_ten.setProductOptionValue(ten);
summerShoes.getAttributes().add(size_ten);
// ---- variable informations - inventory - variants - prices
ProductAvailability availability = createInventory(store, 100, new BigDecimal("99.99"));
summerShoes.getAvailabilities().add(availability);
// ---- add available sizes
// DEFAULT (total quantity of 100 distributed)
// TODO use pre 3.0 variation
// 40 of 9
/* ProductVariant size_nine_DEFAULT = new ProductVariant();
size_nine_DEFAULT.setAttribute(size_nine);
size_nine_DEFAULT.setProductQuantity(40);
size_nine_DEFAULT.setProductAvailability(availability);*/
// availability.getVariants().add(size_nine_DEFAULT);
// 30 of 9.5
/* ProductVariant size_nine_half_DEFAULT = new ProductVariant();
size_nine_half_DEFAULT.setAttribute(size_nine_half);
size_nine_half_DEFAULT.setProductQuantity(30);
size_nine_half_DEFAULT.setProductAvailability(availability);*/
// availability.getVariants().add(size_nine_half_DEFAULT);
// 30 of ten
/* ProductVariant size_ten_DEFAULT = new ProductVariant();
size_ten_DEFAULT.setAttribute(size_nine_half);
size_ten_DEFAULT.setProductQuantity(30);
size_ten_DEFAULT.setProductAvailability(availability);*/
// availability.getVariants().add(size_ten_DEFAULT);
// inventory for store DEFAULT and product summerShoes
availability.setProduct(summerShoes);
availability.setMerchantStore(store);
/**
* Create product
*/
productService.create(summerShoes);
// ObjectMapper mapper = new ObjectMapper();
// Converting the Object to JSONString
// String jsonString = mapper.writeValueAsString(summerShoes);
// System.out.println(jsonString);
Product p = productService.getById(summerShoes.getId());
assertNotNull(p);
// List<ProductAvailability> avs = p.getAvailabilities().stream().filter(a -> !a.getVariants().isEmpty()).collect(Collectors.toList());
// assertThat(avs, not(empty()));
// test product list service
// list products per category
// list 5 items
ProductCriteria productCriteria = new ProductCriteria();
productCriteria.setCategoryIds(Stream.of(shoes.getId()).collect(Collectors.toList()));
Page<Product> listByCategory = productService.listByStore(store, en, productCriteria, 0, 5);
List<Product> productsByCategory = listByCategory.getContent();
assertThat(productsByCategory, not(empty()));
// list products per color attribute
Page<Product> listByOptionValue = productService.listByStore(store, en, productCriteria, 0, 5);
productCriteria = new ProductCriteria();
productCriteria.setOptionValueIds(Stream.of(nineHalf.getId()).collect(Collectors.toList()));
List<Product> productsByOption = listByOptionValue.getContent();
assertThat(productsByOption, not(empty()));
}
use of com.salesmanager.core.model.catalog.category.Category in project shopizer by shopizer-ecommerce.
the class ProductTest method testCreateProduct.
/**
* This method creates multiple products using multiple catalog APIs
* @throws ServiceException
*/
@Test
public void testCreateProduct() throws Exception {
Language en = languageService.getByCode("en");
Language fr = languageService.getByCode("fr");
MerchantStore store = merchantService.getByCode(MerchantStore.DEFAULT_STORE);
ProductType generalType = productTypeService.getProductType(ProductType.GENERAL_TYPE);
Category book = new Category();
book.setMerchantStore(store);
book.setCode("book");
CategoryDescription bookEnglishDescription = new CategoryDescription();
bookEnglishDescription.setName("Book");
bookEnglishDescription.setCategory(book);
bookEnglishDescription.setLanguage(en);
CategoryDescription bookFrenchDescription = new CategoryDescription();
bookFrenchDescription.setName("Livre");
bookFrenchDescription.setCategory(book);
bookFrenchDescription.setLanguage(fr);
Set<CategoryDescription> descriptions = new HashSet<CategoryDescription>();
descriptions.add(bookEnglishDescription);
descriptions.add(bookFrenchDescription);
book.setDescriptions(descriptions);
categoryService.create(book);
Category music = new Category();
music.setMerchantStore(store);
music.setCode("music");
CategoryDescription musicEnglishDescription = new CategoryDescription();
musicEnglishDescription.setName("Music");
musicEnglishDescription.setCategory(music);
musicEnglishDescription.setLanguage(en);
CategoryDescription musicFrenchDescription = new CategoryDescription();
musicFrenchDescription.setName("Musique");
musicFrenchDescription.setCategory(music);
musicFrenchDescription.setLanguage(fr);
Set<CategoryDescription> descriptions2 = new HashSet<CategoryDescription>();
descriptions2.add(musicEnglishDescription);
descriptions2.add(musicFrenchDescription);
music.setDescriptions(descriptions2);
categoryService.create(music);
Category novell = new Category();
novell.setMerchantStore(store);
novell.setCode("novell");
CategoryDescription novellEnglishDescription = new CategoryDescription();
novellEnglishDescription.setName("Novell");
novellEnglishDescription.setCategory(novell);
novellEnglishDescription.setLanguage(en);
CategoryDescription novellFrenchDescription = new CategoryDescription();
novellFrenchDescription.setName("Roman");
novellFrenchDescription.setCategory(novell);
novellFrenchDescription.setLanguage(fr);
Set<CategoryDescription> descriptions3 = new HashSet<CategoryDescription>();
descriptions3.add(novellEnglishDescription);
descriptions3.add(novellFrenchDescription);
novell.setDescriptions(descriptions3);
novell.setParent(book);
categoryService.create(novell);
categoryService.addChild(book, novell);
Category tech = new Category();
tech.setMerchantStore(store);
tech.setCode("tech");
CategoryDescription techEnglishDescription = new CategoryDescription();
techEnglishDescription.setName("Technology");
techEnglishDescription.setCategory(tech);
techEnglishDescription.setLanguage(en);
CategoryDescription techFrenchDescription = new CategoryDescription();
techFrenchDescription.setName("Technologie");
techFrenchDescription.setCategory(tech);
techFrenchDescription.setLanguage(fr);
Set<CategoryDescription> descriptions4 = new HashSet<CategoryDescription>();
descriptions4.add(techFrenchDescription);
descriptions4.add(techFrenchDescription);
tech.setDescriptions(descriptions4);
tech.setParent(book);
categoryService.create(tech);
categoryService.addChild(book, tech);
Category fiction = new Category();
fiction.setMerchantStore(store);
fiction.setCode("fiction");
CategoryDescription fictionEnglishDescription = new CategoryDescription();
fictionEnglishDescription.setName("Fiction");
fictionEnglishDescription.setCategory(fiction);
fictionEnglishDescription.setLanguage(en);
CategoryDescription fictionFrenchDescription = new CategoryDescription();
fictionFrenchDescription.setName("Sc Fiction");
fictionFrenchDescription.setCategory(fiction);
fictionFrenchDescription.setLanguage(fr);
Set<CategoryDescription> fictiondescriptions = new HashSet<CategoryDescription>();
fictiondescriptions.add(fictionEnglishDescription);
fictiondescriptions.add(fictionFrenchDescription);
fiction.setDescriptions(fictiondescriptions);
fiction.setParent(novell);
categoryService.create(fiction);
categoryService.addChild(book, fiction);
Manufacturer oreilley = new Manufacturer();
oreilley.setMerchantStore(store);
oreilley.setCode("oreilley");
ManufacturerDescription oreilleyd = new ManufacturerDescription();
oreilleyd.setLanguage(en);
oreilleyd.setName("O\'reilley");
oreilleyd.setManufacturer(oreilley);
oreilley.getDescriptions().add(oreilleyd);
manufacturerService.create(oreilley);
Manufacturer packed = new Manufacturer();
packed.setMerchantStore(store);
packed.setCode("packed");
ManufacturerDescription packedd = new ManufacturerDescription();
packedd.setLanguage(en);
packedd.setManufacturer(packed);
packedd.setName("Packed publishing");
packed.getDescriptions().add(packedd);
manufacturerService.create(packed);
Manufacturer novells = new Manufacturer();
novells.setMerchantStore(store);
novells.setCode("novells");
ManufacturerDescription novellsd = new ManufacturerDescription();
novellsd.setLanguage(en);
novellsd.setManufacturer(novells);
novellsd.setName("Novells publishing");
novells.getDescriptions().add(novellsd);
manufacturerService.create(novells);
// PRODUCT 1
Product product = new Product();
product.setProductHeight(new BigDecimal(4));
product.setProductLength(new BigDecimal(3));
product.setProductWidth(new BigDecimal(1));
product.setSku("CT12345");
product.setManufacturer(oreilley);
product.setType(generalType);
product.setMerchantStore(store);
// Product description
ProductDescription description = new ProductDescription();
description.setName("Spring in Action");
description.setLanguage(en);
description.setProduct(product);
product.getDescriptions().add(description);
// add category
product.getCategories().add(tech);
// Availability
ProductAvailability availability = new ProductAvailability();
availability.setProductDateAvailable(date);
availability.setProductQuantity(100);
availability.setRegion("*");
// associate with product
availability.setProduct(product);
// productAvailabilityService.create(availability);
product.getAvailabilities().add(availability);
ProductPrice dprice = new ProductPrice();
dprice.setDefaultPrice(true);
dprice.setProductPriceAmount(new BigDecimal(29.99));
dprice.setProductAvailability(availability);
ProductPriceDescription dpd = new ProductPriceDescription();
dpd.setName("Base price");
dpd.setProductPrice(dprice);
dpd.setLanguage(en);
dprice.getDescriptions().add(dpd);
availability.getPrices().add(dprice);
/**
* Create product
*/
productService.create(product);
/**
* Creates a review
* TODO requires customer
*/
// testReview(product);
List<Product> products = productService.listByStore(store);
System.out.println("Total number of items " + products.size());
// count products by category
String lineage = new StringBuilder().append(book.getLineage()).toString();
List<Category> categories = categoryService.getListByLineage(store, lineage);
List<Long> ids = new ArrayList<Long>();
if (categories != null && categories.size() > 0) {
for (Category c : categories) {
ids.add(c.getId());
}
}
List<Object[]> objs = categoryService.countProductsByCategories(store, ids);
for (Object[] ob : objs) {
Long c = (Long) ob[0];
// System.out.println("Category " + c.getCode() + " has " + ob[1] + " items");
}
// get manufacturer for given categories
List<Manufacturer> manufacturers = manufacturerService.listByProductsByCategoriesId(store, ids, en);
// System.out.println("Number of manufacturer for all category " + manufacturers.size());
// Update product -- get first from the list
Product updatableProduct = products.get(0);
// Get first availability, which is the only one created
ProductAvailability updatableAvailability = updatableProduct.getAvailabilities().iterator().next();
// Get first price, which is the only one created
ProductPrice updatablePrice = updatableAvailability.getPrices().iterator().next();
updatablePrice.setProductPriceAmount(new BigDecimal(19.99));
// Add a second price
ProductPrice anotherPrice = new ProductPrice();
anotherPrice.setCode("eco");
anotherPrice.setProductPriceAmount(new BigDecimal(1.99));
anotherPrice.setProductAvailability(updatableAvailability);
ProductPriceDescription anotherPriceD = new ProductPriceDescription();
anotherPriceD.setName("Eco price");
anotherPriceD.setProductPrice(anotherPrice);
anotherPriceD.setLanguage(en);
anotherPrice.getDescriptions().add(anotherPriceD);
updatableAvailability.getPrices().add(anotherPrice);
// Update product
productService.update(updatableProduct);
// go and get products again
products = productService.listByStore(store);
updatableProduct = products.get(0);
// test attributes
this.testAttributes(updatableProduct);
// test insert, view image
testInsertImage(updatableProduct);
testViewImage(updatableProduct);
Product refreshed = productService.getByCode("CT12345", en);
productService.delete(refreshed);
}
use of com.salesmanager.core.model.catalog.category.Category in project shopizer by shopizer-ecommerce.
the class ShoppingCartTest method createShoppingCart.
@Test
public void createShoppingCart() throws Exception {
MerchantStore store = merchantService.getByCode(MerchantStore.DEFAULT_STORE);
Language en = languageService.getByCode("en");
/**
* CATALOG CREATION *
*/
ProductType generalType = productTypeService.getProductType(ProductType.GENERAL_TYPE);
/**
* Create the category
*/
Category shirts = new Category();
shirts.setMerchantStore(store);
shirts.setCode("shirts");
CategoryDescription shirtsEnglishDescription = new CategoryDescription();
shirtsEnglishDescription.setName("Shirts");
shirtsEnglishDescription.setCategory(shirts);
shirtsEnglishDescription.setLanguage(en);
Set<CategoryDescription> descriptions = new HashSet<CategoryDescription>();
descriptions.add(shirtsEnglishDescription);
shirts.setDescriptions(descriptions);
categoryService.create(shirts);
/**
* Create a manufacturer
*/
Manufacturer addidas = new Manufacturer();
addidas.setMerchantStore(store);
addidas.setCode("addidas");
ManufacturerDescription addidasDesc = new ManufacturerDescription();
addidasDesc.setLanguage(en);
addidasDesc.setManufacturer(addidas);
addidasDesc.setName("Addidas");
addidas.getDescriptions().add(addidasDesc);
manufacturerService.create(addidas);
/**
* Create an option
*/
ProductOption option = new ProductOption();
option.setMerchantStore(store);
option.setCode("color");
option.setProductOptionType(ProductOptionType.Radio.name());
ProductOptionDescription optionDescription = new ProductOptionDescription();
optionDescription.setLanguage(en);
optionDescription.setName("Color");
optionDescription.setDescription("Item color");
optionDescription.setProductOption(option);
option.getDescriptions().add(optionDescription);
productOptionService.saveOrUpdate(option);
/**
* first option value *
*/
ProductOptionValue white = new ProductOptionValue();
white.setMerchantStore(store);
white.setCode("white");
ProductOptionValueDescription whiteDescription = new ProductOptionValueDescription();
whiteDescription.setLanguage(en);
whiteDescription.setName("White");
whiteDescription.setDescription("White color");
whiteDescription.setProductOptionValue(white);
white.getDescriptions().add(whiteDescription);
productOptionValueService.saveOrUpdate(white);
ProductOptionValue black = new ProductOptionValue();
black.setMerchantStore(store);
black.setCode("black");
/**
* second option value *
*/
ProductOptionValueDescription blackDesc = new ProductOptionValueDescription();
blackDesc.setLanguage(en);
blackDesc.setName("Black");
blackDesc.setDescription("Black color");
blackDesc.setProductOptionValue(black);
black.getDescriptions().add(blackDesc);
productOptionValueService.saveOrUpdate(black);
/**
* Create a complex product
*/
Product product = new Product();
product.setProductHeight(new BigDecimal(4));
product.setProductLength(new BigDecimal(3));
product.setProductWidth(new BigDecimal(1));
product.setSku("XABC12");
product.setManufacturer(addidas);
product.setType(generalType);
product.setMerchantStore(store);
// Product description
ProductDescription description = new ProductDescription();
description.setName("Short sleeves shirt");
description.setLanguage(en);
description.setProduct(product);
product.getDescriptions().add(description);
product.getCategories().add(shirts);
// availability
ProductAvailability availability = new ProductAvailability();
availability.setProductDateAvailable(new Date());
availability.setProductQuantity(100);
availability.setRegion("*");
// associate with product
availability.setProduct(product);
// price
ProductPrice dprice = new ProductPrice();
dprice.setDefaultPrice(true);
dprice.setProductPriceAmount(new BigDecimal(29.99));
dprice.setProductAvailability(availability);
ProductPriceDescription dpd = new ProductPriceDescription();
dpd.setName("Base price");
dpd.setProductPrice(dprice);
dpd.setLanguage(en);
dprice.getDescriptions().add(dpd);
availability.getPrices().add(dprice);
product.getAvailabilities().add(availability);
// attributes
// white
ProductAttribute whiteAttribute = new ProductAttribute();
whiteAttribute.setProduct(product);
whiteAttribute.setProductOption(option);
whiteAttribute.setAttributeDefault(true);
// no price variation
whiteAttribute.setProductAttributePrice(new BigDecimal(0));
// no weight variation
whiteAttribute.setProductAttributeWeight(new BigDecimal(0));
whiteAttribute.setProductOption(option);
whiteAttribute.setProductOptionValue(white);
product.getAttributes().add(whiteAttribute);
// black
ProductAttribute blackAttribute = new ProductAttribute();
blackAttribute.setProduct(product);
blackAttribute.setProductOption(option);
// 5 + dollars
blackAttribute.setProductAttributePrice(new BigDecimal(5));
// no weight variation
blackAttribute.setProductAttributeWeight(new BigDecimal(0));
blackAttribute.setProductOption(option);
blackAttribute.setProductOptionValue(black);
product.getAttributes().add(blackAttribute);
productService.create(product);
/**
* Create Shopping cart *
*/
ShoppingCart shoppingCart = new ShoppingCart();
shoppingCart.setMerchantStore(store);
UUID cartCode = UUID.randomUUID();
shoppingCart.setShoppingCartCode(cartCode.toString());
ShoppingCartItem item = new ShoppingCartItem(shoppingCart, product);
item.setShoppingCart(shoppingCart);
FinalPrice price = pricingService.calculateProductPrice(product);
item.setItemPrice(price.getFinalPrice());
item.setQuantity(1);
/**
* user selects black *
*/
ShoppingCartAttributeItem attributeItem = new ShoppingCartAttributeItem(item, blackAttribute);
item.getAttributes().add(attributeItem);
shoppingCart.getLineItems().add(item);
// create cart
shoppingCartService.create(shoppingCart);
/**
* Retrieve cart *
*/
ShoppingCart retrievedCart = shoppingCartService.getByCode(cartCode.toString(), store);
Assert.assertNotNull(retrievedCart);
/**
* Delete cart *
*/
shoppingCartService.delete(retrievedCart);
/**
* Check if cart has been deleted *
*/
retrievedCart = shoppingCartService.getByCode(cartCode.toString(), store);
Assert.assertNull(retrievedCart);
// Clean up for other tests
categoryService.delete(shirts);
}
Aggregations