OpenCart XML feed - 仅显示特定类别的产品
问题描述:
几天后,我放弃了这一点 - 我无法弄清楚。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
显示某些类别,例如只产品。
比方说,我想显示产品类别(编号)1
和2
,应该做什么改变?
我使用Opencart的1.5.1.3
答
如果你看了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;
...
嗯,我发现功能也在控制器/产品/ category.php但我无法让它工作。你能告诉我如何在我的提要代码中使用它吗? – 2013-04-23 07:33:53
@Drejon你有什么尝试?无论如何,我编辑了我的答案,添加了例子。 – 2013-04-23 08:25:13
我试图在数组之前调用getProducts($ data)。我将您的解决方案用于多个类别,这些设置缺少“$ this->”,但是在添加它之后,一切都很好。我还包括了子类别。非常感谢您的帮助! – 2013-04-23 08:39:43