Подключаем Shopify к Odoo 19 Community: пошаговая инструкция
Мы написали коннектор Shopify для Odoo и передали его Odoo Community Association (OCA). Он бесплатный, с открытым исходным кодом (AGPL-3) и работает с Odoo 19 Community. Ниже описана настройка от начала до конца — так, как мы делаем её для клиентов.
Коннектор синхронизирует товары, остатки, клиентов, заказы, возвраты, возмещения и выполнение заказов — для одного магазина или для нескольких. Бухгалтерия и касса (POS) — отдельные модули, которые можно добавить позже.
Перед началом
- Odoo 19 Community должна быть доступна по публичному HTTPS. Shopify отправляет на неё вебхуки и скачивает с неё изображения товаров.
- Доступ администратора к магазину Shopify и к организации Shopify, которой этот магазин принадлежит.
- Тариф Shopify, который включает защищённые данные клиентов для приложений, созданных вами самостоятельно. В тарифе Basic их нет, и без них Shopify отклоняет часть вебхуков по заказам, из-за чего импорт заказов и клиентов не работает.
1. Создайте приложение в Shopify Dev Dashboard
С 1 января 2026 года Shopify больше не позволяет создавать прежние «пользовательские приложения» (custom apps) из админки магазина. Создайте приложение в Dev Dashboard той организации, которой принадлежит магазин. Это важно: Odoo получает токен доступа через client credentials grant, а он работает только тогда, когда приложение и магазин принадлежат одной организации.
При заполнении версии приложения:
- App URL:
https://shopify.dev/apps/default-app-home. У коннектора нет страницы внутри Shopify. - Embed app in Shopify admin: выключено.
- Use legacy install flow: выключено, чтобы при установке приложения выдавались выбранные вами права доступа (scopes).
- Webhooks: не добавляйте. Odoo создаёт свои вебхуки сама при первичной настройке.
- Webhooks API version:
2026-01— версия, которую использует коннектор. - Scopes:
read_customers,write_customers,read_draft_orders,read_fulfillments,read_inventory,write_inventory,read_locations,read_merchant_managed_fulfillment_orders,write_merchant_managed_fulfillment_orders,read_orders,read_products,write_productsиread_returns. Добавьтеread_all_orders, если нужны заказы старше 60 дней.
Опубликуйте версию, установите приложение в магазин и скопируйте client ID и client secret на странице Settings приложения.
Есть старое пользовательское приложение, созданное до 2026 года? Оно по-прежнему работает. Оставьте поле client ID пустым и укажите вместо него Admin API access token и API secret key этого приложения.
2. Установите модули в Odoo
Добавьте OCA queue_job и репозиторий connector-shopify в addons path, затем установите Shopify Connector. Работа выполняется фоновыми задачами, поэтому queue_job нужно загружать на уровне всего сервера, указав мощность (capacity) для каждого канала Shopify:
[options]
server_wide_modules = base,rpc,web,queue_job
[queue_job]
channels = root:4,root.shopify.import:2,root.shopify.export:1,root.shopify.webhook:1
Затем задайте системному параметру web.base.url публичный HTTPS-адрес Odoo, а web.base.url.freeze — значение True. Иначе адрес меняется, когда администратор входит из другого места, и вебхуки Shopify уходят не туда.
3. Запустите первичную настройку
Добавьте сотрудников в группу Shopify Manager, затем откройте Shopify > Configuration > Instances и нажмите Start Onboarding:
- Введите домен
yourstore.myshopify.com, client ID и client secret и проверьте подключение. Odoo запрашивает токен и сама обновляет его каждые 24 часа. - Проверьте права доступа (scopes). Если какого-то не хватает, добавьте его в новую версию приложения, опубликуйте её и подтвердите в магазине.
- Сопоставьте локации Shopify со складами Odoo, проверьте налоговые соответствия, которые создаёт Odoo, и выберите политики синхронизации.
- Установите вебхуки и поставьте в очередь первые импорты.
Прежде чем позволить заказам и выполнению заказов работать без присмотра, проверьте соответствия платёжных шлюзов и служб доставки. Большинство неприятных сюрпризов потом возникает из-за соответствия, на которое никто не посмотрел.
4. Следите за работой
Shopify > Dashboard показывает состояние синхронизации, очередь задач, недавние ошибки и состояние вебхуков. Коннектор не рассчитывает, что каждый вебхук дойдёт: плановые задачи повторно импортируют всё, что изменилось в Shopify, но не попало в Odoo. Если что-то не сработало, устраните причину и нажмите Retry Failed Shopify Bindings. После смены домена или учётных данных запустите Check Webhooks.
Что дальше
Добавьте Shopify Connector Accounting, чтобы выплаты Shopify Payments, комиссии и споры попадали в учёт в виде проводок (почему выплаты так сложно сверить, мы рассказываем отдельно), и Shopify Connector POS для продаж в офлайн-точках.
Если вы хотите, чтобы мы всё настроили, адаптировали под ваши бизнес-процессы или доработали, мы этим занимаемся.
Читайте также: Почему выплаты Shopify никогда не совпадают с вашей бухгалтерией или API Shopify 2026-10: что сломается в ваших интеграциях.