ホームページ >php教程 >php手册 >PHPオンラインモールプロモーションデザインサンプルコード

PHPオンラインモールプロモーションデザインサンプルコード

WBOY
WBOYオリジナル
2016-06-13 12:02:32852ブラウズ

一般的な考え方は、プロモーションごとに新しいプロモーション カテゴリを作成し、それを有効にするかどうかを制御する特別なスイッチを使用する必要があるということです。
製品のプロモーション識別コードを使用して、どのプロモーション インスタンスを呼び出すかを決定します。
まず、商品を追加する際には、ステータスを追加するステップと、ショッピング カート内の商品のステータスを表示するステップの 2 つがあります。
1. 手順を追加する際のいくつかの重要なポイント:
1. 製品を追加する前に、すべてのプロモーションの相互排他条件を確認します。
たとえば、特定の製品を別の製品と同時に同じショッピング カートに入れることはできません。また、特定のユーザー権限では特定の製品を購入することもできません。
2. 製品を追加する前に、追加する前に操作を実行する特定のプロモーション インスタンスを選択します。
注: 2 番目のポイントと最初のポイントの違いは、1 はすべてのプロモーション インスタンスを横断するのに対し、2 は別個のインスタンスであることです。
3. 製品を追加した後、実行される操作は特定のプロモーション インスタンスに基づいて行われます。

コードをコピー コードは次のとおりです。


/**
* 商品をショッピングカートに追加します
* @param int $goods_id 商品ID
* @param string $goods_spec 商品仕様
* @param int $goods_number 商品数量
* @param string $ promote_name 製品参加イベント
* @return bool
*/
public function GoodsAdd( $goods_id, $goods_spec, $goods_number, $promote_name)
{
//すべての有効なプロモーション インスタンスを取得します
$rules = $this->_getAllRuleInstance()
foreach($this->); ;_rules as $instance)
{
//ギフト交換の相互排除判定
if(!$instance->goodsExclusion($goods_id, $goods_spec))
{
return false ;
}
}
//商品の個々のプロモーション インスタンスを取得します
$rule = $this->_getRuleInstance($promote_name);
//商品を追加する前の操作
if($rule ->beforeGoodsAdd())
{
$rule->goodsAdd($goods_id, $goods_spec, $goods_number)
//商品追加後の操作
return $rule->afterGoodsAdd ();
}
return
}


コードをコピーしますコードは次のとおりです:


/**
* 使用可能なルール インスタンスのリストを取得します
* @return array
*/
プライベート関数 _getAllRuleInstance()
{
if(empty($this->_rules))
{
$dir = dirname(__FILE__).'/Cart/Rule/';
$dir_handle = opendir($dir);
while($file = readdir($dir_handle)) >{
if(is_file( $dir.$file))
{
$instance = $this->getRuleInstance(substr($file, 0, strpos($file, '.')) );
if($instance ->enabled())
{
$this->_rules[] = $instance>}
}
}
return $this-> ;_rules;
}




コードをコピー

コードは次のとおりです: /**

* ショッピング カート ルール クラスを取得します

* @param string $name ルール名
* @return Bll_Shop_Cart_Rule
*/
プライベート関数 _getRuleInstance($name)
{
$rule_name = 'Bll_Shop_Cart_Rule_'.$name
try
{
Zend_Loader::loadClass($rule_name);
$this->_rule = new $rule_name();
$this->_rule->setCart($this); $this->_rule;
}catch (Exception $e)
{
Bll_LogWriter::logException('ショッピング ルール オブジェクトの読み込み例外。rule_name:'.$rule_name); ('ショッピング ルール オブジェクトの読み込み例外。');
}
}


ここで使用される主なプロモーションは、特定の人がこの製品、割引、等
2 番目、ショッピング カートのアイテムを横断する操作
このステップで実行する重要な操作は、すべてのプロモーション戦略のチェック リスト機能を横断することです。
ここでよく利用されるプロモーションには、無料ギフトの入手、2 つ購入すると 1 つ無料などがあります。




コードをコピー

コードは次のとおりです。

/*** ショッピングカート内のアイテムのリストを取得します * @return array Bll_Shop_Cart_Rule

*/

public function GoodsViewList( )
{
$list = $this->getGoodsList();
// 出品時にショッピング カート内のアイテムのリストを確認します
$rules = $this->_getAllRuleInstance() ;
foreach ($this->_rules as $instance)
{
$instance->setGoodsList($list)->goodsCheckList(); ] = $instance;
}
//最新のショッピング カート リストを取得します
$goods_list = $this->_cart->getGoodsList();
return $goods_list;


第三に、注文を送信する前の操作
たとえば、誰かが割引許可を持っている場合、その割引許可は注文完了後に使用されます。ご注文前に必ずご確認ください。 ご注文金額が金額に満たない場合、ご注文は承れません。
上記はすべて、注文を送信する前に使用されます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。