Импорт каталога B2B по api

Импорт каталога B2B по api

webictus
10 установок
Бесплатно

Импорт каталога B2B — плагин для Shop-Script, который подключает ваш магазин к Partner API поставщика на Webasyst (плагин B2B / оптовые продажи ). Вы получаете категории, товары, цены и остатки напрямую в каталог Shop-Script — без ручной выгрузки Excel и без «своего» парсера под каждого поставщика.

Плагин ходит на API вида https://сайт-поставщика/b2b/api/v1 , сопоставляет категории, создаёт и обновляет товары, синхронизирует цены и остатки. Запуск — из настроек плагина или по cron / CLI. Журнал и «последний запуск» пишутся в файлы wa-log (без отдельной MySQL-таблицы журнала).

Важно про кабинет поставщика. Чтобы импорт работал, поставщик должен выдать вам доступ в своём плагине B2B: раздел /my/b2b/api/ — домен вашего магазина, API-токен и выбранные категории экспорта. Без токена и совпадающего домена API отвечает отказом в авторизации. Сам Partner API и кабинет настраиваются у поставщика; этот плагин — сторона получателя каталога.

Что даёт магазину-получателю :

Подключение к Partner API поставщика по URL, токену и домену клиента.

Ручное и автоматическое сопоставление категорий API ↔ категории вашего магазина (поиск в выпадающем списке).

Импорт / обновление товаров и цен, отдельная синхронизация остатков.

Полный цикл «категории → товары → остатки» одной кнопкой или одной CLI-командой.

Cron-готовые команды: товары/цены и остатки с разной периодичностью.

Журнал синхронизаций и таблица последних запусков в файлах wa-log/shop/plugins/ .

Что нужно от поставщика :

Установленный и настроенный плагин B2B / оптовые продажи .

Ваш аккаунт одобрен как оптовый клиент.

В /my/b2b/api/ : токен, ваш домен, категории для экспорта.

Рабочий URL API: https://домен-поставщика/b2b/api/v1 .

Где настраивать :

Плагины → Импорт каталога B2B — вкладки «Подключение», «Категории», «Синхронизация», «Cron / CLI», «Журнал».

Как это работает «простыми словами»

Поставщик выдаёт вам URL API, токен и разрешает домен вашего сайта в кабинете B2B API.

В плагине «Импорт каталога B2B» вы вставляете эти данные и сохраняете настройки.

На вкладке «Категории» загружаете дерево категорий API и сопоставляете их с категориями своего магазина.

На вкладке «Синхронизация» проверяете подключение и запускаете импорт товаров / остатков (или полный импорт).

Для регулярного обновления вешаете на cron команды товаров и остатков.

Основные сценарии использования

Подключить поставщика с нуля :

Получите у поставщика URL /b2b/api/v1 , токен и подтвердите, что ваш домен прописан в токене.

Откройте Плагины → Импорт каталога B2B → Подключение .

Заполните URL API, токен, домен клиента; выберите, какую цену писать (оптовая или розничная).

Сохраните настройки.

Перейдите на «Синхронизация» → «Проверить подключение» — должен вернуться успех и данные группы.

Настроить категории :

Вкладка «Категории» → «Загрузить категории API».

В каждой строке выберите локальную категорию магазина (есть поиск по названию).

Или нажмите «Автопо имени» — заполнятся точные совпадения названий.

«Сохранить сопоставление».

Рекомендуется держать включённым «Новый товар только при сопоставленной категории», чтобы «чужие» ветки API не плодили мусор в каталоге.

Запустить импорт :

«Товары / цены» — создать недостающие позиции и обновить существующие (название, SKU, цены, привязка к категориям по карте).

«Остатки» — только остатки и доступность SKU (быстрее, удобно для частого cron).

«Категории (создать недостающие)» — если в настройках разрешено создавать категории без ручного сопоставления.

«Полный импорт» — категории → товары/цены → остатки.

Поставить на cron :

Товары/цены реже (например, раз в 15 минут).

Остатки чаще (например, раз в 5 минут).

Команды и примеры crontab — на вкладке «Cron / CLI».

Разделы настроек плагина (по вкладкам)

Подключение

URL API — базовый адрес Partner API, например https://supplier.example/b2b/api/v1 .

Токен доступа — из кабинета поставщика /my/b2b/api/ (показывается один раз при генерации).

Домен клиента — ваш домен магазина; должен совпадать с X-B2B-Client-Domain / доменом в токене (обычно без www и без схемы).

Какую цену писать в товар — оптовая ( wholesale / b2b ) или розничная ( retail ) из ответа API.

Создавать новые товары — если артикул не найден локально, создать позицию.

Создавать категории, если нет сопоставления — автосоздание веток; если выключено — только ручная карта категорий.

Новый товар только при сопоставленной категории — не создавать товар, пока ни одна его категория API не сопоставлена (обновление уже существующих без категории разрешено).

Обновлять цены / Обновлять остатки — включать соответствующие поля при синхронизации.

Синхронизировать характеристики — переносить features из API в товар.

Снимать с публикации при нулевом остатке — скрывать товар/SKU без наличия.

Тип товара для новых позиций — ID типа Shop-Script (0 = по умолчанию).

Размер страницы API — сколько товаров запрашивать за один page (пагинация).

Загрузить категории API — дерево категорий поставщика.

Автопо имени — сопоставить пустые строки по точному совпадению названий.

Сохранить сопоставление — записать карту remote_id → local_id.

Выбор категории магазина — dropdown с поиском (как в карточке товара Shop-Script).

Синхронизация

Проверить подключение — ping API (группа, настройки экспорта).

Категории — создать недостающие (если разрешено в настройках).

Товары / цены — upsert по артикулу.

Остатки — только stocks.

Полный импорт — полный цикл.

Статус операции показывается рядом с кнопками (на своей вкладке).

php cli.php shop b2bimportProducts — товары и цены.

php cli.php shop b2bimportStocks — только остатки.

php cli.php shop b2bimportSync categories|products|stocks|full — выбранный режим.

Примеры crontab для товаров (реже) и остатков (чаще).

Последний запуск — файл wa-log/shop/plugins/b2bimport.last.json .

Журнал — читаемый лог wa-log/shop/plugins/b2bimport.journal.log (последние записи в интерфейсе).

При размере журнала больше 500 МБ старые строки обрезаются автоматически.

Авторизация к API поставщика (что уходит в запросах)

Заголовок X-B2B-Api-Token — ваш токен.

Заголовок X-B2B-Client-Domain — домен из настроек плагина.

Методы, которые использует импорт: GET /ping , GET /categories , GET /products , GET /stocks (и связанные режимы sync).

Рекомендуемый порядок первой настройки

Получить у поставщика URL API, токен и убедиться, что домен вашего магазина разрешён.

Вкладка «Подключение» — заполнить поля, сохранить.

«Синхронизация» → «Проверить подключение».

«Категории» — загрузить, сопоставить (или «Автопо имени»), сохранить карту.

Сначала «Товары / цены», затем «Остатки» (или «Полный импорт»).

Проверить несколько товаров в каталоге Shop-Script (цена, категория, остаток).

Настроить cron по примерам на вкладке «Cron / CLI».

Частые вопросы

Чем этот плагин отличается от B2B у поставщика? Плагин B2B — кабинет опта, прайс и Partner API на стороне поставщика . «Импорт каталога B2B» — клиент API на стороне вашего магазина.

Почему ошибка авторизации? Неверный токен, домен не совпадает с разрешённым, клиент не одобрен у поставщика или API выключен/недоступен.

Товары не создаются? Проверьте «Создавать новые товары», сопоставление категорий и опцию «Новый товар только при сопоставленной категории».

Цены не те? Смотрите «Какую цену писать в товар» (опт / розница) и что реально отдаёт API в полях wholesale/retail.

Остатки обновляются, а названия нет? Для частого cron используйте b2bimportStocks ; полный апдейт карточек — b2bimportProducts .

Где смотреть лог? Вкладка «Журнал» или файлы в wa-log/shop/plugins/ .

Нужно ли менять тему дизайна? Нет. Плагин работает в бэкенде и по CLI; витрина использует обычный каталог Shop-Script.

Полезные ссылки

https://www.webasyst.ru/store/plugin/shop/b2bimport/ — этот плагин в магазине Webasyst

https://www.webasyst.ru/store/plugin/shop/b2b/ — плагин поставщика «B2B / оптовые продажи» (кабинет, прайс, Partner API)

Нужна помощь с настройкой под ваш сайт? Пишите на почту scc.lac@mail.ru или в Telegram @web_stu .