magento 2以编程方式基于规则生成优惠券代码

时间:2019-03-27 23:20:31

标签: magento magento2

我在Magento 2中创建了一条规则,例如优惠10%,此规则使用自动生成的优惠券代码,而不是预先指定的代码。

我想知道如何以编程方式基于规则生成代码。

注意:这不是关于以编程方式创建新规则。我想根据现有规则生成代码,因此我可以在需要时添加更多代码,但不必每次都创建新规则,例如当客户订阅我们的邮件列表时,我可以按照相同的规则执行代码以生成新代码,并将其发送给订阅者。

我找到了这篇文章,但这是关于创建新规则的

https://magento.stackexchange.com/questions/207311/magento2-2-programmatically-create-coupon

我找到了Magento 1的解决方案:

https://mage2-blog.com/magento-1-programmatically-create-promotion-coupon-codes/

谢谢

2 个答案:

答案 0 :(得分:0)

实际上比我想象的要容易。下面的代码对我有用:

$couponGenerator = $objectManager->create('Magento\SalesRule\Model\CouponGenerator');

    $data = array(
      'rule_id' => $rule->getId(),
      'qty' => '1',
      'length' => '12',
      'format' => 'alphanum',
      'prefix' => 'pre',
      'suffix' => 'suf',
    );

    $codes = $couponGenerator->generateCodes($data);

答案 1 :(得分:0)

您可以基于销售规则ID创建优惠券。 您首先需要具有基本详细信息的销售规则,例如规则名称,描述,规则类型,网站ID和客户类型。

Create Coupon Rule Programmatically Magento 2

有关更多详细信息,请参阅以上教程。