本文整理汇总了PHP中SC_Product_Ex::reduceStock方法的典型用法代码示例。如果您正苦于以下问题:PHP SC_Product_Ex::reduceStock方法的具体用法?PHP SC_Product_Ex::reduceStock怎么用?PHP SC_Product_Ex::reduceStock使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SC_Product_Ex
的用法示例。
在下文中一共展示了SC_Product_Ex::reduceStock方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: registerOrderComplete
/**
* 受注登録を完了する.
*
* 引数の受注情報を受注テーブル及び受注詳細テーブルに登録する.
* 登録後, 受注一時テーブルに削除フラグを立てる.
*
* @param array $orderParams 登録する受注情報の配列
* @param SC_CartSession $objCartSession カート情報のインスタンス
* @param integer $cartKey 登録を行うカート情報のキー
* @param integer 受注ID
*/
public function registerOrderComplete($orderParams, &$objCartSession, $cartKey)
{
$objQuery =& SC_Query_Ex::getSingletonInstance();
// 不要な変数を unset
$unsets = array('mailmaga_flg', 'deliv_check', 'point_check', 'password', 'reminder', 'reminder_answer', 'mail_flag', 'session');
foreach ($unsets as $unset) {
unset($orderParams[$unset]);
}
// 対応状況の指定が無い場合は新規受付
if (SC_Utils_Ex::isBlank($orderParams['status'])) {
$orderParams['status'] = ORDER_NEW;
}
$orderParams['del_flg'] = '0';
$orderParams['create_date'] = 'CURRENT_TIMESTAMP';
$orderParams['update_date'] = 'CURRENT_TIMESTAMP';
$this->registerOrder($orderParams['order_id'], $orderParams);
// 詳細情報を取得
$cartItems = $objCartSession->getCartList($cartKey, $orderParams['order_pref'], $orderParams['order_country_id']);
// 詳細情報を生成
$objProduct = new SC_Product_Ex();
$i = 0;
$arrDetail = array();
foreach ($cartItems as $item) {
$p =& $item['productsClass'];
$arrDetail[$i]['order_id'] = $orderParams['order_id'];
$arrDetail[$i]['product_id'] = $p['product_id'];
$arrDetail[$i]['product_class_id'] = $p['product_class_id'];
$arrDetail[$i]['product_name'] = $p['name'];
$arrDetail[$i]['product_code'] = $p['product_code'];
$arrDetail[$i]['classcategory_name1'] = $p['classcategory_name1'];
$arrDetail[$i]['classcategory_name2'] = $p['classcategory_name2'];
$arrDetail[$i]['point_rate'] = $item['point_rate'];
$arrDetail[$i]['price'] = $item['price'];
$arrDetail[$i]['quantity'] = $item['quantity'];
$arrDetail[$i]['tax_rate'] = $item['tax_rate'];
$arrDetail[$i]['tax_rule'] = $item['tax_rule'];
$arrDetail[$i]['tax_adjuts'] = $item['tax_adjust'];
// 在庫の減少処理
if (!$objProduct->reduceStock($p['product_class_id'], $item['quantity'])) {
$objQuery->rollback();
SC_Utils_Ex::sfDispSiteError(SOLD_OUT, '', true);
}
$i++;
}
$this->registerOrderDetail($orderParams['order_id'], $arrDetail);
$objQuery->update('dtb_order_temp', array('del_flg' => 1), 'order_temp_id = ?', array(SC_SiteSession_Ex::getUniqId()));
return $orderParams['order_id'];
}