ホームページ  >  記事  >  バックエンド開発  >  PHPオンラインモールプロモーションデザインサンプルコード_PHPチュートリアル

PHPオンラインモールプロモーションデザインサンプルコード_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:21:09827ブラウズ

一般的な考え方は、プロモーションごとに新しいプロモーション カテゴリを作成し、それを有効にするかどうかを制御する特別なスイッチを使用する必要があるということです。
製品のプロモーション識別コードを使用して、どのプロモーション インスタンスを呼び出すかを決定します。
まず、商品を追加する際には、ステータスを追加するステップと、ショッピングカート内の商品のステータスを表示するステップの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);
// product
if($rule ->beforeGoodsAdd())
{
$rule->goodsAdd($goods_id, $goods_spec, $goods_number)
//商品追加後の操作
return $rule->afterGoodsAdd(); ;
}
return false ;
}

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

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




;
コードは次のとおりです。 /** * ショッピング カート ルール クラスを取得します
* @param string $name ルール名
* @return Bll_Shop_Cart_Rule
*/
private function _getRuleInstance($name)
{
$rule_name = 'Bll_Shop_Cart_Rule_'.$name
try
{
Zend_Loader::loadClass($name;ルール名);
$this->_rule = 新しい $ルール名();
$this->_rule
}catch (例外 $e)
{
Bll_LogWriter::logException('ショッピング ルール オブジェクトの読み込み例外。rule_name:'.$rule_name);
throw new Exception('ショッピング ルール オブジェクトの読み込み例外。');


ここで使用される主なプロモーション特定の人物がこの製品の許可、割引などを追加したかどうかを判断することです。
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() ;
$this->_tip_rules[] = $instance;
//最新のショッピングカートリストを取得します
$goods_list = $this->_cart->getGoodsList();商品リスト
}


第三に、注文を送信する前の操作
たとえば、誰かが割引許可を持っている場合、注文を完了した後に割引許可が使用されるか、注文する前に注文金額を確認する必要があるなど、いくつかの種類があります。 、数に満たない場合は注文されません。
上記はすべて注文を送信する前に使用されます。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/324963.html技術記事一般的な考え方は、プロモーションごとに新しいプロモーション カテゴリを作成し、それを有効にするかどうかを制御する特別なスイッチを使用する必要があるということです。 製品のプロモーション識別コードを使用して、どのプロモーション インスタンスを呼び出すかを決定します。 ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。