我遇到了一些麻烦。我想要做的是每次有人订阅我们的时事通讯时,在 Magento 中自动生成一个随机优惠券代码。这张优惠券可减 10 美元,并且有exp。订阅后两周的日期。
因此,我正在尝试编写一个简单的脚本,当提交“订阅我们的时事通讯”表单时,该脚本将与 Magento 对话,向 Magento 索要一个随机优惠券代码,设置一些基本的价格规则(任何东西都减 10 美元) ,每个客户使用一次,每张优惠券使用一次,自生成后两周到期),然后返回一个随机优惠券代码(例如:WELCOME5798),该代码可以存储在将传递的变量中,以及名字+姓氏和 e -通过 MailChimp API 发送邮件至 MailChimp。我已经弄清楚了所有这些,除了如何让 Mage 通过 PHP 脚本生成这样的代码然后返回所述代码(即我有我的表单并且我知道如何将值传递给 MailChimp)。
我是 Magento 的新手,所以我遇到了困难。我已经在 Mage/SalesRule/Model/Coupon 中看到了代码,并且看到了一些人们解决类似问题的示例,例如这里:Magento - 通过代码创建唯一的优惠券代码并将其邮寄给客户 https://stackoverflow.com/questions/8908347/magento-create-unique-coupon-codes-through-code-and-mail-it-to-the-customer
但我真的不知道从哪里开始为我自己的目的进行这项工作。可以使用一些帮助/直接设置。 :( 谢谢大家。
那么,你的问题是什么?如何生成符合您要求的优惠券?或者如何在模块中安排它?
您可以使用事件 newsletter_subscriber_save_after 将自定义操作注入订阅流程。
这是根据您的需求创建优惠券的示例
<?php
/**
* Create coupon for fixed price discount
*
* @param int $customer_id
* @param float $discount
*/
public function createCoupon($customer_id, $discount)
{
$customer = Mage::getModel('customer/customer')->load($customer_id);
$customerGroupIds = Mage::getModel('customer/group')->getCollection()->getAllIds();
$websitesId = Mage::getModel('core/website')->getCollection()->getAllIds();
$customer_name = $customer->getName();
$couponCode = Mage::helper('core')->getRandomString(9);
$model = Mage::getModel('salesrule/rule');
$model->setName('Discount for ' . $customer_name);
$model->setDescription('Discount for ' . $customer_name);
$model->setFromDate(date('Y-m-d'));
$model->setToDate(date('Y-m-d', strtotime('+2 days')));
$model->setCouponType(2);
$model->setCouponCode($couponCode);
$model->setUsesPerCoupon(1);
$model->setUsesPerCustomer(1);
$model->setCustomerGroupIds($customerGroupIds);
$model->setIsActive(1);
$model->setConditionsSerialized('a:6:{s:4:\"type\";s:32:\"salesrule/rule_condition_combine\";s:9:\"attribute\";N;s:8:\"operator\";N;s:5:\"value\";s:1:\"1\";s:18:\"is_value_processed\";N;s:10:\"aggregator\";s:3:\"all\";}');
$model->setActionsSerialized('a:6:{s:4:\"type\";s:40:\"salesrule/rule_condition_product_combine\";s:9:\"attribute\";N;s:8:\"operator\";N;s:5:\"value\";s:1:\"1\";s:18:\"is_value_processed\";N;s:10:\"aggregator\";s:3:\"all\";}');
$model->setStopRulesProcessing(0);
$model->setIsAdvanced(1);
$model->setProductIds('');
$model->setSortOrder(1);
$model->setSimpleAction('by_fixed');
$model->setDiscountAmount($discount);
$model->setDiscountStep(0);
$model->setSimpleFreeShipping(0);
$model->setTimesUsed(0);
$model->setIsRss(0);
$model->setWebsiteIds($websitesId);
try {
$model->save();
} catch (Exception $e) {
Mage::log($e->getMessage());
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)