Search in sources :

Example 11 with FixedPriceFulfillmentOption

use of org.broadleafcommerce.core.order.fulfillment.domain.FixedPriceFulfillmentOption in project BroadleafCommerce by BroadleafCommerce.

the class OfferTest method testPercentOffOfferWithScaleGreaterThanTwo.

@Test(groups = { "testPercentageOffOffer" }, dependsOnGroups = { "offerCreateSku1", "offerCreateSku2" })
@Transactional
public void testPercentOffOfferWithScaleGreaterThanTwo() throws Exception {
    Order order = orderService.createNewCartForCustomer(createCustomer());
    FixedPriceFulfillmentOption option = new FixedPriceFulfillmentOptionImpl();
    option.setPrice(new Money(0));
    option.setFulfillmentType(FulfillmentType.PHYSICAL_SHIP);
    order.setFulfillmentGroups(createFulfillmentGroups(option, 5D, order));
    orderService.save(order, false);
    order.addOrderItem(createDiscreteOrderItem(sku1, 100D, null, true, 2, order));
    order.addOrderItem(createDiscreteOrderItem(sku2, 100D, null, true, 1, order));
    order.addOfferCode(createOfferUtility.createOfferCode("20.5 Percent Off Item Offer", OfferType.ORDER_ITEM, OfferDiscountType.PERCENT_OFF, 20.5, null, true, true, 10));
    List<Offer> offers = offerService.buildOfferListForOrder(order);
    offerService.applyAndSaveOffersToOrder(offers, order);
    // 20% results in $240.  20.5% off results in $238.50
    assert (order.getSubTotal().equals(new Money(238.50D)));
}
Also used : Order(org.broadleafcommerce.core.order.domain.Order) Money(org.broadleafcommerce.common.money.Money) Offer(org.broadleafcommerce.core.offer.domain.Offer) CustomerOffer(org.broadleafcommerce.core.offer.domain.CustomerOffer) FixedPriceFulfillmentOption(org.broadleafcommerce.core.order.fulfillment.domain.FixedPriceFulfillmentOption) FixedPriceFulfillmentOptionImpl(org.broadleafcommerce.core.order.fulfillment.domain.FixedPriceFulfillmentOptionImpl) Test(org.testng.annotations.Test) CommonSetupBaseTest(org.broadleafcommerce.test.CommonSetupBaseTest) Transactional(org.springframework.transaction.annotation.Transactional)

Example 12 with FixedPriceFulfillmentOption

use of org.broadleafcommerce.core.order.fulfillment.domain.FixedPriceFulfillmentOption in project BroadleafCommerce by BroadleafCommerce.

the class FixedPriceFulfillmentTest method testNullFulfillmentOptionInEstimation.

public void testNullFulfillmentOptionInEstimation() throws Exception {
    Set<FulfillmentOption> options = new HashSet<FulfillmentOption>();
    FixedPriceFulfillmentOption option1 = new FixedPriceFulfillmentOptionImpl();
    option1.setPrice(new Money(BigDecimal.ONE));
    FixedPriceFulfillmentOption option2 = new FixedPriceFulfillmentOptionImpl();
    option2.setPrice(new Money(BigDecimal.TEN));
    options.add(option1);
    options.add(option2);
    FixedPriceFulfillmentPricingProvider provider = new FixedPriceFulfillmentPricingProvider();
    FulfillmentGroup fg = new FulfillmentGroupImpl();
    FulfillmentEstimationResponse response = provider.estimateCostForFulfillmentGroup(fg, options);
    for (Entry<? extends FulfillmentOption, Money> entry : response.getFulfillmentOptionPrices().entrySet()) {
        assertEquals(((FixedPriceFulfillmentOption) entry.getKey()).getPrice(), entry.getValue());
    }
}
Also used : FixedPriceFulfillmentPricingProvider(org.broadleafcommerce.core.pricing.service.fulfillment.provider.FixedPriceFulfillmentPricingProvider) Money(org.broadleafcommerce.common.money.Money) FulfillmentGroupImpl(org.broadleafcommerce.core.order.domain.FulfillmentGroupImpl) FixedPriceFulfillmentOption(org.broadleafcommerce.core.order.fulfillment.domain.FixedPriceFulfillmentOption) FulfillmentGroup(org.broadleafcommerce.core.order.domain.FulfillmentGroup) FulfillmentEstimationResponse(org.broadleafcommerce.core.pricing.service.fulfillment.provider.FulfillmentEstimationResponse) FixedPriceFulfillmentOption(org.broadleafcommerce.core.order.fulfillment.domain.FixedPriceFulfillmentOption) FulfillmentOption(org.broadleafcommerce.core.order.domain.FulfillmentOption) FixedPriceFulfillmentOptionImpl(org.broadleafcommerce.core.order.fulfillment.domain.FixedPriceFulfillmentOptionImpl) HashSet(java.util.HashSet)

Aggregations

Money (org.broadleafcommerce.common.money.Money)12 FixedPriceFulfillmentOption (org.broadleafcommerce.core.order.fulfillment.domain.FixedPriceFulfillmentOption)12 FixedPriceFulfillmentOptionImpl (org.broadleafcommerce.core.order.fulfillment.domain.FixedPriceFulfillmentOptionImpl)10 Order (org.broadleafcommerce.core.order.domain.Order)7 CustomerOffer (org.broadleafcommerce.core.offer.domain.CustomerOffer)6 Offer (org.broadleafcommerce.core.offer.domain.Offer)6 CommonSetupBaseTest (org.broadleafcommerce.test.CommonSetupBaseTest)6 Transactional (org.springframework.transaction.annotation.Transactional)6 Test (org.testng.annotations.Test)6 FulfillmentGroupImpl (org.broadleafcommerce.core.order.domain.FulfillmentGroupImpl)4 FulfillmentGroup (org.broadleafcommerce.core.order.domain.FulfillmentGroup)3 ArrayList (java.util.ArrayList)2 FulfillmentOption (org.broadleafcommerce.core.order.domain.FulfillmentOption)2 HashMap (java.util.HashMap)1 HashSet (java.util.HashSet)1 Sku (org.broadleafcommerce.core.catalog.domain.Sku)1 SkuImpl (org.broadleafcommerce.core.catalog.domain.SkuImpl)1 DiscreteOrderItem (org.broadleafcommerce.core.order.domain.DiscreteOrderItem)1 DiscreteOrderItemImpl (org.broadleafcommerce.core.order.domain.DiscreteOrderItemImpl)1 FulfillmentGroupItem (org.broadleafcommerce.core.order.domain.FulfillmentGroupItem)1