1. Загрузка брендов из локальной базы
call pBrands_by_code('Артикульный код товара')
Запрос вернет поля:
id - ID артикула товара
name - имя бренда
id_rbBrands - ID бренда
goods_name - имя товара
2. В случае, если по поисковому артикулу список брендов пустой, то генерируем ключ, для формирования запроса списка брендов по вебсервисам поставщиков, а также если необходимо обновить список брендов по артикулу:
Шаг1 -> Формируем уникальный ключ
call pSearch_ArtCode('brandNew',JSON_OBJECT(
'code','Артикульный код товара',
'id_rbStock','текущий ID офиса/склада',
'id_rbCounterparts','Глобальный код клиента. Если пользователь не авторизован, тогда передаем 0'
))
Запрос вернет поле:
IDSearchCode - уникальный ключ для следующего шага
Шаг2 -> выполняем GET-запрос, ниже пример на PHP
$target_url = 'https://'.$GLOBAL_HOST.'/services/in/suppliers/search.php';
$target_url .="?BrandsRequest=1&IDProjects={$GLOBAL_PROJECT_ID}&IDSearchCode={$IDSearchCode}";
// ГДЕ,
// $GLOBAL_HOST - адрес вашего сервера (например 2.tezarius.ru, 3.tezarius.ru и т.д)
// $GLOBAL_PROJECT_ID - ID проекта базы (если ваш база TZRS_ID_YYYY, ID между двумя символами _)
// $IDSearchCode - уникальный ключ, сформированный на предыщуем шаге
$browser = curl_init($target_url);
curl_setopt($browser, CURLOPT_HEADER, 0);
curl_setopt($browser, CURLOPT_RETURNTRANSFER,1);
curl_setopt($browser, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($browser, CURLOPT_TIMEOUT, 20);
curl_setopt($browser, CURLOPT_DNS_CACHE_TIMEOUT, 0);
curl_setopt($browser, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_exec($browser);
curl_close($browser);
Ожидаем завершения скрипта и затем формируем запрос из первого шага "Загрузка брендов из локальной базы"
Шаг1 -> Формируем уникальный ключ для подготовки поиска по паре артикул-бренд
call pSearch_ArtCode('new',JSON_OBJECT(
'isWebsiteQuery',1,
'ip',':$ip',
'code',':code',
'brand',':brand',
'source','website',
'id_rbStock',:stockId,
'id_rbCounterparts',:CouterpartsID
))
Запрос вернет поля:
IDSearchCode - уникальный ключ для использования в следующем шаге
Шаг2 -> Выполняем GET-запрос по полученному ключу (ниже пример на Php)
$target_url = 'https://'.$GLOBAL_HOST.'/services/in/suppliers/search.php';
$target_url .="?IDProjects={$GLOBAL_PROJECT_ID}&IDSearchCode={$LogSearchID}";
// ГДЕ,
// $GLOBAL_HOST - адрес вашего сервера (например 2.tezarius.ru, 3.tezarius.ru и т.д)
// $GLOBAL_PROJECT_ID - ID проекта базы (если ваш база TZRS_ID_YYYY, ID между двумя символами _)
// $LogSearchID - уникальный ключ, сформированный на предыщуем шаге
$browser = curl_init($target_url);
curl_setopt($browser, CURLOPT_HEADER, 0);
curl_setopt($browser, CURLOPT_RETURNTRANSFER,1);
curl_setopt($browser, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($browser, CURLOPT_TIMEOUT, 20);
curl_setopt($browser, CURLOPT_DNS_CACHE_TIMEOUT, 0);
curl_setopt($browser, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_exec($browser);
curl_close($browser);
Ожидаем завершения скрипта и затем уже вызываем pPrice (API ниже) для загрузки всех результатов (включая прайсы по вебсервисам)
call pPrice(JSON_OBJECT(
'isWebSearch',1,
'StockDestinationID','ID офиса клиента, магазина через который делается поиск',
'PriceLevelID','ID уровеня цены клиента, если не авторизован клиент, то передаем 0, в этом случае уровень цены будет взять из константы "Уровень цены на сайте без регистрации"',
'id_rbCounterparts','глобальный ID клиента, если не авторизован, то передаем 0',
'StockTypeFilter',:StockTypeFilter,
'SearchFilter',:SearchFilter,
'SearchFilterValue',:SearchValue,
'PropertiesFilter',:ListPrpID_Value,
'BrandsFilter',:ListBrandID_Value,
'FilterSupplierByCode',:FilterSupplierByCode,
'FilterSupplierByBrand',:FilterSupplierByBrand,
'SortData',:SortData,
'limit',1000,
'limitPos',1
),'ru')
Описание параметров с вариантами:
StockTypeFilter
SearchFilter
SearchValue - значение поиска. Для ByCodeBrand передаем $LogSearchID
ListPrpID_Value - фильтр прайса по свойствам товаров, по умолчанию передаем пусто, иначе список свойств и их значений в формате JSON, пример [{"id":"1","value":"Белый"},{"id":"1","value":"Синий"},{"id":"2","value":"80 см"}]
ListBrandID_Value - фильтр прайса по брендам товаров, по умолчанию передаем пусто, иначе список брендов в формате JSON, пример [{"value":"Kayaba"},{"value":"Toyota"},"value":"Mazda"}]
SortData - варианты сортировки
Дополнительно можно передать следующие параметры:
'DestinityFilter',10 - где 10 максимальный срок доставки в днях
'RatingFilter',1 - показать с вероятностью поставки от 20%. Можно передать 1,2,3,4,5
'StocksFiltered','ID магазина'- остатки по конкретному магазину
'CostStartFilter',100 - интервал показа цен для клиента, например от 100 руб
'CostEndFilter',500 - интервал показа цен для клиента, например до 500р
'FilterSupplierByCode' и 'FilterSupplierByBrand' - если передать не пустыми, то выполнит фильтр только по прайсам поставщиков с таким артикулом и брендом
Описание полей запроса:
GoodsID - код товара, если товарное наличие, иначе для внешних прайсов будет пусто
id_rbStockStoragePlace - код места хранения на складе для товарного наличия.
tzp - если товар из внешних прайсов поставщиков, то нужно будет это поле далее для добавления в корзину
properties - свойства товара для товарного наличия
Остальные поля расшифровываются по их названию
call `pRB_get`('rbGroups',JSON_OBJECT(
'filter','ForObject',
'value','rbGoodsWebCategory'),
'ru',0,1,0,"")
Вернет:
id - код категории
id_parent - код родительской категории
name - наименование категории
icon_url - адрес иконки для категории
# Получить базовый список иконок для настройки
call pANY_www("CategoryIcons",
JSON_OBJECT(
"do","list"
),"ru")
# Добавить иконку для категории
call pANY_www("CategoryIcons",
JSON_OBJECT(
"do","set",
"id_category",1,
"icon_url",'https://img.ru/112.png'
),"ru")
# Удалить иконку для категории
call pANY_www("CategoryIcons",
JSON_OBJECT(
"do","del",
"id_category",1
),"ru")
Вернет все доступные свойства и их значения по выбранные категории, включая вложенные категории. А также при поиске по наименованию.
call pANY_www("GoodsPropertiesList",
JSON_OBJECT(
"by",'передаем category, для получения списка по выбранной категории или MultiSearch, при поиске по наименованию',
"id",'ID категории, в случае если первым параметром передаем category, иначе поисковое наименование'
),"ru")
Для получения списка брендов для дальнейшей фильтрации результатов прайса, сразу после выполненного запроса к прайсу, необходимо выполнить запрос:
call pANY_www('GetPriceBrandsFilterList',nil,'ru')
Запрос вернет поля:
id - ID бренда
name - имя бренда
call pStock_info(
:pmId_stock,
:pmId_shop,
:pmDlvrMin,
:pmDlvrMax,
:pmLanguage)
pmId_stock - код склада
pmId_shop - текущий выбранный офис на сайте
pmDlvrMin и pmDlvrMax - мин. и макс. сроки доставки полученных через прайс
pmLanguage - регион, передаем "ru"
Запрос вернет текстовое поле inf, заменить в нем символ переноса строки на html-тэг
История поиска по артикулу и бренду для клиента.
Будут получены последние 25 записей, которые искал клиент
call pSearch_ArtCode("MyHistory",JSON_OBJECT(
"isWebsiteQuery",1,
"id_rbCounterparts",'глобальный код клиента CouterpartsID'
))