use of com.salesmanager.shop.model.catalog.product.attribute.ProductOptionValueDescription in project shopizer by shopizer-ecommerce.
the class PersistableProductOptionValuePopulator method populate.
@Override
public ProductOptionValue populate(PersistableProductOptionValue source, ProductOptionValue target, MerchantStore store, Language language) throws ConversionException {
Validate.notNull(languageService, "Requires to set LanguageService");
try {
target.setMerchantStore(store);
target.setProductOptionValueSortOrder(source.getOrder());
target.setCode(source.getCode());
if (!CollectionUtils.isEmpty(source.getDescriptions())) {
Set<com.salesmanager.core.model.catalog.product.attribute.ProductOptionValueDescription> descriptions = new HashSet<com.salesmanager.core.model.catalog.product.attribute.ProductOptionValueDescription>();
for (ProductOptionValueDescription desc : source.getDescriptions()) {
com.salesmanager.core.model.catalog.product.attribute.ProductOptionValueDescription description = new com.salesmanager.core.model.catalog.product.attribute.ProductOptionValueDescription();
Language lang = languageService.getByCode(desc.getLanguage());
if (lang == null) {
throw new ConversionException("Language is null for code " + description.getLanguage() + " use language ISO code [en, fr ...]");
}
description.setLanguage(lang);
description.setName(desc.getName());
description.setTitle(desc.getTitle());
description.setProductOptionValue(target);
descriptions.add(description);
}
target.setDescriptions(descriptions);
}
} catch (Exception e) {
throw new ConversionException(e);
}
return target;
}
use of com.salesmanager.shop.model.catalog.product.attribute.ProductOptionValueDescription in project shopizer by shopizer-ecommerce.
the class ProductManagementAPIIntegrationTest method createOptionValue.
/**
* Creates a product option value that can be used to create a product
* attribute when creating a new product
*
* @throws Exception
*/
@Test
@Ignore
public void createOptionValue() throws Exception {
final ProductOptionValueDescription description = new ProductOptionValueDescription();
description.setLanguage("en");
description.setName("Red");
final List<ProductOptionValueDescription> descriptions = new ArrayList<>();
descriptions.add(description);
final PersistableProductOptionValue optionValue = new PersistableProductOptionValue();
optionValue.setOrder(1);
optionValue.setCode("colorred");
optionValue.setDescriptions(descriptions);
final ObjectWriter writer = new ObjectMapper().writer().withDefaultPrettyPrinter();
final String json = writer.writeValueAsString(optionValue);
System.out.println(json);
/**
* { "descriptions" : [ { "name" : "Red", "description" : null,
* "friendlyUrl" : null, "keyWords" : null, "highlights" : null,
* "metaDescription" : null, "title" : null, "language" : "en", "id" : 0
* } ], "order" : 1, "code" : "color-red", "id" : 0 }
*/
restTemplate = new RestTemplate();
final HttpEntity<String> entity = new HttpEntity<>(json, getHeader());
final ResponseEntity response = restTemplate.postForEntity("http://localhost:8080/sm-shop/services/private/DEFAULT/product/optionValue", entity, PersistableProductOptionValue.class);
final PersistableProductOptionValue opt = (PersistableProductOptionValue) response.getBody();
System.out.println("New optionValue ID : " + opt.getId());
}
use of com.salesmanager.shop.model.catalog.product.attribute.ProductOptionValueDescription 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
}
Aggregations