2016-07-24 1 views
1

Мне нужно добавить код купона от $ 100 до информационного бюллетеня. Я сделал переписать \ Magento \ Newsletter \ Model \ Абонента в методе sendConfirmationSuccessEmailКак автоматически генерировать код купона от 100 долларов США?

->setTemplateVars(
['subscriber' => $this, 
'coupon_code' => $this->getCouponCode() 
]) 

protected function getCouponCode() { . . . . . . return $couponCode; }

Как автоматически генерировать код купона в Magento 2?

ответ

0

Вы определили Правило корзины покупок? Если нет, то с чего начать. В области администрирования перейдите в раздел «Акции»> «Правила корзины покупок»> «Добавить новое правило» и укажите конкретный купон с выбранным выбором «Автоматическое генерирование».

Как только вы определили правило для какой-либо конкретной скидки, которую вы хотите предложить, сохраните правило и запишите идентификатор правила из строки правил Price Price Shopping, показывающей правило, которое вы только что создали.

Затем добавить что-то вроде следующего, используя правило идентификатор вы только что создали правило:

функция ниже принимает ассоциативный массив со следующими параметрами:

rule_id = правилу ID, сверху

кол-во = количество купонов, чтобы инструктировать Magento генерировать

длина = длина каждого сгенерированного кода купона

format = alphanum (для буквенно-цифровых кодов) ИЛИ альфа (для алфавитных кодов) ИЛИ num (для числовых кодов)

protected function getCouponCode($couponData) 
{ 
    $rule = $this->_loadSalesRule($ruleId); 
    // Reference the MassGenerator on this rule. 
    /** @var Mage_SalesRule_Model_Coupon_Massgenerator $generator */ 
    $generator = $rule->getCouponMassGenerator(); 
    // Validate the generator 
    if (!$generator->validateData($couponData)) { 
     $this->_critical(Mage::helper('salesrule')->__('Coupon AutoGen API: Invalid parameters passed in.'), 
      Mage_Api2_Model_Server::HTTP_BAD_REQUEST); 
    } else { 
     // Set the data for the generator 
     $generator->setData($couponData); 
     // Generate a pool of coupon codes for the Generate Coupons rule 
     $generator->generatePool(); 
    } 
}