- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我遇到了一些麻烦。我想要做的是,每次有人订阅我们的时事通讯时,都会在 Magento 中自动生成一个随机优惠券代码。优惠券是任何东西的 10 美元折扣,并且会有 exp。订阅后两周的日期。
所以,我正在尝试编写一个简单的脚本,当提交“订阅我们的时事通讯”表单时,该脚本将与 Magento 对话,向 Magento 询问单个随机优惠券代码,设置一些基本价格规则(10退还任何东西,每个客户使用一次,每张优惠券使用一次,从生成后两周过期)然后返回一个随机的优惠券代码(例如:WELCOME5798),它可以存储在一个将被传递的变量中,w/first+last通过 MailChimp API 将名称和电子邮件发送到 MailChimp。除了如何让 Mage 通过 PHP 脚本生成这样的代码然后返回所述代码(即我有我的表单并且我知道如何将值传递给 MailChimp)之外,我已经弄清楚了所有这些。
我是 Magento 的新手,所以我遇到了困难。我看过 Mage/SalesRule/Model/Coupon 中的代码,也看过一些人们解决类似问题的示例,例如:Magento - Create Unique Coupon Codes through code and mail it to the customer
但我真的不知道从哪里开始为我自己的目的做这项工作。可以直接使用一些帮助/设置。 :( 谢谢大家。
最佳答案
那么,你的问题是什么?如何根据您的要求生成优惠券?或者如何安排在模块中?
您可以使用事件 newsletter_subscriber_save_after 将自定义操作注入(inject)订阅流程。
这是根据您的需要创建优惠券的示例
<?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());
}
}
关于php - 创建一个随机的 Magento 优惠券,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12806919/
融e购拍一拍抽微信1-99元立减金/优惠券 微信搜索并关注“融e购”公众号 回复“拍一拍” 进入然后自己创建个群拉好友或者小号 在群里互拍对方 或者从下面链接进入小编的群大家都可以在里面互拍 每
三只松鼠收集福卡 抢千分礼包+优惠券 扫码进入微信活动文章页面 在活动页面中 下拉进入小程序 完成任务可以获得抽卡机会 收集福卡 可以得新年大礼包 有千分礼包 和 优惠券 大家速度收集 ~
我试图从优惠券折扣中排除一些具有特定产品属性的产品变体。 在我的例子中,我的目标是产品属性“finish”设置为“Classic Frame”或“Box Frame”术语的产品变体。 我尝试使用 "E
我正在使用 Paypal API 对实体商品和数字商品进行支付。 一切都按预期工作,但在我调用 set_express_checkout(使用 AngelEye PHP 类)并将用户重定向到 Payp
我可以在后端创建优惠券,但在结帐过程中,没有输入优惠券的选项。我能找到的唯一其他信息是如何通过注释掉该行来禁用优惠券 block type="checkout/cart_coupon"name="ch
我遇到了一些麻烦。我想要做的是,每次有人订阅我们的时事通讯时,都会在 Magento 中自动生成一个随机优惠券代码。优惠券是任何东西的 10 美元折扣,并且会有 exp。订阅后两周的日期。 所以,我正
我使用 Stripe 的默认表单进行付款处理。如何添加优惠券字段?我已经创建了优惠券,但我不确定如何处理优惠券代码。 " data-amount=1795 da
我正在与一个想要创建 100% 关闭订阅优惠券代码的客户合作。如果用户拥有这些优惠券代码之一,他们不希望用户必须输入信用卡。这在 Stripe 中可能吗? 我正在使用 Laravel Spark,当用
有人知道与Stripe一次性交易是否可以接受优惠券吗? 我知道您可以添加带有定期订阅的优惠券,但我只希望能够提供一次性付款折扣。 最佳答案 我认为这里的想法是,您可以完全控制单个费用(或一次性付款,无
是否有已知的方法可以通过 API 在 Magento 社区版中创建新的优惠券代码(购物车价格规则)? 我希望能够使用另一个网络应用程序自动生成优惠券代码,并通过一些后端通信在 Magento 中同时创
我一直找不到准确的答案。 我们已经知道,PayPal 的 REST API 没有应用折扣代码的选项。但是,我们可以将另一个项目添加到 item_list 中,其中包含一个 I.e. 的描述。促销/折扣
借助 QuantLib C++ 库,我尝试评估在其生命周期内具有不同息票的债券(例如,前三年为 6%,其余三年为 4%)。 我注意到 FixedRateBond 的构造函数类接受优惠券 vector
如标题中所述,我正在尝试通过电子邮件限制访问 WooCommerce 优惠券列表,以便在我的应用程序中使用它。 但是我确实成功访问了优惠券列表,但我无法通过电子邮件而非代码获取它。 现在我尝试使用 P
使用您自己的本地数据库镜像 Stripe 是一件好事吗? 使用 API 调用(创建新计划、优惠券、订阅等)和 webhook(生成新发票或费用、付款失败)进行镜像,因此您可以存储所有数据(字面意思是具
我是一名优秀的程序员,十分优秀!