简体   繁体   中英

Magento Coupon Code in Order Confirmation Email

In Magento, I want to send auto generated coupon code in order confirmation email when customer places and order. The coupon code should be unique and can be used once and is valid for 48 hours. How this can be achieved? Detailed answer would be appreciated.

Thanks,

You have to customize order confirmation email template to have coupon code variable. Add following code in template where you want to see coupon code.

{{var order.getCouponCode()}}

Now create new observer for event sales_order_place_after.

<sales_order_place_after>
            <observers>
                <add_coupon>   
                    <class>CompanyName_ModuleName_Model_Observer</class>
                    <method>setCouponCode</method>
                </add_coupon>
            </observers>
        </sales_order_place_after>

And place following code with your required modifications.

public function setCouponCode(Varien_Event_Observer $observer) {
        $order = $observer->getEvent()->getOrder();
        //code to generate coupon
        //create new shopping cart rule in admin with "Use Auto Generation" and place rule id below
        $ruleId = 'place here your rule id';

        $rule = Mage::getModel('salesrule/rule')->load($ruleId); 

        // Define a coupon code generator model instance
        // Look at Mage_SalesRule_Model_Coupon_Massgenerator for options
        $generator = Mage::getModel('salesrule/coupon_massgenerator');

        $parameters = array(
            'rule_id' => $ruleId,
            'qty' => 1,
            'uses_per_coupon'=>$rule->getUsesPerCoupon(),
            'uses_per_customer'=>$rule->getUsesPerCustomer(),
            'format'=>'alphanum',
            'dash'=>4,
            'prefix'=>'ABCD-EFGH-',
            'suffix'=>'-WXYZ',
            'length'=>8
        );

        $generator->setData($parameters);
        $code = $this->generatePool($generator);
        $generated = $generator->getGeneratedCount();
        $order->setCouponcode($code);
    }

Hope this will help you.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM