2013-08-30 182 views
1

我對opencart頗爲陌生,目前我正在開發一個商店,我需要能夠在購物車內顯示產品屬性。我全面搜索,但顯然沒有人需要這個功能。 我簡短的說,我試圖複製在產品頁面中檢索屬性的方式,但沒有成功。 我修改控制器加入這一行:購物車中的產品屬性opencart

$this->data['attribute_groups'] = $this->model_catalog_product->getProductAttributes($this->request->get['product_id']); 

我還添加:

<?php foreach ($attribute_groups as $attribute_group) { ?> 
    <?php echo $attribute_group['name']; ?> 
    <?php foreach ($attribute_group['attribute'] as $attribute) { ?> 
    <?php echo $attribute['name']; ?> 
<?php echo $attribute['text']; ?> 
    <?php } ?> 
    <?php } ?> 
<?php } ?> 

沒有更迭。 我想我必須修改某種方式system/library/cart.php。問題是我沒有足夠的知識去知道如何去做! 在這一點上,我決定在這裏尋求幫助! 有什麼想法嗎?

回答

0

這並不難,因爲它似乎在表面上你只需要編輯兩個文件並打開3.

--1--添加方法檢索屬性的車類。

公開目錄/模型/目錄/ product.php

找到方法getProductAttributes($product_id)和整個方法複製到剪貼板。

打開system/library/cart.phpgetProducts()方法後粘貼您複製的方法。

--2--剛好高於您粘貼代碼,在getProducts()方法,你會看到那裏的產品陣列中的視圖內置的結尾,它看起來與此類似:

$this->data[$key] = array(
    'key'    => $key, 
    'product_id'  => $product_query->row['product_id'], 
    'name'   => $product_query->row['name'], 
    'model'   => $product_query->row['model'], 
    'shipping'  => $product_query->row['shipping'], 
    'image'   => $product_query->row['image'], 
    'option'   => $option_data, 
    'download'  => $download_data, 
    'quantity'  => $quantity, 
    'minimum'   => $product_query->row['minimum'], 
    'subtract'  => $product_query->row['subtract'], 
    'stock'   => $stock, 
    'price'   => ($price + $option_price), 
    'total'   => ($price + $option_price) * $quantity, 
    'reward'   => $reward * $quantity, 
    'points'   => ($product_query->row['points'] ? ($product_query->row['points'] + $option_points) * $quantity : 0), 
    'tax_class_id' => $product_query->row['tax_class_id'], 
    'weight'   => ($product_query->row['weight'] + $option_weight) * $quantity, 
    'weight_class_id' => $product_query->row['weight_class_id'], 
    'length'   => $product_query->row['length'], 
    'width'   => $product_query->row['width'], 
    'height'   => $product_query->row['height'], 
    'length_class_id' => $product_query->row['length_class_id']     
); 

現在只需添加一個調用該getAttributes方法的數組:

'attributes' => $this->getProductAttributes($product_query->row['product_id'])

現在打開你的購物車的模板:catalog/view/theme/yourtheme/common/cart.tpl和身在何方產品選項循環是,你現在可以通過您的屬性循環就像選項一樣。

+0

非常感謝! –

+0

不過,沒有數據顯示在購物車中。我還必須修改控制器嗎?再次感謝你! –

+0

我會說是,對不起。我沒有意識到購物車控制器正在爲購物車顯示器創建一個新陣列。在控制器中查看'$ this-> data ['products'] [] = array('正在構建的內容。在上面你會看到'$ option_data'數組的創建......你應該能夠以此爲例來說明如何格式化和添加屬性 –