3 март 2014
Для создания системы купонов, мы используем класс Mage_SalesRule_Model_Coupon_Massgenerator . Чтобы использовать его по своему усмотрению, вы можете создать экземпляр класса:
$generator = Mage::getModel('salesrule/coupon_massgenerator');
Теперь вам нужно установить некоторые опции:
$data = array(
'max_probability' => .25,
'max_attempts' => 10,
'uses_per_customer' => 1,
'uses_per_coupon' => 1,
'qty' => 5, //number of coupons to generate
'length' => 14, //length of coupon string
'to_date' => '2013-12-31', //ending date of generated promo
/**
* Possible values include:
* Mage_SalesRule_Helper_Coupon::COUPON_FORMAT_ALPHANUMERIC
* Mage_SalesRule_Helper_Coupon::COUPON_FORMAT_ALPHABETICAL
* Mage_SalesRule_Helper_Coupon::COUPON_FORMAT_NUMERIC
*/
'format' => Mage_SalesRule_Helper_Coupon::COUPON_FORMAT_ALPHANUMERIC,
'rule_id' => 1234 //the id of the rule you will use as a template
);
Проверяем $data:
$generator->validateData($data);
Сохраняем эти параметры для генератора:
$generator->setData($data);
И теперь создаем:
$generator->generatePool();
Параметры заполняются в salesrule_coupon
:
Это работает достаточно хорошо, в так же можете удалить полученные купоны. Чтобы это сделать обратитесь в раздел "Manage Coupon Codes" либо “Управление купонами”.
Если же вы хотите вывести коллекцию, используйте:
$salesRule = Mage::getModel('salesrule/rule')->load($data['rule_id']);
$collection = Mage::getResourceModel('salesrule/coupon_collection')
->addRuleToFilter($salesRule)
->addGeneratedCouponsFilter();
Так же вы можете получить количество купонов, сгенерированных успешно:
$generator->getGeneratedCount();
Спасибо за внимание !