initHead(); $currency_info = Yii::$service->page->currency->getCurrencyInfo(); return [ 'cart_info' => $this->getCartInfo(), 'currency_info' => $currency_info, ]; } /** @return data example * [ * 'grand_total' => $grand_total, * 'shipping_cost' => $shippingCost, * 'coupon_cost' => $couponCost, * 'product_total' => $product_total, * 'products' => $products, * ] * 上面的products数组的个数如下: * $products[] = [ * 'product_id' => $product_id , * 'qty' => $qty , * 'custom_option_sku' => $custom_option_sku , * 'product_price' => $product_price , * 'product_row_price' => $product_row_price , * 'product_name' => $one['name'], * 'product_url' => $one['url_key'], * 'product_image' => $one['image'], * ]; */ public function getCartInfo(){ $cart_info = Yii::$service->cart->getCartInfo(); //var_dump($cart_info); //exit; if(isset($cart_info['products']) && is_array($cart_info['products'])){ foreach($cart_info['products'] as $k=>$product_one){ $cart_info['products'][$k]['name'] = Yii::$service->store->getStoreAttrVal($product_one['product_name'],'name'); if(isset($product_one['product_image']['main']['image'])){ $cart_info['products'][$k]['image'] = $product_one['product_image']['main']['image']; } $cart_info['products'][$k]['url'] = Yii::$service->url->getUrl($product_one['product_url']); $custom_option = isset($product_one['custom_option']) ? $product_one['custom_option'] : ''; $custom_option_sku = $product_one['custom_option_sku']; if(isset($custom_option[$custom_option_sku]) && !empty($custom_option[$custom_option_sku])){ $custom_option_info = $custom_option[$custom_option_sku]; $custom_option_info_arr = []; foreach($custom_option_info as $attr=>$val){ if(!in_array($attr,['qty','sku','price','image'])){ $attr = str_replace('_',' ',$attr); $attr = ucfirst($attr); $custom_option_info_arr[$attr] = $val; } } $cart_info['products'][$k]['custom_option_info'] = $custom_option_info_arr; $custom_option_image = isset($custom_option[$custom_option_sku]['image']) ? $custom_option[$custom_option_sku]['image'] : ''; if($custom_option_image){ $cart_info['products'][$k]['image'] = $custom_option_image; } } } } return $cart_info; } public function initHead(){ Yii::$app->view->registerMetaTag([ 'name' => 'keywords', 'content' => 'checkout cart', ]); Yii::$app->view->registerMetaTag([ 'name' => 'description', 'content' => 'checkout cart page', ]); $this->_title = 'checkout cart page'; Yii::$app->view->title = $this->_title; } }