Magento 2 创建购物车价格规则并且自动生成优惠券代码

Magento提供购物车价格规则营销功能,允许根据一组条件对购物车中的商品应用折扣。只要满足条件,或者客户输入有效的优惠券代码,就可以自动应用折扣。优惠券代码可以通过管理面板的Marketing -> Cart Price Rules部分按购物车价格规则生成。但是,有时我们需要自动执行此过程。让我们来看看如何在Magento 2中以编程方式创建购物车价格规则并生成优惠券代码。

首先,我们创建一个服务类,旨在使用默认优惠券生成器(\Magento\SalesRule\Model\CouponGenerator)生成优惠券代码。如果我们想要通过预定的CRON计划任务生成优惠券代码,将来可以重复使用该服务。或者我们甚至可以另外创建一个新的CLI命令,它允许通过简单地调用\Atwix\CartCouponSample\Service\GenerateCouponCodesService::execute方法为指定的购物车价格规则生成许多代码。

 

然后,我们实现一个设置服务类,用于创建购物车价格规则并将优惠券代码分配给新创建的规则。我们将此逻辑移至专用的安装服务类,只是为了遵循单一责任原则并避免存储在安装脚本中的大量逻辑。

 

以下步骤通过以下\Atwix\CartCouponSample\Setup\SetupService\CreateCartPriceRuleService::execute方法执行:

  1. 使用工厂创建购物车价格规则对象。
  2. 将所需数据和其他配置设置为购物车价格规则对象。我们还使用优惠券类型“特定优惠券”并设置“使用自动生成”标志以使多个优惠券代码生成成为可能。
  3. 使用相应的存储库保存购物车价格规则。注意,在这种情况下,由于现有的实现,我们需要设置区号RuleRepositoryRuleRepository::save从CLI 运行方法时需要模拟特定区域,以避免相应的错误(“区域代码未设置”)。
  4. 使用,生成优惠券代码并将其分配给新创建的购物车价格规则Atwix\CartCouponSample\Service\GenerateCouponCodesService

现在,让我们为我们的模块创建数据安装脚本:

 

 

执行数据升级后,您将能够在管理面板中查看结果。

Magento 2 自动生成优惠券

如果有不懂的地方请留言,SKY8G网站编辑者专注于研究IT源代码研究与开发。希望你下次光临,你的认可和留言是对我们最大的支持,谢谢!

上一篇: 在Magento 2中用代码的方式创建新的订单状态

下一篇: Magento 2 设置计划任务

登录 评论
avatar