статья с хабра: http://habrahabr.ru/sandbox/48357/
Для начала
Создадим правило которое будет едино для всех наших купонов.
(Promotions -> Shopping Cart Price Rules -> Add New Rule)
Заполняем нужные нам и обязательные поля, и обращаем все свое внимание на поле «Coupon». Особо выбирать не из чего поэтому выбираем «Specific Coupon». И тут начинается самое интересное.
У нас появилась возможность ввести код купона и появился checkbox который утверждает, что если мы его выберем то сможем привязать к этому правилу несколько купонов. Отлично! Это то, что нам нужно! Но хочу обратить внимание, что привязка купонов станет возможна только(!) после сохранения правила.
Далее, на вкладке «Actions» настраиваем свою скидку и сохраняем правило.
После сохранения у нас появилась новая закладка «Manage Coupon Codes»
Зайдя на нее вы можете руками создать сколько угодно скидочных купонов. Но ведь нам нужно программно, ведь так?
Знакомьтесь — код
Куда вы вставите нижеописанный код — зависит только от вашей фантазии и от конкретно поставленной задачи. Я повесил observer перед сохранением заказа и проверяю изменился ли статус заказа. Если изменился, и заказ теперь оплачен, то далее отрабатывает следующий код:
$massgenerator = Mage::getModel('salesrule/coupon_massgenerator'); /*загружаем
модель генератора купонов */
$coupon = Mage::getModel('salesrule/coupon'); //загружаем модель самих купонов
$expirationDate = NULL; /* дата окончания действия купона. Если null , то
купон бессрочный */
$now = $massgenerator->getResource()->formatDate(
Mage::getSingleton('core/date')->gmtTimestamp()
); // дата создания купона
$code = ''; /* далее я посимвольно генерирую новый скидочный купон. Я выбрал
длину купона 12 символов */
for ($i=1; $i<= 12; $i++){
$code.=$massgenerator->generateCode();
}
/*
* Далее я устанавливаю все значения и сохраняю купон
* setRuleId - здесь указывается id правила для которого создается купон
* setUsageLimit - лимит количества активаций одного купона
* setUsagePerCustomer - лимит количества активаций на одного пользователя
* setExpirationDate - дата окончания действия купона.
* setCreatedAt - дата создания купона
* setType - Тип купона
* setCode - собственно сам код купона
*/
$coupon->setId(null)
->setRuleId(2)
->setUsageLimit(1)
->setUsagePerCustomer(0)
->setExpirationDate($expirationDate)
->setCreatedAt($now)
->setType(Mage_SalesRule_Helper_Coupon::COUPON_TYPE_SPECIFIC_AUTOGENERATED)
->setCode($code)
->save();
Вот и все. Купон создан. Осталось только как либо сообщить пользователю код купона (я, например, отправляю пользователю e-mail с кодом купона и инструкциями к его применению).
Комментариев нет:
Отправить комментарий