openbuildings/promotions

购买促销

0.10.0 2020-12-09 10:08 UTC

README

Build Status Scrutinizer Quality Score Code Coverage Latest Stable Version

本模块允许通过一组要求定义促销,这些要求会自动添加到购买中,基于这些规则。每个促销可以有一个静态的或动态的/可配置的金额。

促销还可以为促销代码提供一次性或多次使用

用法

向购买和品牌购买模型添加行为

class Model_Brand_Purchase extends Kohana_Model_Brand_Purchase {

	public static function initialize(Jam_Meta $meta)
	{
		parent::initialize($meta);

		$meta
			->behaviors(array(
				'promotable_brand_purchase' => Jam::behavior('promotable_brand_purchase'),
			));
	}
}
// ...
class Model_Purchase extends Kohana_Model_Purchase {

	public static function initialize(Jam_Meta $meta)
	{
		parent::initialize($meta);

		$meta
			->behaviors(array(
				'promotable_purchase' => Jam::behavior('promotable_purchase'),
			));
	}
}

并且您需要将实际的促销添加到数据库中。促销模型使用单表继承来为每个促销定义不同的类。每个类都必须定义“applies_to”和“price_for_purchase_item”,您的促销必须实现这些。还有一个名为 Model_Promotion_Promocode 的类,它使促销能够使用促销代码,这些代码在使用后会耗尽。

有2个可用的预定义促销

  • Model_Promotion_Promocode_Giftcard - 使用它时,您需要输入要求 - 促销适用的最低价格,以及金额 - 从购买中扣除的金额(Jam_Price)
  • Model_Promotion_Promocode_Percent - 获取一定百分比(金额)的静态折扣。金额是0到1之间的值。

promo_code_text

promotable_purchase 行为为购买添加了一个 promo_code_text 字段(它不在数据库中)。当您将促销代码设置到此字段时,它会尝试查找它,然后运行相应促销的“validate_purchase”,如果找到。如果一切检查无误,则与该促销代码关联的促销将添加到购买中。

许可

版权所有 (c) 2012-2013,OpenBuildings Ltd。由Yasen Yanev作为clippings.com的一部分开发

根据BSD-3-Clause许可,请参阅LICENSE文件。