public static PriceDraftBuilder of(final MonetaryAmount value) { return new PriceDraftBuilder(value); }
public PriceDraftDsl withValidUntil(final ZonedDateTime validUntil) { return PriceDraftBuilder.of(this).validUntil(validUntil).build(); }
public static PriceDraftBuilder of(final Price template) { return of(template.getValue()) .country(template.getCountry()) .customerGroup(template.getCustomerGroup()) .channel(Optional.ofNullable(template.getChannel()).map(Referenceable::toResourceIdentifier).orElse(null)) .validFrom(template.getValidFrom()) .validUntil(template.getValidUntil()) .custom(copyCustom(template)); } }
public PriceDraftDsl withCustomerGroup(@Nullable final Referenceable<CustomerGroup> customerGroup) { return PriceDraftBuilder.of(this).customerGroup(Optional.ofNullable(customerGroup).map(c -> c.toReference()).orElse(null)).build(); }
@Test public void changePriceAddTiers() throws Exception { withUpdateablePricedProduct(client(), product -> { final List<PriceTier> tiers = Arrays.asList(PriceTierBuilder.of(10, EURO_5).build()); final PriceDraft newPrice = PriceDraftBuilder.of(MoneyImpl.of(234, EUR)) .tiers(tiers) .build(); final List<Price> prices = product.getMasterData().getStaged().getMasterVariant() .getPrices(); assertThat(prices.stream().anyMatch(p -> p.equals(newPrice))).isFalse(); final Product updatedProduct = client() .executeBlocking(ProductUpdateCommand.of(product, ChangePrice.of(prices.get(0), newPrice))); final Price actualPrice = getFirstPrice(updatedProduct); assertThat(PriceDraft.of(actualPrice)).isEqualTo(newPrice); return updatedProduct; }); }
@Test public void setPrices() throws Exception { final PriceDraft expectedPrice1 = PriceDraft.of(MoneyImpl.of(123, EUR)); final PriceDraft expectedPrice2 = PriceDraft.of(MoneyImpl.of(123, EUR)).withCountry(DE); final List<PriceTier> tiers = Arrays.asList(PriceTierBuilder.of(10, EURO_1).build()); final PriceDraft expectedPriceWithTiers = PriceDraftBuilder.of(MoneyImpl.of(123, EUR)) .country(CountryCode.AT) .tiers(tiers) .build(); final List<PriceDraft> expectedPriceList = asList(expectedPrice1, expectedPrice2, expectedPriceWithTiers); withUpdateableProduct(client(), product -> { assertThat(product.getMasterData().hasStagedChanges()).isFalse(); final Product updatedProduct = client() .executeBlocking(ProductUpdateCommand.of(product, SetPrices.of(1, expectedPriceList))); final List<Price> prices = updatedProduct.getMasterData().getStaged().getMasterVariant().getPrices(); List<PriceDraft> draftPricesList = prices.stream().map(PriceDraft::of).collect(toList()); assertThat(draftPricesList).containsOnly(expectedPrice1, expectedPrice2, expectedPriceWithTiers); assertThat(updatedProduct.getMasterData().hasStagedChanges()).isTrue(); return updatedProduct; }); }
public PriceDraftDsl withCustomerGroupId(@Nullable final String customerGroupId) { return PriceDraftBuilder.of(this).customerGroupId(customerGroupId).build(); }
public PriceDraftDsl withCountryCode(@Nullable final String countryCode) { return PriceDraftBuilder.of(this).countryCode(countryCode).build(); }
public PriceDraftBuilder countryCode(@Nullable final String countryCode) { return country(Optional.ofNullable(countryCode).map(CountryCode::valueOf).orElse(null)); }
@Test public void copyPriceWithoutCustom() { final Price price = Price.of(BigDecimal.TEN, DefaultCurrencyUnits.EUR); final PriceDraftBuilder priceDraftBuilder = PriceDraftBuilder.of(price); assertThat(priceDraftBuilder).isNotNull(); } }
public static PriceDraftDsl of(final Price template) { return PriceDraftBuilder.of(template.getValue()) .country(template.getCountry()) .customerGroup(template.getCustomerGroup()) .channel(template.getChannel()) .validFrom(template.getValidFrom()) .validUntil(template.getValidUntil()) .custom(customFieldsDraftOrNull(template)) .build(); }
public PriceDraftDsl withChannel(@Nullable final Referenceable<Channel> channel) { final ResourceIdentifier<Channel> channelResourceIdentifier = Optional.ofNullable(channel).map(Referenceable::toResourceIdentifier).orElse(null); return PriceDraftBuilder.of(this).channel(channelResourceIdentifier).build(); }
public PriceDraftDsl withCustomerGroup(@Nullable final Referenceable<CustomerGroup> customerGroup) { return PriceDraftBuilder.of(this).customerGroup(Optional.ofNullable(customerGroup).map(c -> c.toReference()).orElse(null)).build(); }
public PriceDraftDsl withValidUntil(final ZonedDateTime validUntil) { return PriceDraftBuilder.of(this).validUntil(validUntil).build(); }