OpenCart XML Feed - 仅显示特定类别的产品

时间:2013-04-22 22:21:25

标签: feed opencart categories product

几天后我放弃了 - 我无法理解。

这是我的OpenCart XML Feed代码的相关部分:

代码:

     $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

我想说,我希望展示类别(ID)12的产品,应该做出哪些更改?

我正在使用OpenCart 1.5.1.3

1 个答案:

答案 0 :(得分:0)

如果查看getProducts()函数,您会看到它接受array作为参数。您可以将过滤器参数传递给它,并获取特定类别,制造商等的产品。参数是:

filter_category_id
filter_sub_category
filter_filter
filter_name
filter_tag
filter_description
filter_manufacturer_id

[编辑:基于评论1:示例]

创建一个您想要作为参数传递的数组(例如,从类别ID 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;
...