Example #1
0
<?php

include "autoload.php";
use Product as P;
use DiscountTypes\AmountDiscount;
use DiscountTypes\ConditionDiscount;
use DiscountTypes\CombinationDiscount;
use DiscountItems\AmountItem;
use DiscountItems\ConditionItem;
use DiscountItems\CombinationItem;
// note  priority of discount defined by order
$productPrices = new Product('ABAABDEGKMCH');
$pcAB = new CombinationItem(array(P::A, P::B), P::DISCOUNT_10);
$pcDE = new CombinationItem(array(P::D, P::E), P::DISCOUNT_5);
$pcEFG = new CombinationItem(array(P::E, P::F, P::G), P::DISCOUNT_5);
$productPrices->addDiscount(new CombinationDiscount($pcAB));
$productPrices->addDiscount(new CombinationDiscount($pcDE));
$productPrices->addDiscount(new CombinationDiscount($pcEFG));
$oneAndOne = new ConditionItem(Product::A, array(P::K, P::L, P::M), P::DISCOUNT_5);
$productPrices->addDiscount(new ConditionDiscount($oneAndOne));
$amountThree = new AmountItem(3, false, array(P::A, P::C), P::DISCOUNT_5);
$amountFour = new AmountItem(4, false, array(P::A, P::C), P::DISCOUNT_10);
$amountFiveOrMore = new AmountItem(5, true, array(P::A, P::C), P::DISCOUNT_20);
$productPrices->addDiscount(new AmountDiscount($amountThree));
$productPrices->addDiscount(new AmountDiscount($amountFour));
$productPrices->addDiscount(new AmountDiscount($amountFiveOrMore));
//print_r($productPrices->getOrder());
echo $productPrices->getSum();