API: Каталог
Метод catalog позволяет получить товары.
Параметры запроса (передаются в массиве):
Внимание! Для методов where, where_in, where_not_in необходимо учитывать наличие синонимов, поэтому к полю, которое участвует в условии для выборки, добавляется название таблицы (например catalog.id, если необходимо в условии использовать ID товара)
Внимание! Для использования параметров join, where, order и filters, а также для корректной обработки ответа, необходимо знать структуру таблицы, соответствующей данному методу. Для просмотра информации перейдите по ссылке.
Пример простейшего вызова:
$this->smartriver->catalog();
Пример вызова с параметрами:
$this->smartriver->catalog(['join' => ['part' => 1], 'where' => ['catalog.active' => 1], 'limit' => 10, 'extra' => ['part', 'brand', 'category', 'tags', 'varieties', 'options', 'filters', 'params']]);
Пример ответа:
Array
(
[status] => ok
[message] => success
[response] => Array
(
[0] => Array
(
[id] => 64
[id_tpl] => 20
[vendor_code] => TEST_VC
[name] => Тестовый товар
[desc_short] =>
[desc_full] =>
[price] => 2730.00
[price_new] => 2550.00
[best_price] => 2550.00
[amount] => 0
[link] => testovy_tovar
[image] => /images/gallery/wR6qQFpA5StQF4B7mXfW.jpg
[seo_title] =>
[seo_keywords] =>
[seo_description] =>
[sort] => 0
[active] => 1
[active_part] => 1[photo] => Array
(
[0] => Array
(
[url] => /images/gallery/VuLC8Fr653kxwLMDeOeW.jpg
[caption] =>
)
[1] => Array
(
[url] => /images/gallery/C2SC3VoiQNCPvQzyJbsW.jpg
[caption] =>
)
[2] => Array
(
[url] => /images/gallery/f6a5ef7567370db556922aff5e2256d5.jpg
[caption] =>
)
)
[files] => Array
(
[0] => Array
(
[name] => Тестовый файл
[url] => /files/Rm3Mlw8h8UpHFCK5G2ga.txt
[active] => 1
)
)
[part] => Array
(
[0] => Array
(
[id] => 1
[id_parent] => 0
[id_tpl] => 21
[vendor_code] =>
[name] => Тестовый раздел
[announce] =>
[description] =>
[link] => test
[image] => /images/gallery/RufRP18W9KktopaZvxbP.jpg
[main] => 0
[sort] => 5
[active] => 1
)
)
[brand] => Array
(
[id] => 3
[id_tpl] => 5
[name] => Тестовый бренд
[description] =>
[link] => testoviy_brend
[image] => /images/gallery/1YQwLW6P7eiPsRt2qIQH.jpg
[sort] => 1
[active] => 1
)
[category] => Array
(
[0] => Array
(
[id] => 3
[name] => Новинка
[description] =>
[image] => /images/catalog/ursBnkJox3VJEl73WEJZ.jpg
[sort] => 3
[active] => 0
)
[1] => Array
(
[id] => 1
[name] => Акция
[description] => Описание акции
[image] =>
[sort] => 4
[active] => 1
)
)
[tags] => Array
(
[0] => Array
(
[id] => 7
[name] => Распродажа
[sort] => 0
[active] => 1
)
[1] => Array
(
[id] => 5
[name] => Тест
[sort] => 0
[active] => 1
)
[2] => Array
(
[id] => 6
[name] => Товар
[sort] => 0
[active] => 1
)
)
[varieties] => Array
(
[0] => Array
(
[id] => 9
[name] => Тестовая модификация
[image] => /images/gallery/6JIFaDoFjzi8eThzgW0y.jpg
[value] =>
[unit] =>
[price] => 5820.00
[price_new] => 5630.00
[sort] => 0
[active] => 1
)
)
[options] => Array
(
[0] => Array
(
[id] => 8
[name] => Тестовая опция
[image] => /images/gallery/0ba943fd0335f4d7307d1601d51164e5.jpg
[price] => 250.00
[sort] => 0
[active] => 1
)
)
[filters] => Array
(
[0] => Array
(
[id] => 9
[name] => Тестовый фильтр
[type] => select
[value] => variant_2
[value_p] => Вариант 2
[section] => all[sort] => 0
[active] => 1
[all_parts] => 1)
)
[params] => Array
(
[0] => Array
(
[id] => test_param
[name] => Тестовый параметр
[type] => text
[value] => Тестовое значение
[section] => all
[sort] => 0
[active] => 1
[all_parts] => 1)
)
)
)
[settings] => Array
(
[currency] => rouble
[currency_position] => right
[default_photo] => /images/gallery/2it42IRI959rfdtSb2zG.svg
[files_doc] => /images/gallery/da3d6238c8bc19b6f1933df0f1673d8a.svg
[files_docx] =>
[files_gif] => /images/gallery/a41e58e2661e886cd66119994f1b13fa.svg
[files_jpg] => /images/gallery/5578a31e8e07483359b099ea50ca5763.svg
[files_ods] =>
[files_odt] =>
[files_pdf] => /images/gallery/931f99566b13532b3c673c63b61e56b7.svg
[files_png] =>
[files_svg] => /images/gallery/8d4bacde0a5e273c5afad78520d9fe32.svg
[files_txt] => /images/gallery/fbc9411aff8a76adadc3c8845934db3b.svg
[files_xls] => /images/gallery/ce3b612001e93afe03864e49b85f83f7.svg
[files_xlsx] =>
[goods_order] => name asc
[name_format] => name
[unique_options] => 1
[watermark] => /images/watermark/dN6VmG1CwPNIVPm4TUuc.png
[price_format_decimals] => 2
[price_format_dec_point] => .
[price_format_delimiter] =>
)
)
Помимо основных данных, выгружаются фото (photo) и файлы (files) для каждого товара, а также, список настроек модуля "Каталог" (settings) в общем массиве данных (даже если выборка содержит 0 совпадений).
Настройки модуля "Каталог" содержат следующие параметры:
Метод catalog_part позволяет получить разделы каталога.
Параметры запроса (передаются в массиве):
Внимание! Для использования параметров where и order, а также для корректной обработки ответа, необходимо знать структуру таблицы, соответствующей данному методу. Для просмотра информации перейдите по ссылке.
Пример простейшего вызова:
$this->smartriver->catalog_part();
Пример вызова с параметрами:
$this->smartriver->catalog_part(['where' => ['active' => 1], 'limit' => 10, 'extra' => ['filters', 'params']])
Пример ответа:
Array
(
[status] => ok
[message] => success
[response] => Array
(
[0] => Array
(
[id] => 1
[id_parent] => 0
[id_tpl] => -1
[vendor_code] =>
[name] => test
[announce] =>
[description] =>
[link] => test
[image] =>
[seo_title] =>
[seo_keywords] =>
[seo_description] =>
[sort] => 1
[active] => 1
[photo] => Array
(
[0] => Array
(
[url] => /images/gallery/wR6qQFpA5StQF4B7mXfW.jpg
[caption] =>
)
[1] => Array
(
[url] => /images/catalog/GP4krXf7yALZ9D6ur5QQ.jpg
[caption] =>
)
)
[params] => Array
(
[0] => Array
(
[id] => test1
[id_part] => -1
[name] => Тест 1
[type] => text
[value] => test value
[section] => all
[sort] => 1
[active] => 1
)
[1] => Array
(
[id] => test2
[id_part] => -1
[name] => Тест 2
[type] => photo
[value] => /images/gallery/wR6qQFpA5StQF4B7mXfW.jpg
[section] => part
[sort] => 2
[active] => 1
)
[2] => Array
(
[id] => spec_price
[id_part] => 1
[name] => Цена со скидкой
[type] => price
[value] => 2400
[section] => all
[sort] => 3
[active] => 1
)
)
)
)
)
Метод catalog_count позволяет подсчитать количество товаров по заданной выборке для построения пагинации.
Параметры запроса (передаются в массиве):
Внимание! Для использования параметра where необходимо знать структуру таблицы, соответствующей данному методу. Для просмотра информации перейдите по ссылке.
Пример простейшего вызова:
$this->smartriver->catalog_count();
Пример вызова с параметрами:
$this->smartriver->catalog_count(['where' => ['active' => 1]]);
Пример ответа:
Array
(
[status] => ok
[message] => success
[response] => 7
)
Метод catalog_part_count позволяет подсчитать количество разделов каталога по заданной выборке для построения пагинации.
Параметры запроса (передаются в массиве):
Внимание! Для использования параметра where необходимо знать структуру таблицы, соответствующей данному методу. Для просмотра информации перейдите по ссылке.
Пример простейшего вызова:
$this->smartriver->catalog_part_count();
Пример вызова с параметрами:
$this->smartriver->catalog_part_count(['where' => ['active' => 1]]));
Пример ответа:
Array
(
[status] => ok
[message] => success
[response] => 7
)
Метод catalog_extra позволяет получить данные по дополнительным модулям каталога, таким как бренды, категории и теги.
Параметры запроса:
Внимание! Для использования параметров where и order, а также для корректной обработки ответа, необходимо знать структуру таблиц, соответствующих данному методу. Для просмотра информации перейдите по ссылке.
Пример простейшего вызова:
$this->smartriver->catalog_extra('brand');
Пример вызова с параметрами:
$this->smartriver->catalog_extra('brand', ['where' => ['id' => 3]])
Пример ответа:
Array
(
[status] => ok
[message] => success
[response] => Array
(
[0] => Array
(
[id] => 3
[id_tpl] => 5
[name] => Тестовый бренд
[description] =>
[link] => testoviy_brend
[image] => /images/gallery/1YQwLW6P7eiPsRt2qIQH.jpg
[sort] => 1
[active] => 1
[photo] => Array
(
[0] => Array
(
[url] => /images/gallery/qKxCalppXgjcxMQNqCqH.jpg
[caption] =>
)
[1] => Array
(
[url] => /images/gallery/dlDQ9oOh4oLr3dnzSkOn.jpg
[caption] =>
)
)
)
)
)
Помимо основных данных, для брендов и категорий выгружаются фото (photo).
Метод catalog_extra_count позволяет подсчитать количество брендов, категорий, тегов или фильтров.
Параметры запроса:
Внимание! Для использования параметра where необходимо знать структуру таблицы, соответствующей данному методу. Для просмотра информации перейдите по ссылке.
Пример простейшего вызова:
$this->smartriver->catalog_extra_count('brand');
Пример вызова с параметрами:
$this->smartriver->catalog_extra_count('brand', ['active' => 1]);
Пример ответа:
Array
(
[status] => ok
[message] => success
[response] => 7
)
Метод catalog_filters позволяет получить данные по фильтрам текущего раздела.
В отличие от остальных методов, данный метод отдает только фильтры с флагом active=1, т.к. создан исключительно для ускорения вывода, а не для использования в других модулях. Если необходимо получить все данные или дополнить выборку дополнительными условиями, воспользуйтесь следующим руководством (ссылка).
Параметры запроса:
Внимание! Для использования параметра order, а также для корректной обработки ответа, необходимо знать структуру таблицы, соответствующей данному методу. Для просмотра информации перейдите по ссылке.
Пример простейшего вызова:
$this->smartriver->catalog_filters(1);
Пример вызова с параметрами:
$this->smartriver->catalog_filters(1, 'sort asc, name asc');
Пример ответа:
Array
(
[status] => ok
[message] => success
[response] => Array
(
[0] => Array
(
[id] => 1
[name] => Тип
[type] => select
[sort] => 0
[values] => Array
(
[0] => Array
(
[id] => ekonom
[name] => Эконом
[sort] => 1
)
[1] => Array
(
[id] => biznes
[name] => Бизнес
[sort] => 2
)
[2] => Array
(
[id] => premium
[name] => Премиум
[sort] => 3
)
)
)
)
)
Метод catalog_search позволяет вывести результаты поиска по заданным параметрам.
Параметры запроса:
Пример простейшего вызова:
$this->smartriver->catalog_search();
Пример вызова с параметрами:
$this->smartriver->catalog_search(['search' => 'test', 'extra' => ['category']]);
Пример ответа:
Array
(
[status] => ok
[message] => search completed
[response] => Array
(
[0] => Array
(
[id] => 58
[name] => test
[price] => 0.00
[price_new] => 0.00
[desc_short] =>
[link] => test
[image] =>
[best_price] => 0.00
[active_part] => 1[category] => Array
(
[0] => Array
(
[id] => 2
[name] => Скидка
[description] => Спешите приобрести товар по 50% скидке!
[image] =>
[sort] => 1
[active] => 1
)
[1] => Array
(
[id] => 1
[name] => Акция
[description] => Описание акции
[image] =>
[sort] => 4
[active] => 1
)
)
)
)
[count] => 8
)
Помимо результатов поиска, также выгружается количество совпадений (count) для построения пагинации в случае, если был передан limit (иначе count будет равен 0).
Метод catalog_item_add позволяет добавить товар.
Параметры запроса (передаются в массиве):
В качестве параметра может выступать любое значение из таблицы catalog кроме следующих полей: id, best_price, active_part и filter_N_exist.
В качестве обязательного параметра при добавлении передается:
Дополнительно можно передать параметр:
Пример простейшего вызова:
$this->smartriver->catalog_item_add(['part' => 1]);
Пример вызова с параметрами:
$this->smartriver->catalog_item_add(['name' => 'Тестовый товар', 'id_source' => 'source_1', 'id_tpl' => 1, 'price' => 590, 'amount' => 15, 'part' => 1]);
Пример вызова при синхронизации:
$this->smartriver->catalog_item_add(['id_source' => 'source_1', 'name' => 'Тестовый товар #2', 'price' => 990, 'amount' => 10, 'part' => 2, 'sync' => 'id_source']);
Пример ответа:
Array
(
[status] => ok
[message] => item created
[id] => 1
)
Метод catalog_item_update позволяет обновить товар по ID в системе SE4.
Параметры запроса:
Пример простейшего вызова:
$this->smartriver->catalog_item_update(1, [], 1);
Пример вызова с параметрами:
$this->smartriver->catalog_item_update(1, ['price' => 320, 'amount' => 20], [1, 7]);
Пример ответа:
Array
(
[status] => ok
[message] => item updated
)
Метод catalog_part_add позволяет добавить раздел.
Параметры запроса (передаются в массиве):
В качестве параметра может выступать любое значение из таблицы catalog_part кроме поля main. В качестве дополнительного параметра можно передать:
Пример простейшего вызова:
$this->smartriver->catalog_part_add();
Пример вызова с параметрами:
$this->smartriver->catalog_part_add(['name' => 'Тестовый раздел', 'id_source' => 'source_1', 'id_tpl' => 1]);
Пример вызова при синхронизации:
$this->smartriver->catalog_part_add(['id_source' => 'source_1', 'name' => 'Тестовый раздел #2', 'sync' => 'id_source']);
Пример ответа:
Array
(
[status] => ok
[message] => part created
[id] => 1
)
Метод catalog_part_update позволяет обновить раздел по ID в системе SE4.
Параметры запроса:
Пример простейшего вызова:
$this->smartriver->catalog_part_update(1, []);
Пример вызова с параметрами:
$this->smartriver->catalog_part_update(1, ['name' => 'Тестовый раздел #2']);
Пример ответа:
Array
(
[status] => ok
[message] => part updated
)