use of com.salesmanager.shop.model.catalog.product.ProductSpecification in project shopizer by shopizer-ecommerce.
the class ProductV2ManagementAPIIntegrationTest method createProductWithCategory.
@Test
public void createProductWithCategory() throws Exception {
/**
* Create a category for product association
*/
final PersistableCategory newCategory = new PersistableCategory();
newCategory.setCode("test-catv2");
newCategory.setSortOrder(1);
newCategory.setVisible(true);
newCategory.setDepth(4);
final Category parent = new Category();
newCategory.setParent(parent);
final CategoryDescription description = new CategoryDescription();
description.setLanguage("en");
description.setName("test-catv2");
description.setFriendlyUrl("test-catv2");
description.setTitle("test-catv2");
final List<CategoryDescription> descriptions = new ArrayList<>();
descriptions.add(description);
newCategory.setDescriptions(descriptions);
final HttpEntity<PersistableCategory> categoryEntity = new HttpEntity<>(newCategory, getHeader());
final ResponseEntity<PersistableCategory> categoryResponse = testRestTemplate.postForEntity("/api/v1/private/category?store=" + Constants.DEFAULT_STORE, categoryEntity, PersistableCategory.class);
final PersistableCategory cat = categoryResponse.getBody();
assertTrue(categoryResponse.getStatusCode() == CREATED);
assertNotNull(cat.getId());
final PersistableProduct product = new PersistableProduct();
final ArrayList<Category> categories = new ArrayList<>();
categories.add(cat);
product.setCategories(categories);
ProductSpecification specifications = new ProductSpecification();
specifications.setManufacturer(com.salesmanager.core.model.catalog.product.manufacturer.Manufacturer.DEFAULT_MANUFACTURER);
product.setProductSpecifications(specifications);
product.setPrice(BigDecimal.TEN);
product.setSku("123");
final HttpEntity<PersistableProduct> entity = new HttpEntity<>(product, getHeader());
final ResponseEntity<PersistableProduct> response = testRestTemplate.postForEntity("/api/v2/private/product/definition?store=" + Constants.DEFAULT_STORE, entity, PersistableProduct.class);
assertTrue(response.getStatusCode() == CREATED);
// create options
PersistableProductOption color = new PersistableProductOption();
color.setCode("color");
ProductOptionDescription colorEn = new ProductOptionDescription();
colorEn.setName("Color");
colorEn.setLanguage("en");
color.getDescriptions().add(colorEn);
final HttpEntity<PersistableProductOption> colorEntity = new HttpEntity<>(color, getHeader());
final ResponseEntity<PersistableProductOption> colorResponse = testRestTemplate.postForEntity("/api/v1/private/product/option?store=" + Constants.DEFAULT_STORE, colorEntity, PersistableProductOption.class);
assertTrue(colorResponse.getStatusCode() == CREATED);
System.out.println(colorResponse.getBody().getId());
PersistableProductOption size = new PersistableProductOption();
size.setCode("size");
ProductOptionDescription sizeEn = new ProductOptionDescription();
sizeEn.setName("Size");
sizeEn.setLanguage("en");
size.getDescriptions().add(sizeEn);
final HttpEntity<PersistableProductOption> sizeEntity = new HttpEntity<>(size, getHeader());
final ResponseEntity<PersistableProductOption> sizeResponse = testRestTemplate.postForEntity("/api/v1/private/product/option?store=" + Constants.DEFAULT_STORE, sizeEntity, PersistableProductOption.class);
assertTrue(sizeResponse.getStatusCode() == CREATED);
System.out.println(colorResponse.getBody().getId());
// opions values
PersistableProductOptionValue white = new PersistableProductOptionValue();
white.setCode("white");
ProductOptionValueDescription whiteEn = new ProductOptionValueDescription();
whiteEn.setName("White");
whiteEn.setLanguage("en");
white.getDescriptions().add(whiteEn);
final HttpEntity<PersistableProductOptionValue> whiteEntity = new HttpEntity<>(white, getHeader());
final ResponseEntity<PersistableProductOptionValue> whiteResponse = testRestTemplate.postForEntity("/api/v1/private/product/option?store=" + Constants.DEFAULT_STORE, whiteEntity, PersistableProductOptionValue.class);
assertTrue(whiteResponse.getStatusCode() == CREATED);
System.out.println(whiteResponse.getBody().getId());
PersistableProductOptionValue medium = new PersistableProductOptionValue();
medium.setCode("medium");
ProductOptionValueDescription mediumEn = new ProductOptionValueDescription();
mediumEn.setName("Medium");
mediumEn.setLanguage("en");
white.getDescriptions().add(mediumEn);
// create variants - todo
PersistableProductVariation whiteVariant = new PersistableProductVariation();
// - todo
PersistableProductVariation mediumVariant = new PersistableProductVariation();
// toto
// create instances
}
use of com.salesmanager.shop.model.catalog.product.ProductSpecification in project shopizer by shopizer-ecommerce.
the class ProductFacadeImpl method saveProduct.
@Override
public PersistableProduct saveProduct(MerchantStore store, PersistableProduct product, Language language) {
String manufacturer = Manufacturer.DEFAULT_MANUFACTURER;
if (product.getProductSpecifications() != null) {
manufacturer = product.getProductSpecifications().getManufacturer();
} else {
ProductSpecification specifications = new ProductSpecification();
specifications.setManufacturer(manufacturer);
}
Product target = null;
if (product.getId() != null && product.getId().longValue() > 0) {
target = productService.getById(product.getId());
} else {
target = new Product();
}
try {
persistableProductPopulator.populate(product, target, store, language);
if (target.getId() != null && target.getId() > 0) {
productService.update(target);
} else {
productService.create(target);
product.setId(target.getId());
}
return product;
} catch (Exception e) {
throw new ServiceRuntimeException(e);
}
}
Aggregations