Search in sources :

Example 1 with PersistableProductVariation

use of com.salesmanager.shop.model.catalog.product.variation.PersistableProductVariation in project shopizer by shopizer-ecommerce.

the class ProductVariationFacadeImpl method create.

@Override
public Long create(PersistableProductVariation var, MerchantStore store, Language language) {
    Validate.notNull(store, "MerchantStore cannot be null");
    Validate.notNull(language, "Language cannot be null");
    Validate.notNull(var, "PersistableProductVariation cannot be null");
    if (this.exists(var.getCode(), store)) {
        throw new OperationNotAllowedException("Option set with code [" + var.getCode() + "] already exist");
    }
    ProductVariation p = persistableProductVariationMapper.convert(var, store, language);
    p.setMerchantStore(store);
    try {
        productVariationService.saveOrUpdate(p);
    } catch (ServiceException e) {
        throw new ServiceRuntimeException("Exception while creating ProductOptionSet", e);
    }
    return p.getId();
}
Also used : ServiceException(com.salesmanager.core.business.exception.ServiceException) ProductVariation(com.salesmanager.core.model.catalog.product.variation.ProductVariation) ReadableProductVariation(com.salesmanager.shop.model.catalog.product.variation.ReadableProductVariation) PersistableProductVariation(com.salesmanager.shop.model.catalog.product.variation.PersistableProductVariation) OperationNotAllowedException(com.salesmanager.shop.store.api.exception.OperationNotAllowedException) ServiceRuntimeException(com.salesmanager.shop.store.api.exception.ServiceRuntimeException)

Example 2 with PersistableProductVariation

use of com.salesmanager.shop.model.catalog.product.variation.PersistableProductVariation in project shopizer by shopizer-ecommerce.

the class ProductVariationFacadeImpl method update.

@Override
public void update(Long variationId, PersistableProductVariation var, MerchantStore store, Language language) {
    Validate.notNull(store, "MerchantStore cannot be null");
    Validate.notNull(language, "Language cannot be null");
    Validate.notNull(var, "PersistableProductVariation cannot be null");
    Optional<ProductVariation> p = productVariationService.getById(store, variationId, language);
    if (p.isEmpty()) {
        throw new ResourceNotFoundException("ProductVariation not found for id [" + variationId + "] and store [" + store.getCode() + "]");
    }
    ProductVariation productVariant = p.get();
    productVariant.setId(variationId);
    productVariant.setCode(var.getCode());
    ProductVariation model = persistableProductVariationMapper.merge(var, productVariant, store, language);
    try {
        model.setMerchantStore(store);
        productVariationService.save(model);
    } catch (ServiceException e) {
        throw new ServiceRuntimeException("Exception while creating ProductVariation", e);
    }
}
Also used : ServiceException(com.salesmanager.core.business.exception.ServiceException) ProductVariation(com.salesmanager.core.model.catalog.product.variation.ProductVariation) ReadableProductVariation(com.salesmanager.shop.model.catalog.product.variation.ReadableProductVariation) PersistableProductVariation(com.salesmanager.shop.model.catalog.product.variation.PersistableProductVariation) ResourceNotFoundException(com.salesmanager.shop.store.api.exception.ResourceNotFoundException) ServiceRuntimeException(com.salesmanager.shop.store.api.exception.ServiceRuntimeException)

Example 3 with PersistableProductVariation

use of com.salesmanager.shop.model.catalog.product.variation.PersistableProductVariation 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
}
Also used : PersistableCategory(com.salesmanager.shop.model.catalog.category.PersistableCategory) PersistableProductOptionValue(com.salesmanager.shop.model.catalog.product.attribute.PersistableProductOptionValue) PersistableCategory(com.salesmanager.shop.model.catalog.category.PersistableCategory) Category(com.salesmanager.shop.model.catalog.category.Category) HttpEntity(org.springframework.http.HttpEntity) ArrayList(java.util.ArrayList) PersistableProductVariation(com.salesmanager.shop.model.catalog.product.variation.PersistableProductVariation) ProductSpecification(com.salesmanager.shop.model.catalog.product.ProductSpecification) ProductOptionDescription(com.salesmanager.shop.model.catalog.product.attribute.ProductOptionDescription) PersistableProduct(com.salesmanager.shop.model.catalog.product.PersistableProduct) PersistableProductOption(com.salesmanager.shop.model.catalog.product.attribute.PersistableProductOption) CategoryDescription(com.salesmanager.shop.model.catalog.category.CategoryDescription) ProductOptionValueDescription(com.salesmanager.shop.model.catalog.product.attribute.ProductOptionValueDescription) Test(org.junit.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest)

Aggregations

PersistableProductVariation (com.salesmanager.shop.model.catalog.product.variation.PersistableProductVariation)3 ServiceException (com.salesmanager.core.business.exception.ServiceException)2 ProductVariation (com.salesmanager.core.model.catalog.product.variation.ProductVariation)2 ReadableProductVariation (com.salesmanager.shop.model.catalog.product.variation.ReadableProductVariation)2 ServiceRuntimeException (com.salesmanager.shop.store.api.exception.ServiceRuntimeException)2 Category (com.salesmanager.shop.model.catalog.category.Category)1 CategoryDescription (com.salesmanager.shop.model.catalog.category.CategoryDescription)1 PersistableCategory (com.salesmanager.shop.model.catalog.category.PersistableCategory)1 PersistableProduct (com.salesmanager.shop.model.catalog.product.PersistableProduct)1 ProductSpecification (com.salesmanager.shop.model.catalog.product.ProductSpecification)1 PersistableProductOption (com.salesmanager.shop.model.catalog.product.attribute.PersistableProductOption)1 PersistableProductOptionValue (com.salesmanager.shop.model.catalog.product.attribute.PersistableProductOptionValue)1 ProductOptionDescription (com.salesmanager.shop.model.catalog.product.attribute.ProductOptionDescription)1 ProductOptionValueDescription (com.salesmanager.shop.model.catalog.product.attribute.ProductOptionValueDescription)1 OperationNotAllowedException (com.salesmanager.shop.store.api.exception.OperationNotAllowedException)1 ResourceNotFoundException (com.salesmanager.shop.store.api.exception.ResourceNotFoundException)1 ArrayList (java.util.ArrayList)1 Test (org.junit.Test)1 SpringBootTest (org.springframework.boot.test.context.SpringBootTest)1 HttpEntity (org.springframework.http.HttpEntity)1