/** * カートの情報を取得する * * @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; }
/** * カートの情報を取得する * * @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; }
/** * 配送業者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; }