DocsBlog
← Все статьи
Открытый стартерUpferry

Shopify-приложение на Python: представляем FastAPI Launch Kit

Ты хочешь написать серверную часть Shopify-приложения на Python. До работы над его функциями нужно соединить App Bridge, проверку запросов, хранение токенов, вебхуки и фоновые задачи, а затем разместить приложение на постоянном сервере.

Shopify Python Launch Kit собирает эти части в один переносимый проект. Внутри официальная Python-библиотека Shopify и подготовленный сценарий размещения приложения, Postgres и отдельного обработчика на Upferry. Исходный код бесплатный, под лицензией MIT.

Законченный исходный проект. Код остаётся переносимым, а вход в Shopify и согласие на установку сохраняются в процессе настройки.

Начни с выбранного серверного стека

В августе 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.

Начни с бесплатных исходников и примера для тестового магазина. Выбери размещение, когда приложению понадобится постоянная работа.

Открыть Python Launch Kit →