API Shopify 2026-10: что сломается в ваших интеграциях
1 октября 2026 года Shopify выпустила версию 2026-10 своих API. Большая часть изменений — новые возможности, о которых можно не думать, пока они не понадобятся. Но несколько правок способны незаметно сломать интеграцию, которая спокойно работала на 2026-07. Именно им стоит уделить час, прежде чем менять версию.
По этому списку мы проверяем собственные интеграции, в том числе коннектор Shopify для Odoo. Здесь не все пункты из примечаний к релизу, а только те, что меняют поведение.
Изменения, которые ломают всё незаметно
Новые службы доставки сами не показывают тарифы при оформлении заказа
Создание службы доставки через carrierServiceCreate (или POST carrier_services.json в REST) теперь только регистрирует службу. Её тарифы больше не добавляются в общий профиль доставки General. Если ваше приложение или скрипт настройки создаёт службу доставки и рассчитывает, что покупатели увидят ваши тарифы, этого не произойдёт, пока вы сами не добавите службу в профиль доставки.
Смена адреса доставки пересчитывает налоги
Обновление адреса доставки в неотгруженном заказе через orderUpdate или REST-метод обновления заказа теперь пересчитывает его налоги. Это правильное поведение, но если вы меняете адреса из ERP или инструмента поддержки, сумма заказа может измениться без вашего участия. После обновления заново считайте taxLines, totalTaxSet и итоговые суммы, а любую разницу в оплате или возврате урегулируйте.
В предупреждениях о скидках черновика заказа пропало поле priceRule
DraftOrderDiscountNotAppliedWarning.priceRule и устаревшие типы PriceRule удалены. Если вы собираете черновики заказов через draftOrderCalculate, draftOrderCreate или draftOrderUpdate и читаете причину, по которой скидка не применилась, запрашивайте вместо этого discountTitle и discountCode.
Неверные фильтры по метаполям теперь выдают ошибку
Раньше запрос товаров с фильтром по метаполю, по которому фильтровать нельзя, просто игнорировал эту часть фильтра и возвращал всё. Теперь он возвращает ошибку. Это лучше, но синхронизация, которая месяцами получала «все товары», начнёт падать в день перехода на новую версию. Проверьте, что определения метаполей, по которым вы фильтруете, поддерживают фильтрацию и нужные вам операторы.
У варианта товара может быть несколько штрихкодов
ProductVariant.barcodes — новое подключение (connection) с типизированными штрихкодами, до 20 штук. Прежнее поле ProductVariant.barcode объявлено устаревшим и возвращает только первый штрихкод. Если ваш склад или касса сопоставляют товары по штрихкоду, читайте весь список.
Одна ошибка по остаткам исчезла
ITEM_NOT_STOCKED_AT_LOCATION удалена из мутаций остатков и из InventorySetQuantitiesUserErrorCode. Код, который ветвится по этому значению, теперь мёртвый. Удалите его, чтобы никто не стал на него полагаться позже.
Мелочи, которые стоит поискать в своём коде
- Сегменты клиентов.
MATCHESиNOT MATCHESзаменяют= trueи= false, а именованные даты вроде12_months_agoобъявлены устаревшими в пользу смещений вроде-12m. - Согласие на SMS. Плоские поля согласия на SMS объявлены устаревшими. Читайте
CustomerPhoneNumber.smsMarketingConsent. - Скидки в поэтапном запуске. Если скидка входит в поэтапный запуск (rollout), по её
startsAtиendsAtнельзя понять, действует ли она сейчас. Чтобы читатьDiscount.rollouts, нужен доступread_rollouts. - Статус выполнения заказа.
FULFILLMENT_NOT_REQUIRED— новое значение. Конструкцияswitch, которая сопоставляет все статусы, попадёт в ветку по умолчанию. - Customer Account API.
Customer.lastIncompleteCheckoutи типыCheckoutудалены без замены. - Расширения POS UI. Мутации корзины вроде
applyCartDiscountтеперь отклоняются, если POS не подтверждает изменение, аsession.currentSession.staffMemberIdудалено.
Два срока, не связанных с 2026-10
Если вы поддерживаете публичное приложение, бессрочные офлайн-токены доступа нужно заменить на токены с ограниченным сроком действия до 1 января 2027 года. Кастомные приложения и приложения, которые мерчант создаёт в Dev Dashboard, это не касается. А скрипты (script tags) интернет-магазина перестанут работать 1 марта 2027 года. Что это значит для магазинов, мы описали в отдельной статье.
Как мы обновляемся
Мы фиксируем версию API в одном месте, запускаем интеграцию на новой версии в тестовом магазине и читаем журнал изменений 2026-10 с фильтром «Action required». Версия 2026-10 будет поддерживаться как минимум до 1 октября 2027 года, так что время есть, но не настолько, чтобы откладывать до писем с предупреждениями.
Если ваш магазин работает с Odoo или другой системой и вы предпочли бы поручить это кому-то другому, этим мы и занимаемся.
Читайте также: Script tags в Shopify перестанут работать 1 марта 2027 года. Что делать владельцам магазинов или Подключение Shopify к Odoo 19 Community: пошаговая инструкция.