public function load(ObjectManager $manager)
{
/**
* @var CouponFactory $couponFactory
* @var CurrencyInterface $currencyDollar
* @var CurrencyInterface $currencyEuro
*/
$couponFactory = $this->getFactory('coupon');
$currencyDollar = $this->getReference('currency-USD');
$currencyEuro = $this->getReference('currency-EUR');
/**
* Coupon with 12% of discount
*
* Valid from now, no expiration time
*
* Customer only can redeem it 5 times in all life
*
* @var CouponInterface $couponPercent
*/
$couponPercent = $couponFactory->create();
$couponPercent->setCode('percent')->setName('12 percent discount')->setType(ElcodiCouponTypes::TYPE_PERCENT)->setDiscount(12)->setCount(5)->setEnabled(true);
$manager->persist($couponPercent);
$this->addReference('coupon-percent', $couponPercent);
/**
* Coupon with 5 euros of discount
*
* Valid from now, no expiration time
*
* Can be redeemed many times
*
* @var CouponInterface $couponAmountEuro
*/
$couponAmountEuro = $couponFactory->create();
$couponAmountEuro->setCode('5euros')->setName('5 euros discount')->setType(ElcodiCouponTypes::TYPE_AMOUNT)->setPrice(Money::create(500, $currencyEuro))->setEnabled(true);
$manager->persist($couponAmountEuro);
$this->addReference('coupon-amount-euro', $couponAmountEuro);
/**
* Coupon with 5 euros of discount
*
* Valid from now, no expiration time
*
* Only 20 available
*
* @var CouponInterface $couponAmountDollar
*/
$couponAmountDollar = $couponFactory->create();
$couponAmountDollar->setCode('10dollars')->setName('10 dollars discount')->setType(ElcodiCouponTypes::TYPE_AMOUNT)->setPrice(Money::create(1000, $currencyDollar))->setCount(20)->setEnabled(true);
$manager->persist($couponAmountDollar);
$this->addReference('coupon-amount-dollar', $couponAmountDollar);
/**
* Automatic coupon applies 50% to big spenders
*
* Valid from now, no expiration time
*
* @var CouponInterface $couponBigSpenders
*/
$couponBigSpenders = $couponFactory->create();
/**
* @var RuleInterface $ruleBigSpenders
*/
$ruleBigSpenders = $this->getReference('rule-big-spender');
$couponBigSpenders->setCode('bigspender')->setName('50% discount')->setType(ElcodiCouponTypes::TYPE_PERCENT)->setDiscount(50)->setRule($ruleBigSpenders)->setEnforcement(ElcodiCouponTypes::ENFORCEMENT_AUTOMATIC)->setEnabled(true);
$manager->persist($couponBigSpenders);
$this->addReference('coupon-big-spender', $couponBigSpenders);
$manager->flush();
}