Требования и ограничения для скриптов Shopify
Некоторые ограничения для скриптов Shopify призваны повысить безопасность и обеспечить работу скриптов независимо от количества клиентов, одновременно использующих ваш магазин. Учитывайте эти ограничения при разработке скриптов для своего магазина Shopify.
На этой странице
- Интернет-магазин и Storefront API
- Опубликованные скрипты
- Максимальное количество скриптов Shopify
- Черновики заказов
- Метаполя
- Атрибуты корзины/оформления заказа
- Коды скидок
- Позиции
- Тарифы на доставку
- Мультивалютность
- Регулярные выражения
- Темы
- Ресурсы
- Ввод/вывод
- Время и случайность
- Ограничение на количество символов в скрипте
- Заказы по подписке
- Ускоренное оформление заказа
- Shopify Point of Sale (POS)
- Переименование платёжных шлюзов
- Разделение доставки при оформлении заказа
Интернет-магазин и Storefront API
При создании или редактировании скрипта вы выбираете, будет ли он работать только в вашем интернет-магазине или и в интернет-магазине, и в следующих приложениях:
- Пользовательские приложения, созданные с помощью Storefront API, JavaScript Buy SDK или Mobile Buy SDKs (для Android и iOS)
- Пользовательские приложения, которые генерируют оформления заказов
- Конструкторы мобильных приложений Tapcart и Plobal Apps
Для работы скриптов на вашем веб-сайте должна быть встроена функция корзины покупок. Поэтому скрипты нельзя использовать с кнопками покупки или в канале продаж Facebook and Instagram by Meta.
Опубликованные скрипты
Одновременно может быть опубликован только один скрипт каждого типа. Например, вы можете опубликовать скрипт позиций и скрипт тарифов доставки, но не можете опубликовать два скрипта позиций одновременно.
Максимальное количество скриптов Shopify
Вы можете создать до 200 скриптов Shopify.
Черновики заказов
Скрипты для позиций, тарифов доставки и способов оплаты не работают с черновиками заказов или при оформлении заказов на их основе.
Метаполя
Скрипты Shopify не имеют доступа к метаполям.
Атрибуты корзины/оформления заказа
Скрипты Shopify не имеют доступа к атрибутам корзины Shopify Liquid. Вы можете добавлять эти атрибуты на страницы корзины для сбора дополнительной информации от клиентов, но не можете создавать скрипты, которые их используют.
Коды скидок
Скрипты могут получить информацию о том, применён ли код скидки, а также о сумме и типе скидки (например, фиксированная сумма, процент или доставка). Скрипты не могут получить доступ к информации о том, как применяется код скидки (например, к корзине или к отдельной позиции). Это означает, что у скриптов нет доступа к итоговым суммам после применения скидки или к автоматическим скидкам.
Скрипты позиций и доставки, которые получают доступ к применённым к корзине скидкам, несовместимы с комбинациями скидок. Метод .discount_code может вернуть только один код скидки. Корзины, к которым применено несколько кодов скидок с помощью комбинаций скидок, не поддерживаются.
Позиции
Скрипты не могут добавлять товары в корзину или увеличивать их цену.
Тарифы доставки
Скрипты не могут увеличивать стоимость тарифа доставки.
Мультивалютность
Ваши скрипты могут работать с мультивалютностью не так, как ожидалось. Чтобы обеспечить работу скриптов с корзинами или при оформлении заказов в любой валюте, кроме основной валюты вашего магазина, необходимо перенести их на Shopify Functions.
Регулярные выражения
Сопоставление с помощью регулярных выражений не поддерживается. Если вы создаёте скрипт для позиций, в качестве обходного пути можно использовать один из следующих методов:
- Метод
split - Методы
start_withиend_with - Метод
include
Темы
Возможно, вам понадобится обновить тему Liquid, чтобы обеспечить поддержку скриптов и не вводить клиентов в заблуждение. Например, не все темы отображают скидки на позиции в корзине. В таком случае вам нужно отредактировать тему, чтобы скидки на позиции отображались в корзине. Узнайте больше о типах изменений, которые можно вносить в темы Liquid.
Ресурсы
Объём ресурсов ЦП и памяти, доступных скрипту, ограничен. Ресурсы, зарезервированные для скрипта, зависят от размера корзины и объёма вычислений, которые требуются скрипту. Shopify внимательно отслеживает эти ограничения по ресурсам, чтобы они не мешали вашим скриптам работать должным образом.
Когда вы тестируете скрипт, в консоли приложения Script Editor отображается процент используемых скриптом выделенных ресурсов.
Ввод-вывод
За некоторыми исключениями, скрипты Shopify не поддерживают ввод-вывод. Это означает, что скрипты не могут выполнять веб-запросы или обращения к базе данных, а также получать данные от пользователя.
Метод puts можно использовать для вывода текста в консоль приложения Script Editor.
Время и случайность
Скрипты не могут содержать вычисления, основанные на времени или случайных значениях. Объект Time и метод rand недоступны для скриптов Shopify.
Поскольку скрипты запускаются каждый раз при пересчёте итоговой суммы в корзине, скрипты, основанные на времени или генерации случайных чисел, могут давать непредсказуемые или сбивающие с толку результаты, если клиент часто меняет состав корзины. Однако вы можете запланировать запуск скриптов во время определённых событий с помощью приложения Launchpad.
Ограничение на количество символов в скрипте
Максимальная длина скрипта — 40 960 символов.
Заказы по подписке
Если ваши скрипты для позиций и доставки создают скидку на товар по подписке, эта скидка применяется к следующим платежам:
- только к первому платежу при оплате за доставку, не применяясь к запланированным заказам
- ко всей сумме предоплаченного заказа по подписке
Подробнее о подписках и скриптах.
Ускоренное оформление заказа
При использовании скриптов Shopify с ускоренным оформлением заказа скидки на доставку применяются после того, как клиент выберет ускоренный способ оплаты. Из-за этого изменения в цене заказа не отражаются на устройстве или в браузере клиента. Клиенты видят исходную цену при ускоренном оформлении заказа, но с них взимается правильная цена со скидкой.
Shopify Point of Sale (POS)
Скрипты Shopify не работают с Shopify Point of Sale (POS).
Переименование платёжных шлюзов
Нельзя переименовать платёжные шлюзы, у которых в качестве названия отображается изображение или логотип. Платёжные шлюзы, у которых логотип отображается рядом с названием, переименовать можно.
Раздельная доставка при оформлении заказа
Скрипты доставки несовместимы с раздельной доставкой в Shopify Checkout. Если вы используете скрипты доставки и активируете раздельную доставку, то разделённые отправления не будут отображаться вашим клиентам при оформлении заказа.