2016-07-20 5 views
1

In Magento möchte ich automatisch generierten Gutschein-Code in der Auftragsbestätigung senden, wenn der Kunde bestellt und bestellt. Der Gutscheincode sollte einmalig sein und kann einmalig verwendet werden und ist 48 Stunden gültig. Wie kann das erreicht werden? Detaillierte Antwort würde geschätzt werden.Magento Gutschein-Code in der Auftragsbestätigung E-Mail

Danke,

+0

Ist Ihre Anforderung gelöst? – Rathinam

Antwort

0

Sie müssen Auftragsbestätigung E-Mail-Vorlage anpassen Gutscheincode Variable zu haben. Fügen Sie den folgenden Code in die Vorlage ein, in der Sie den Gutscheincode sehen möchten.

{{var order.getCouponCode()}} 

nun neue Beobachter schaffen für 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> 

Und folgenden Code mit den erforderlichen Änderungen einfügen.

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

Hoffe, das wird Ihnen helfen.