Prestashop 根据主类别id列出所有子类别

Prestashop 根据主类别id列出所有子类别,prestashop,prestashop-1.5,Prestashop,Prestashop 1.5,我需要得到所有类别id,属于specyfic类别。是否可以根据主类别id列出所有子类别?如果查看类别类别,您将看到一个名为getSubCategories()的方法。: /** *返回当前类别的child * *@param integer$id_lang语言id *@param boolean$active仅返回活动类别 *@返回数组类别 */ 公共函数getSubCategories($id\u lang,$active=true) { [...] } 因此,如果您有一个$category

我需要得到所有类别id,属于specyfic类别。是否可以根据主类别id列出所有子类别?

如果查看
类别
类别,您将看到一个名为
getSubCategories()的方法。

/**
*返回当前类别的child
*
*@param integer$id_lang语言id
*@param boolean$active仅返回活动类别
*@返回数组类别
*/
公共函数getSubCategories($id\u lang,$active=true)
{
[...]
}
因此,如果您有一个
$category
对象,并希望所有活动子类别都打印在前面,您可以执行以下操作:

if(isset($this->name[Context::getContext()->language->id]))
$id_lang=Context::getContext()->language->id;
其他的
$id_lang=(int)配置::get('PS_lang_DEFAULT');
$subcategories=$category->getSubCategories($id\u lang,true);

如果您查看
Category
类,您将看到一个名为
getSubCategories()
的方法:

/**
*返回当前类别的child
*
*@param integer$id_lang语言id
*@param boolean$active仅返回活动类别
*@返回数组类别
*/
公共函数getSubCategories($id\u lang,$active=true)
{
[...]
}
因此,如果您有一个
$category
对象,并希望所有活动子类别都打印在前面,您可以执行以下操作:

if(isset($this->name[Context::getContext()->language->id]))
$id_lang=Context::getContext()->language->id;
其他的
$id_lang=(int)配置::get('PS_lang_DEFAULT');
$subcategories=$category->getSubCategories($id\u lang,true);
此外,我通过api创建了类似的东西,但这只显示了一个孩子,但我必须请求两次(我不需要更低的级别)


此外,我还通过api创建了类似的内容,但这只显示了一个孩子,但我必须请求两次(我不需要较低的级别)。

因为它与最初的问题不完全相关。你能用这个特定的问题创建一个新的问题吗?这完全解决了我的问题,但是通过添加新的代码级别来声明查看的深度。因为它与初始问题不完全相关。你能用这个特定的问题创建一个新的问题吗?这完全解决了我的问题,但是通过添加新的代码级别来声明要看多深。
from prestapyt import PrestaShopWebServiceDict
from xml.etree import ElementTree

URL = ''
API_KEY = ''

cat_list = []

def get_categories(category_id):

    prestashop = PrestaShopWebServiceDict( URL, API_KEY )

    try:
        # get first childrens
        categories = prestashop.get('categories', category_id)['category']['associations']['categories']['category']

        for category in categories:
            print "main cat: " + category['id']
            cat_list.append(category['id'])

            try:
                # get second childrens
                categories = prestashop.get('categories', category['id'])['category']['associations']['categories']['category']

                for category in categories:
                    print category['id']
                    cat_list.append(category['id'])

            except:
                print "Category " + str(category['id']) + " has not children."

    except:
        print "Category " + str(category_id) + " does not exist."


get_categories(98);