Make an offer of getting Y quantity of any products for free in Magento

最近我还写了一个程序,是为了一个非常特殊的促销模型写的:买 X 送 Y。具体是这样:从产品 A 组里每买 X 件,可以从另一堆产品 B 组里任选 Y 件,白送。但 B 组产品同时也是独立销售的,如果有人买了 X 件 A 组里的产品,同时买了 Y+1 件 B 组里的产品,那么其中 1 件 B 组产品不白送,该卖多少价就是多少价。

我认为 Magento 自带的促销模型已然非常强大,能用一个非常好用的 GUI 组装出千变万化的规则。无奈 my client 脑子更强大,总是想一些 Magento 天然功能以外的点子。我研究了 Magento 天然的 Buy X get Y,发现它是针对 X 和 Y 是同个产品而作的规则。论坛上也有人变通作出 buy X of product A, get Y of product B,但我这个难点是 get Y of any product from B group,meanwhile all products from B group are for sale,我想是不可能通过 Magento 自带的促销模型完成的。

设想一下,顾客购物车里有三项产品

  • product A1 from group A: Quantity X
  • product B1 from group B: Quantity Y
  • product B2 from group B: Quantity Y

因为 Magento 是逐条套用规则,再逐条套用 quote item,所以上述情况下,product B1 和 product B2 都满足规则,统统赠送。为了解决不该送的数量被送掉了的问题,必须抛弃 GUI 了,动手编程吧。还好,这个特殊规则并不难写,我写了两个小时,搞掂。

附注:不编程的话,还有一个不是办法的办法——turn product group B into a configurable product, and all the products become options。然后告诉用户,如果想得到免费赠品的话,add this configurable product to cart。但这样生添了一个 configurable product,其实这是 product group B 里产品的同质产品,同质产品却不同效应?这会给用户带来困惑,所以不可取。

1 comment

  1. Hi, 我正在寻找Magento开发人员制作中文版的Magento。想和你交流一下,请发我邮件,谢谢!

Leave a comment

Your email address will not be published. Required fields are marked *