我在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/
谢谢
答案 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
有关更多详细信息,请参阅以上教程。