Exemplo 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;
 }
Exemplo 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;
 }
Exemplo n.º 3
0
 /**
  * カートを購入モードに設定
  *
  * @param SiteSession $objSiteSess
  * @param CartSession $objCartSess
  * @return void
  */
 public function lfSetCurrentCart(&$objSiteSess, &$objCartSess, $cartKey)
 {
     // 正常に登録されたことを記録しておく
     $objSiteSess->setRegistFlag();
     $pre_uniqid = $objSiteSess->getUniqId();
     // 注文一時IDの発行
     $objSiteSess->setUniqId();
     $uniqid = $objSiteSess->getUniqId();
     // エラーリトライなどで既にuniqidが存在する場合は、設定を引き継ぐ
     if ($pre_uniqid != '') {
         $this->lfUpdateOrderTempid($pre_uniqid, $uniqid);
     }
     // カートを購入モードに設定
     $objCartSess->registerKey($cartKey);
     $objCartSess->saveCurrentCart($uniqid, $cartKey);
 }
Exemplo n.º 4
0
 /**
  * 配送業者IDから, 支払い方法, お届け時間の配列を取得する.
  *
  * 結果の連想配列の添字の値は以下の通り
  * - 'arrDelivTime' - お届け時間の配列
  * - 'arrPayment' - 支払い方法の配列
  * - 'img_show' - 支払い方法の画像の有無
  *
  * @param  CartSession $objCartSess CartSession インスタンス
  * @param  integer        $deliv_id    配送業者ID
  * @return array          支払い方法, お届け時間を格納した配列
  */
 public function getSelectedDeliv(CartSession &$objCartSess, $deliv_id)
 {
     $arrResults = array();
     if (strval($deliv_id) === strval(intval($deliv_id))) {
         $arrResults['arrDelivTime'] = Application::alias('eccube.helper.delivery')->getDelivTime($deliv_id);
         $total = $objCartSess->getAllProductsTotal($objCartSess->getKey());
         $payments_deliv = Application::alias('eccube.helper.delivery')->getPayments($deliv_id);
         /* @var $objPayment PaymentHelper */
         $objPayment = Application::alias('eccube.helper.payment');
         $payments_total = $objPayment->getByPrice($total);
         $arrPayment = array();
         foreach ($payments_total as $payment) {
             if (in_array($payment['payment_id'], $payments_deliv)) {
                 $arrPayment[] = $payment;
             }
         }
         $arrResults['arrPayment'] = $arrPayment;
         $arrResults['img_show'] = $this->hasPaymentImage($arrResults['arrPayment']);
     }
     return $arrResults;
 }
Exemplo n.º 5
0
 /**
  * 単一配送指定用に配送商品を設定する
  *
  * @param  CartSession $objCartSession カート情報のインスタンス
  * @param  integer        $shipping_id    配送先ID
  * @return void
  */
 public function setShipmentItemTempForSole(&$objCartSession, $shipping_id = 0)
 {
     /* @var $objCartSess CartSession */
     $objCartSess = Application::alias('eccube.cart_session');
     $this->clearShipmentItemTemp();
     $arrCartList =& $objCartSession->getCartList($objCartSess->getKey());
     foreach ($arrCartList as $arrCartRow) {
         if ($arrCartRow['quantity'] == 0) {
             continue;
         }
         $this->setShipmentItemTemp($shipping_id, $arrCartRow['id'], $arrCartRow['quantity']);
     }
 }