Esempio n. 1
0
 /**
  * カートの情報を取得する
  *
  * @param  Eccube\CartSession $objCart カートセッション管理クラス
  * @return array          カートデータ配列
  */
 public function lfGetCartData(CartSession &$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 = Application::alias('eccube.helper.db')->getBasisData();
     $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;
 }
Esempio n. 2
0
 /**
  * カートの情報を取得する
  *
  * @param  CartSession $objCart  カートセッション管理クラス
  * @param  Array          $arrInfo  基本情報配列
  * @param  Array          $cartKeys 商品種類配列
  * @return array          $arrCartList カートデータ配列
  */
 public function lfGetCartData(CartSession $objCart, $arrInfo, $cartKeys)
 {
     $cartList = array();
     foreach ($cartKeys as $key) {
         // カート集計処理
         $cartList[$key]['productTypeName'] = $this->arrProductType[$key];
         //商品種類名
         $cartList[$key]['totalInctax'] = $objCart->getAllProductsTotal($key);
         //合計金額
         $cartList[$key]['delivFree'] = $arrInfo['free_rule'] - $cartList[$key]['totalInctax'];
         // 送料無料までの金額を計算
         $cartList[$key]['totalTax'] = $objCart->getAllProductsTax($key);
         //消費税合計
         $cartList[$key]['quantity'] = $objCart->getTotalQuantity($key);
         //商品数量合計
         $cartList[$key]['productTypeId'] = $key;
         // 商品種別ID
     }
     return $cartList;
 }
Esempio n. 3
0
 /**
  * カートに変化が無いか検証する.
  *
  * ユニークIDとセッションのユニークIDを比較し, 異なる場合は
  * エラー画面を表示する.
  *
  * カートが空の場合, 購入ボタン押下後にカートが変更された場合は
  * カート画面へ遷移する.
  *
  * @param  string         $uniqId         ユニークID
  * @param  CartSession $objCartSession
  * @return void
  */
 public function verifyChangeCart($uniqId, &$objCartSession)
 {
     $cartKey = $objCartSession->getKey();
     // カート内が空でないか
     if (Utils::isBlank($cartKey)) {
         Application::alias('eccube.response')->sendRedirect(CART_URL);
         exit;
     }
     // 初回のみカートの内容を保存
     $objCartSession->saveCurrentCart($uniqId, $cartKey);
     /*
      * POSTのユニークIDとセッションのユニークIDを比較
      *(ユニークIDがPOSTされていない場合はスルー)
      */
     if (!Application::alias('eccube.site_session')->checkUniqId()) {
         Utils::sfDispSiteError(CANCEL_PURCHASE);
         exit;
     }
     // 購入ボタンを押してから変化がないか
     $quantity = $objCartSession->getTotalQuantity($cartKey);
     if ($objCartSession->checkChangeCart($cartKey) || !($quantity > 0)) {
         Application::alias('eccube.response')->sendRedirect(CART_URL);
         exit;
     }
 }