几天后我放弃了 - 我无法理解。
这是我的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)1
和2
的产品,应该做出哪些更改?
我正在使用OpenCart 1.5.1.3
答案 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;
...