2013-04-22 55 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

相关问题