Инструкция по использованию API

API Moguta.CMS позволяет взаимодействовать с магазином разработанном на движке Moguta.CMS из сторонних приложений. Это значит что дргуие приложения, сайты, crm, и тп. могут получить доступ к содержимому  интернет-магазина и производить с ним различные операции. Таки образом сторонние приложения могут создавать и редактировать товары магазина, получать информацию о пользователях и производить другие дейтвия.

Для того чтобы начать работать с API, в панели управления магазина, вам нужно зайти в раздел Настроек, далее в подраздел API. Там вы сможете добавить приложение и сгенерировать для него токен. Токен является опозновательным знаком приложения и позволяет ему получить доступ к магазину, без него доступ к сайту через API запрещен.

Так же вам нужно самостоятельно придумать секретный ключ, он позволит убедится в том, что ответ приходящие с интернет-магазина является подлинным.

После того как вы добавили новое приложение в настройках, движок магазина готов к получению запросов из вне.
Мы подготовили php библиотеку для работы с API Moguta.CMS скачать ее можно тут. Пример использования находится в скачанном архиве в файле apiTest.php.

Внутри библиотеки находится класс, который уже имеет в себе все алгоритмы для передачи данных между вашим сайтом и магазином.

Как использовать класс mogutaApi (быстрый старт)

Создим объект класса, передав в конструктор класса необходимые параметры 'адрес магазина',  'токен', 'секретный ключ':

$api = new mogutaApi('адрес магазина',  'токен', 'секретный ключ');

Отправим на сервер интернет-магазина команду test с произвольным массивом параметров $testParam. Команда test ничего не делает кроме того, что возвращает переданные ей данный назад. 

$testParam = array('111', '222', '333');
$res = $api->run('test', $testParam, true);

Это тестовая функция, если  все сделали правильно, то в ответ получим следующую информацию:

Array (
    [status] => OK
    [response] => Array(
            [0] => 111
            [1] => 222
            [2] => 333
        )

    [error] => 0
    [sign] => 0c71ad47ab03adef0970564abc71426d
    [workTime] => 0 ms
)


Главное поле для работы с API это responce, в нем сервер будет отдавать результат выполнения запрошенной команды.
В случае возникновения ошибки в поле error будет содержаться код ошибки, говорящий о том, что пошло не так. Коды ошибок:

1 - Неверный токен
2 - Ошибка вызова функции
3 - API не настроен


Список всех доступных команд API Moguta.CMS

Тестовая команда:
test - Для проверки подключения

Команды для работы с пользователями:
exportUsers - Загружает из магазина список пользователей
importUsers - Загружает в магазин список пользователей
deleteUser - Удаляет из магазина указанных пользователей

Команды для работы с категориями:
exportCategory - Загружает из магазина список категорий
importCategory - Загружает в магазин список категорий
deleteCategory - Удаляет из магазина указанные категории

Команды для работы с заказами:
exportOrder - Загружает из магазина список заказов
importOrde r- Загружает в магазин список заказов
deleteOrder - Удаляет из магазина указанные заказы

Команды для работы с товарами:
exportProduct - Загружает из магазина список товаров
importProduct - Загружает в магазин список товаров
deleteProduct - Удаляет из магазина указанные товары

Подробное описание методов 

exportUsers

Входные параметры:

  • $param['page'] - Страница для выгрузки (Пользователи выводяться частями, максимум по 250, страница указывает на нужную часть)
  • $param['count'] - Количество пользователей выгружаемое за один раз (максимум 250)

importUsers

Входные параметры:

  • $param['users'] - структура массива для загрузки пользователей

    [users] => Array(
                        [0] => Array(
                                [id] => 1
                                [email] => mihail@moguta.ru
                                [role] => 1
                                [name] => Администратор13
                                [sname] =>
                                [address] =>
                                [phone] =>
                                [date_add] => 2017-07-12 10:05:47
                                [blocked] => 0
                                [restore] =>
                                [activity] => 1
                                [inn] =>
                                [kpp] =>
                                [nameyur] =>
                                [adress] =>
                                [bank] =>
                                [bik] =>
                                [ks] =>
                                [rs] =>
                                [birthday] =>
                                [ip] =>
                            )

                        [1] => Array(
                                [id] => 2
                                [email] => hg@ds.aq
                                [role] => 2
                                [name] =>
                                [sname] =>
                                [address] =>
                                [phone] =>
                                [date_add] => 2017-08-18 13:07:29
                                [blocked] => 0
                                [restore] =>
                                [activity] => 0
                                [inn] =>
                                [kpp] =>
                                [nameyur] =>
                                [adress] =>
                                [bank] =>
                                [bik] =>
                                [ks] =>
                                [rs] =>
                                [birthday] =>
                                [ip] =>
                            )

                    )

  • $param['enableUpdate'] - включить или выключить обновление пользователей (true/false)

deleteUser

Входные параметры:

  • $param['email'] - array('user1@mail.ru', 'user2@mail.ru', 'user3@mail.ru');

exportOrder

Входные параметры:

  • $param['page'] - страница для выгрузки (Заказы выводяться частями, максимум по 250, страница указывает на нужную часть)

  • $param['count'] - Количество заказов выгружаемое за один раз (максимум 250)

importOrder

Входные параметры:

  • $param['orders'] - структура массива для загрузки заказов

    [orders] => Array (
                        [0] => Array(
                                [id] => 1
                                [updata_date] => 2017-08-18 13:07:29
                                [add_date] => 2017-08-18 13:07:29
                                [close_date] => 2017-08-18 13:07:29
                                [user_email] => hg@ds.aq
                                [phone] =>
                                [address] =>
                                [summ] => 17519.00
                                [order_content] => a:1:{i:0;a:13:{s:2:\"id\";s:1:\"1\";s:4:\"name\";s:320:\"%D0%A0%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9%20%D1%8D%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D1%88%D0%BA%D0%B0%D1%84--ID15000%20-Var8%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2017%20519%20%D1%80%D1%83%D0%B1.\";s:3:\"url\";s:73:\"obezjelezivanie-reagentnoe---id178/raspredelitelnyy-elektroshkaf--id15000\";s:4:\"code\";s:11:\"TR-15000-V8\";s:5:\"price\";s:5:\"17519\";s:5:\"count\";s:1:\"1\";s:8:\"property\";s:0:\"\";s:6:\"coupon\";s:1:\"0\";s:8:\"discount\";d:0;s:8:\"fulPrice\";s:5:\"17519\";s:6:\"weight\";s:7:\"422.019\";s:12:\"currency_iso\";s:3:\"RUR\";s:8:\"discSyst\";s:13:\"false%2Ffalse\";}}
                                [delivery_id] => 1
                                [delivery_cost] => 0
                                [delivery_options] =>
                                [payment_id] => 1
                                [paided] => 0
                                [status_id] => 0
                                [user_comment] =>
                                [comment] =>
                                [confirmation] => $1$psViR8dP$UcMlX.GrY7TzjAHRPdrIl.
                                [yur_info] =>
                                [name_buyer] =>
                                [date_delivery] =>
                                [ip] => ::1
                                [number] => M-0105341895042
                                [hash] =>
                                [1c_last_export] => 2017-08-18 13:07:29
                                [orders_set] =>
                            )

                    )

deleteOrder

Входные параметры:

  • $param['orders'] - array('1', '2', '3');

exportCategory

Входные параметры:

  • $param['page'] - страница для выгрузки (Категории выводяться частями, максимум по 250, страница указывает на нужную часть)

  • $param['count'] - Количество категорий выгружаемое за один раз (максимум 250)

importCategory

Входные параметры:

  • $param['categories'] - структура массива для загрузки категорий

    [categories] => Array(
                        [0] => Array (
                                [id] => 1
                                [title] => Обезжелезивание реагентное---ID178ё
                                [url] => obezjelezivanie-reagentnoe---id178
                                [parent] => 0
                                [parent_url] =>
                                [sort] => 1
                                [html_content] =>
                                [meta_title] =>
                                [meta_keywords] =>
                                [meta_desc] =>
                                [invisible] => 0
                                [1c_id] =>
                                [image_url] =>
                                [rate] => 0
                                [export] => 1
                                [seo_content] =>
                                [activity] => 1
                            )

                    )

deleteCategory

Входные параметры:

  • $param['category'] - array('1', '2', '3');

exportProduct

Входные параметры:

  • $param['page'] - страница для выгрузки (Категории выводяться частями, максимум по 100, страница указывает на нужную часть)

  • $param['count'] - Количество категорий выгружаемое за один раз (максимум 100)

  • $param['variants'] - включить или выключить загрузку вариантов (true/false)

  • $param['property'] - включить или выключить загрузку характеристик (true/false)

importProduct

Входные параметры:

  • $param['products'] - структура массива для загрузки категорий
    [products] = array(
            [cat_id] => 1
            [title] => Распределительный электрошкаф--ID15000
            [description] => '<p>Периодичность обс>ила.</p>
            [price] => 87894
            [url] => raspredelitelnyy-elektroshkaf--id15000
            [image_url] => "no-img.jpg"
            [code] => TR-15000-V1
            [count] => 35
            [activity] => 1
            [meta_title] => Распределительный электрошкаф
            [meta_keywords] => Распределительный, электрошкаф
            [meta_desc] => Распределительный электрошкаф
            [old_price] => 38517
            [weight] => 422.019
            [link_electro] => 
            [currency_iso] => RUR
            [price_course] => 87894
            [image_title] => 
            [image_alt] => 
            [yml_sales_notes] => 
            [variants] => Array(
                Array(
                    [title_variant] => -Var1
                    [image] => 
                    [price] => 87894
                    [old_price] => 38517
                    [count] => 43
                    [code] => TR-15000-V1
                    [activity] => 1
                    [weight] => 422.019
                    [currency_iso] => RUR
                    [price_course] => 87894
                )
                Array(
                    [title_variant] => -Var2
                    [image] => 
                    [price] => 82798
                    [old_price] => 38517
                    [count] => 48
                    [code] => TR-15000-V2
                    [activity] => 1
                    [weight] => 221.84
                    [currency_iso] => RUR
                    [price_course] => 82798
                )
            )
            [property] => Array(
                array(
                    [name] => Строковая характеристик
                    [type] => string
                    [value] => 'Значение
                )
                array(
                    [name] => Текстовая характеристика
                    [type] => textarea
                    [value] => Тут может быть много текста
                )
            )
        )

deleteProduct

Входные параметры:

  • $param['products'] - array('1', '2', '3');