API REST Magento 2 возвращает только категорию по умолчанию и ее дочерние элементы


Я использую "отдых/V1/категории/" (API Rest для Magento 2). В документации(devdocs.magento.com/swagger /#) в нем написано "Получить список категорий", но он каждый раз возвращает только категорию по умолчанию (и все ее дочерние элементы). Как я могу получить список всех категорий (тех, которые являются родительскими, включая по умолчанию) enter image description here

Вот как я это делаю,

public function getCatagory($data){
        $response = array();
        if(isset($data['categoryId'])){
            $url = $this->baseUrl."rest/V1/categories/".$data['categoryId'];
            $response = $this->curlGet($url,$this->token);
        }else{
            $url = $this->baseUrl."rest/V1/categories/";
            $response = $this->curlGet($url,$this->token);
        }
        return $response;
    }

Я выполняю здесь другую часть "отдых/V1/категории/", и я получаю,

{
  "id": 2,
  "parent_id": 1,
  "name": "Default Category",
  "is_active": true,
  "position": 1,
  "level": 1,
  "product_count": 0,
  "children_data": [

  ]
}

Это только давая мне значение по умолчанию, почему отсутствуют другие категории, как показано на прикрепленном изображении панели администратора. Пожалуйста, помогите!! Спасибо, я заранее (я не хочу, чтобы все мои категории по умолчанию были детьми, я знаю, что это выход, но я уже сделал каждого из них родителем, как они показаны на прикрепленных изображениях, теперь я просто хочу их забрать).

Author: Abdul Moiz, 2017-06-24

4 answers

Ну, вы можете легко получить все ваши категории, передав "все" ключевое слово в ваших категориях, получите URL API

Он предоставит вам все категории, включая все ваши корневые категории.

Попробуйте выполнить следующие шаги:

Примечание: Убедитесь, что вы передали все ключевые слова в Url, и это будет работать

 10
Author: Manthan Dave, 2017-06-26 05:05:20

Это поможет вам получить название категории. Это работает для меня Data

public function getTree($node, $depth = null, $currentLevel = 0)
{
    /** @var \Magento\Catalog\Api\Data\CategoryTreeInterface[] $children */
    // $children = $this->getChildren($node, $depth, $currentLevel);
    // /** @var \Magento\Catalog\Api\Data\CategoryTreeInterface $tree */
    // $tree = $this->treeFactory->create();
    // $tree->setId($node->getId())
    //     ->setParentId($node->getParentId())
    //     ->setName($node->getName())
    //     ->setPosition($node->getPosition())
    //     ->setLevel($node->getLevel())
    //     ->setIsActive($node->getIsActive())
    //     ->setProductCount($node->getProductCount())
    //     ->setChildrenData($children);
    // return $tree;


   $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
   $categoryFactory = $objectManager->get('\Magento\Catalog\Model\CategoryFactory');
   $categoryId = $node->getId();
   $nodeS = $categoryFactory->create()->load($categoryId);
   /** @var \Magento\Catalog\Api\Data\CategoryTreeInterface[] $children */
   $children = $this->getChildren($node, $depth, $currentLevel);
   /** @var \Magento\Catalog\Api\Data\CategoryTreeInterface $tree */
   $tree = $this->treeFactory->create();
   $tree->setId($nodeS->getId())
       ->setParentId($nodeS->getParentId())
       ->setName($nodeS->getName())
       ->setPosition($nodeS->getPosition())
       ->setLevel($nodeS->getLevel())
       ->setIsActive($nodeS->getIsActive())
       ->setProductCount($nodeS->getProductCount())
       ->setChildrenData($children);
   return $tree;
}
 0
Author: Mirza Bilal Ali Baig, 2020-02-22 04:21:45

Для версии Magento 2.3.3 в ответе не указано имя.

{
    "id": 1,
    "parent_id": 0,
    "name": null,
    "is_active": null,
    "position": 0,
    "level": 0,
    "product_count": null,
    "children_data": [
        {
            "id": 2,
            "parent_id": 1,
            "name": null,
            "is_active": null,
            "position": 1,
            "level": 1,
            "product_count": null,
            "children_data": []
        }
    ]
}
 0
Author: Sanjay, 2020-09-15 10:04:12

Еще один способ получить высшие категории - это

/rest/default/V1/categories?rootCategoryId=2&depth=1

Вы можете добавить глубину в соответствии с вашими требованиями.

 0
Author: Anees, 2020-12-01 13:15:09