Shopify
Что это
Shopify — платформа для интернет-магазинов. Интеграция подключает бота к Admin API вашего магазина. Бот выгружает каталог с ценами и остатками, проверяет наличие нужного варианта и передаёт оформленный в чате заказ в Shopify. Ещё он сообщает статус заказа и показывает клиенту историю его покупок. Заказ из бота появляется в админке Shopify как обычный: с позициями, клиентом и адресом доставки, а остатки списываются.
Требования
- Магазин на Shopify и доступ владельца или сотрудника с правом создавать приложения.
- Приложение в Shopify Dev Dashboard, созданное в той же организации, что и магазин, и установленное в магазин. Нужны доступы (scopes):
read_products— каталог и товары;read_inventory— остатки;write_orders— создание заказов и их чтение;read_customers— поиск клиента для истории заказов.
- Домен магазина вида
your-store.myshopify.com. Собственный домен магазина для API не подходит.
Как подключить
- Откройте Shopify Dev Dashboard и создайте приложение.
- В настройках версии приложения выдайте доступы
read_products,read_inventory,write_orders,read_customers, выпустите версию и установите приложение в свой магазин. - Скопируйте Client ID и Client Secret приложения.
- В конструкторе откройте Интеграции → найдите карточку Shopify → Подключить.
- Укажите домен магазина, Client ID и Client Secret. Если у магазина уже есть старое приложение, созданное в админке, вместо Client ID и Secret можно вставить его Admin API token (
shpat_…). - Сохраните подключение и нажмите Проверить соединение. В ответе будут название магазина и его валюта.
Доступные операции
| Операция | Что делает |
|---|---|
| Выгрузить каталог | Страница товаров (до 250): ID, название, цена от, валюта, фото, ссылка, наличие, остаток, ID первого варианта. Поддерживает поиск Shopify и постраничную выгрузку через next_cursor |
| Товар и его варианты | Описание товара и все его варианты: ID, название, SKU, цена, наличие, остаток |
| Проверить наличие | По ID варианта или SKU и нужному количеству отвечает available = 1/0 и показывает остаток и цену |
| Создать заказ | Передаёт заказ в Shopify: позиции ID_варианта:количество, email/телефон, имя, адрес доставки, комментарий, теги, статус оплаты. Возвращает номер заказа (#1001) и ссылку на страницу статуса |
| Информация о заказе | По номеру #1001 или ID показывает статус оплаты и выполнения, состав, сумму и трек-номер |
| Заказы клиента | Находит клиента по email или телефону и возвращает его последние заказы, новые первыми |
Ограничения
- Магазин и приложение должны быть в одной организации Shopify. Токен приложения живёт 24 часа, Botconsole обновляет его сам.
- Создавать приложения прямо в админке Shopify (с токеном
shpat_…) больше нельзя. Уже созданные работают, поэтому поле для такого токена оставлено. - Email, телефон и адрес клиента относятся к защищённым данным Shopify. Если доступ к ним не одобрен для приложения, операции с данными клиента вернут ошибку Shopify.
- Доступ
write_ordersбезread_all_ordersвидит заказы только за последние 60 дней. Для более старой истории запроситеread_all_orders. - На dev- и trial-магазинах Shopify разрешает создавать не больше 5 заказов в минуту.
- Shopify ограничивает частоту запросов к API. Не выгружайте каталог в цикле без нужды — сохраняйте результат в переменные.
Особенности и примечания
Типичный сценарий продажи: «Выгрузить каталог» → клиент выбирает товар → «Проверить наличие» → «Создать заказ» → бот отправляет клиенту номер заказа и ссылку
status_url.
Заказ создаётся со списанием остатков по правилам магазина. Если товара не хватает и продажа «под заказ» выключена, Shopify откажет, и в ответе будет текст ошибки.
По умолчанию заказ получает статус «Ожидает оплаты» и тег
botconsole, чтобы заказы из бота было легко найти в админке. Статус «Оплачен» ставьте, только если оплата уже прошла в боте.
Номер заказа для клиента — поле
name(#1001). Его же можно передать в «Информацию о заказе».
