/**
  * カートの情報を取得する
  *
  * @param  SC_CartSession $objCart カートセッション管理クラス
  * @return array          カートデータ配列
  */
 public function lfGetCartData(&$objCart)
 {
     $arrCartKeys = $objCart->getKeys();
     foreach ($arrCartKeys as $cart_key) {
         // 購入金額合計
         $products_total += $objCart->getAllProductsTotal($cart_key);
         // 合計数量
         $total_quantity += $objCart->getTotalQuantity($cart_key);
         // 送料無料チェック
         if (!$this->isMultiple && !$this->hasDownload) {
             $is_deliv_free = $objCart->isDelivFree($cart_key);
         }
     }
     $arrCartList = array();
     $arrCartList['ProductsTotal'] = $products_total;
     $arrCartList['TotalQuantity'] = $total_quantity;
     // 店舗情報の取得
     $arrInfo = SC_Helper_DB_Ex::sfGetBasisData();
     $arrCartList['free_rule'] = $arrInfo['free_rule'];
     // 送料無料までの金額
     if ($is_deliv_free) {
         $arrCartList['deliv_free'] = 0;
     } else {
         $deliv_free = $arrInfo['free_rule'] - $products_total;
         $arrCartList['deliv_free'] = $deliv_free;
     }
     return $arrCartList;
 }
示例#2
0
 /**
  * カートに変化が無いか検証する.
  *
  * ユニークIDとセッションのユニークIDを比較し, 異なる場合は
  * エラー画面を表示する.
  *
  * カートが空の場合, 購入ボタン押下後にカートが変更された場合は
  * カート画面へ遷移する.
  *
  * @param string $uniqId ユニークID
  * @param SC_CartSession $objCartSession
  * @return void
  */
 function verifyChangeCart($uniqId, &$objCartSession)
 {
     $cartKeys = $objCartSession->getKeys();
     // カート内が空でないか
     if (SC_Utils_Ex::isBlank($cartKeys)) {
         SC_Response_Ex::sendRedirect(CART_URLPATH);
         exit;
     }
     foreach ($cartKeys as $cartKey) {
         // 初回のみカートの内容を保存
         $objCartSession->saveCurrentCart($uniqId, $cartKey);
         /*
          * POSTのユニークIDとセッションのユニークIDを比較
          *(ユニークIDがPOSTされていない場合はスルー)
          */
         if (!SC_SiteSession_Ex::checkUniqId()) {
             SC_Utils_Ex::sfDispSiteError(CANCEL_PURCHASE);
             exit;
         }
         // 購入ボタンを押してから変化がないか
         $quantity = $objCartSession->getTotalQuantity($cartKey);
         if ($objCartSession->checkChangeCart($cartKey) || !($quantity > 0)) {
             SC_Response_Ex::sendRedirect(CART_URLPATH);
             exit;
         }
     }
 }
 /**
  * カートの情報を取得する
  *
  * @param SC_CartSession $objCart カートセッション管理クラス
  * @return array $arrCartList カートデータ配列
  */
 function lfGetCartData(&$objCart)
 {
     $arrCartKeys = $objCart->getKeys();
     foreach ($arrCartKeys as $cart_key) {
         // カート情報を取得
         $arrCartList = $objCart->getCartList($cart_key);
         // カート内の商品ID一覧を取得
         $arrAllProductID = $objCart->getAllProductID($cart_key);
         // 商品が1つ以上入っている場合には商品名称を取得
         if (!SC_Utils_Ex::isBlank($arrCartList['productsClass'])) {
             foreach ($arrCartList['productsClass'] as $key => $val) {
                 $arrCartList[$key]['product_name'] = $val['name'];
             }
         }
         // 購入金額合計
         $products_total += $objCart->getAllProductsTotal($cart_key);
         // 合計数量
         $total_quantity += $objCart->getTotalQuantity($cart_key);
         // 送料無料チェック
         if (!$this->isMultiple && !$this->hasDownload) {
             $is_deliv_free = $objCart->isDelivFree($cart_key);
         }
     }
     $arrCartList[0]['ProductsTotal'] = $products_total;
     $arrCartList[0]['TotalQuantity'] = $total_quantity;
     // 店舗情報の取得
     $arrInfo = SC_Helper_DB_Ex::sfGetBasisData();
     $arrCartList[0]['free_rule'] = $arrInfo['free_rule'];
     // 送料無料までの金額
     if ($is_deliv_free) {
         $arrCartList[0]['deliv_free'] = 0;
     } else {
         $deliv_free = $arrInfo['free_rule'] - $products_total;
         $arrCartList[0]['deliv_free'] = $deliv_free;
     }
     return $arrCartList;
 }