Shopify-приложение на Python: представляем FastAPI Launch Kit
Ты хочешь написать серверную часть Shopify-приложения на Python. До работы над его функциями нужно соединить App Bridge, проверку запросов, хранение токенов, вебхуки и фоновые задачи, а затем разместить приложение на постоянном сервере.
Shopify Python Launch Kit собирает эти части в один переносимый проект. Внутри официальная Python-библиотека Shopify и подготовленный сценарий размещения приложения, Postgres и отдельного обработчика на Upferry. Исходный код бесплатный, под лицензией MIT.
FastAPI✓ App Home и проверка запросовPostgres + worker✓ Установки и фоновые задачиНачни с выбранного серверного стека
В августе 2026 года Shopify выпустил новые официальные PHP- и Python-пакеты. Они предоставляют проверку запросов, обмен токенов и GraphQL. В инструкции Shopify прямо сказано, что полного официального шаблона Python-приложения пока нет: разработчик соединяет компоненты самостоятельно.
Наш стартер предназначен для нового приложения с серверной логикой, разработчик которого уже выбрал FastAPI. В нём есть минимальная страница App Bridge, хранение установок в Postgres и пример фоновой задачи. Это независимый проект Upferry. Он не является официальным шаблоном Shopify и не обещает одобрение App Store.
Первый результат: работающее приложение
Пример показывает название тестового магазина через серверный запрос Admin GraphQL. Нажми Run Python job: отдельный обработчик получит название магазина и вернёт результат с версией Python и временем выполнения.
Токены установки хранятся в Postgres, зашифрованные ключом владельца. Новая пара токенов сохраняется до последующих GraphQL-запросов, а блокировка строки базы согласует обновление между процессами. Повторный деплой веб-процесса не сбрасывает сохранённую установку.
Пример фоновой задачи только читает данные. Перед добавлением изменений в магазине или платежей нужны защита от повторного выполнения и обработка данных под задачи твоего приложения.
От локальной разработки к постоянной работе
Сейчас для размещения на Upferry нужен разрешённый GitHub-аккаунт. Открытая самостоятельная регистрация пока недоступна. Исходники и локальный запуск доступны всем, контейнеры можно разместить и у другого провайдера.
Скачай репозиторий, установи Python-зависимости, запусти локальный Postgres и сценарий разработки Shopify CLI. Полные команды находятся в README. Код можно изучить и запустить до выбора хостинга.
Для Upferry привяжи отдельное Shopify-приложение для размещённой версии и выполни uv run python -m app.deploy. Команда выполняет вход в Upferry, создаёт базу и два сервиса приложения, применяет миграции схемы, запускает веб-процесс и затем обработчик.
Она обновляет именованную конфигурацию размещённой версии и запускает Shopify CLI для просмотра и публикации изменений. Установка на тестовый магазин завершается в Dev Dashboard. Локальная конфигурация разработки сохраняет собственное приложение и туннель.
Нужны вход разработчика и согласие на установку. Инструмент не обходит разрешения Shopify, не обещает время деплоя и не публикует приложение в App Store.
Границы стартера
В архив исходников не входят локальные файлы переменных, виртуальное окружение и состояние размещения. Переменные хостинга передаются отдельно в авторизованный API Upferry через HTTPS. Логи входящих запросов в приложении выключены, поскольку URL страниц Shopify могут содержать токены.
Стартер проверяет подпись вебхука и сверяет магазин для удаления с данными внутри подписанного тела. Обработчики удаления приложения и стирания магазина удаляют сохранённую установку и её задачи. Пример не хранит записи покупателей. Когда приложение начнёт их собирать, нужно расширить обработку запросов и удаления этих данных.
Обработчик использует временное закрепление задач в Postgres и ограниченные повторные попытки. Задача может выполниться повторно, поэтому для долгих операций и изменений данных нужны дополнительные меры под конкретную бизнес-логику. Стартер не заменяет аудит безопасности или проверку соответствия требованиям.
Бесплатный код и размещение по выбору
Репозиторий и локальный сценарий бесплатны. Постоянное размещение является отдельной услугой: веб-процесс, база и обработчик продолжают работать после закрытия ноутбука. Стартер не включает бесплатный безлимитный продакшен-хостинг.
Dockerfile работает и у других контейнерных провайдеров. Пакеты для Django, сторонние Python-стартеры и Node-шаблоны Shopify остаются подходящими альтернативами. Мы сосредоточились на одном поддерживаемом FastAPI-проекте и подготовленном размещении всей связки на Upferry.