编程语言
首页 > 编程语言> > php-创建一个随机的Magento优惠券

php-创建一个随机的Magento优惠券

作者:互联网

我有麻烦了我想做的是,每当有人订阅我们的新闻通讯时,都会在Magento中自动生成一个随机的优惠券代码.优惠券可减10美元,并且可以享受优惠.订阅后两周的日期.

因此,我正在尝试编写一个简单的脚本,该脚本在提交“订阅我们的新闻通讯”表单时跳闸,该表单将与Magento对话,请Magento提供一个随机的优惠券代码,并设置一些基本的价格规则(可优惠10美元) ,每位客户一次使用,每张优惠券使用一次,从生成之日起两周内到期),然后返回随机的优惠券代码(例如:WELCOME5​​798),该代码可以存储在将传递的变量中,并带有姓氏和e-通过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将自定义操作注入订阅过程.

这是根据您的需求创建优惠券的示例

<?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());
    }
}

标签:coupon,magento,automation,auto-generate,php
来源: https://codeday.me/bug/20191127/2074912.html