Как программно вставлять категории в Magento?


Это сценарий:

  1. Я делаю вызов SOAP из Magento на CMS
  2. CMS создаст и вернет в Magento закодированный в json объект с новыми именами категорий и некоторыми свойствами категории (Заголовок, URL, отношения родитель/потомок, вот и все).

  3. Мне нужно выполнить итерацию по этому объекту, взять имена категорий и вставить их в базу данных Magento, чтобы Magento мог управлять ими категории. Мне также нужно будет добавить любые свойства категорий в каждую категорию, которых нет в объекте, и мне нужно правильно вставить эти категории, чтобы они отображались в разделе администратора в разделе Управление категориями.

Мой вопрос: Мне просто нужно знать, как работать с API Magento, чтобы правильно вставлять категории в базу данных. Кто-нибудь может указать мне правильное направление?

Примечание: Я использую Magento CE 1.6.1.0. С помощью плагина в моем случае это не сработает, потому что мне нужно, чтобы это происходило плавно при входе пользователя в административную область. Если кто-то знает о плагине с открытым исходным кодом и в нем есть функции, которые я ищу, пожалуйста, поделитесь именем, чтобы я мог изучить этот код.

Спасибо за любую помощь!

Author: ryanF, 2013-09-23

1 answers

Magento также имеет API, доступный через SOAP и XML-RPC, и включает в себя возможность создавать категории.

Если вы не заинтересованы в изучении того, как выполнить вызов SOAP в Magento, вы можете взглянуть на реализацию метода создания категорий в

#File: app/code/core/Mage/Catalog/Model/Category/Api.php
public function create($parentId, $categoryData, $store = null)
{
    //...PHP code to create a category is here
}

И вы могли бы вызвать метод создания категории вручную с помощью чего-то вроде этого

Mage::getModel('catalog/category_api')->create($parentId, $categoryData);

Я никогда не видел полного объяснения структуры необработанной базы данных, лежащей в основе категории, что еще больше сбивает с толку, учитывая, что это и EAV, и представление древовидной структуры в таблице SQL. Я бы не стал пытаться вставить категорию с помощью необработанных вызовов SQL.

 1
Author: Alan Storm, 2013-09-24 02:45:08