2013-04-22 86 views
1

幾天後,我放棄了這一點 - 我無法弄清楚。OpenCart XML feed - 僅顯示特定類別的產品

這是我Opencart的XML代碼飼料相關部分:

代碼:

 $this->load->model('catalog/category'); 

    $this->load->model('catalog/product'); 

    $this->load->model('tool/image'); 

    $products = $this->model_catalog_product->getProducts(); 

    foreach ($products as $product) { 
     if ($product['description']) { 
      $output .= '<PRODUCT>'; 
      $output .= '<NAME>' . $product['name'] . '</NAME>'; 
      $output .= '<DESCRIPTION>' . $product['description'] . '</DESCRIPTION>'; 
      $output .= '</PRODUCT>'; 

我希望能夠通過category_id顯示某些類別,例如只產品。

比方說,我想顯示產品類別(編號)12,應該做什麼改變?

我使用Opencart的1.5.1.3

回答

0

如果你看了getProducts()功能,你會看到它接受array作爲參數。您可以通過濾波器參數給它,並獲得產品的具體類別,生產廠家等PARAMS是:

filter_category_id 
filter_sub_category 
filter_filter 
filter_name 
filter_tag 
filter_description 
filter_manufacturer_id 

[編輯:基於註釋1:例]

創建要傳遞一個數組作爲參數,例如(擺脫類別編號10的所有產品和它的子類)

$data = array(
    'filter_category_id' => '10', 
    'filter_sub_category' => 'true' 
); 

然後調用

getProducts($data); 

或做內聯

getProducts(array('filter_category_id' => '10')); 

如果你需要不止一個類別,讓他們分別就加入他們:

$set1 = $this->model_catalog_product->getProducts(array('filter_category_id' => '10')); 
$set2 = $this->model_catalog_product->getProducts(array('filter_category_id' => '11')); 
$products = $set1 + $set2; 
... 
+0

嗯,我發現功能也在控制器/產品/ category.php但我無法讓它工作。你能告訴我如何在我的提要代碼中使用它嗎? – 2013-04-23 07:33:53

+0

@Drejon你有什麼嘗試?無論如何,我編輯了我的答案,添加了例子。 – 2013-04-23 08:25:13

+0

我試圖在數組之前調用getProducts($ data)。我將您的解決方案用於多個類別,這些設置缺少「$ this->」,但是在添加它之後,一切都很好。我還包括了子類別。非常感謝您的幫助! – 2013-04-23 08:39:43

相關問題