Встановлення та налаштування Saleor під ключ: Django + GraphQL

Самостійне розгортання Saleor часто впирається в строки та приховані складнощі. Ми встановлюємо та налаштовуємо Saleor під ключ: переносимо каталог, замовлення та оплату, зберігаючи продажі. Ви отримуєте працюючий магазин і зрозумілі регламенти підтримки.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Встановлення та налаштування Saleor під ключ: Django + GraphQL
Середній
від 1 дня до 3 днів
Часті запитання

Встановлення Saleor: де ламається самостійне розгортання

Встановлення Saleor своїми силами виглядає як звичайний деплой Django-проєкту: підняти застосунок, застосувати міграції, підключити базу й кеш. Ламається все зазвичай не на цьому кроці, а на стиках — коли магазин починає працювати під реальним трафіком і із зовнішніми системами.

Перший шар збоїв — каталог. Товари, варіанти та залишки приходять з облікової системи, а картки правлять ще й в адмінці: без однозначного власника даних кожна синхронізація затирає чуже редагування.

На вітрині з'являються позиції з нульовим залишком і старою ціною, а розбіжність між вітриною та оформленням замовлення спливає вже в момент оплати.

Другий шар — кошик і замовлення. Якщо оформлення проходить через кілька кроків без єдиної транзакції та без резервування залишку, на піковому навантаженні в день розпродажу частина кошиків губиться, а замовлення дублюються.

Клієнт бачить одне списання, склад — дві заявки, і розбір займає день, а не хвилини. Цілісність каталогу та замовлень тримається не на повторних спробах, а на ідемпотентних операціях і явних блокуваннях залишку.

Третій шар — інтеграції: оплата, доставка, склад, розсилки.

На піку вони отримують у рази більше запитів, і без черг з обмеженням паралелізму фонові завдання накопичуються, повідомлення від зовнішніх систем губляться, а статуси замовлень перестають збігатися з фактичним відвантаженням. Нижче розбираємо, як це закривається під час розгортання ecommerce-платформи.

Гнучка схема каталогу та замовлень: що дає налаштування

Картка товару — не один запис, а набір варіантів: колір, розмір, комплектація, у кожного свій залишок і ціна. Коректна модель даних каталогу пов'язує варіанти, склади й канали продажів явно, тому вітрина віддає лише те, що доступно в потрібному каналі.

У Saleor ця схема закладена штатно, але потребує налаштування — інакше з'являються дублі товарів і розбіжність між вітриною та складом.

Каталог, варіанти та склади

Атрибути описуємо типізованими полями, а не вільним текстом: фільтри та добірки будуються за індексами, а не перебором. Категорії вибудовуємо деревом із передбачуваною глибиною, щоб видача за розділом не підтягувала каталог цілком.

Резерв відділяємо від фактичного залишку: поки замовлення не підтверджено, товар залишається доступним іншим покупцям, а склад не показує «мінус».

Вітринний шар і пікові навантаження

Вітринний шар збирає сторінку каталогу підготовленими вибірками замість каскаду запитів: час відгуку сягає часток секунди замість секунд і не зростає з глибиною каталогу.

Пропускну здатність у пік перевіряємо прогонами на реальному профілі — розпродаж, рекламна кампанія, сезонний сплеск — і доводимо до стану, коли вітрина тримає потік без черги.

Оформлення замовлення проходить однією операцією: списання залишку, створення замовлення й запис історії статусів не розходяться між собою. Повторне надсилання форми не створює другого замовлення, а обрив на кроці оплати не залишає заморожений резерв. Зникає клас відмов: «продали те, чого немає» і «замовлення є, а позицій немає».

Режими розгортання: порівняння варіантів

Вибір варіанта розгортання визначає, як швидко виходить оновлення Saleor, наскільки передбачувано застосунок переживе зростання каталогу і хто відповідає за доступ до даних. Нижче — три схеми, між якими реально обирають на старті.

Варіант Коли підходить Обмеження варіанта
Розміщення на своєму контурі Вимоги тримати дані й доступи всередині своєї інфраструктури, є свій відділ експлуатації, нестандартна мережева схема Оновлення й масштабування виконуються вручну, міграції бази плануються як окрема операція з простоєм або перемиканням реплік
Контейнерна схема Потрібні регулярні релізи, горизонтальне масштабування вітрини та фонових завдань, середовище розробки повторює робочий контур Без збору метрик і логів зростає час розбору збоїв, потрібна інфраструктурна команда та регламент викочування
Керована платформа Швидкий запуск, невелика команда, немає задачі тримати інженера експлуатації Частина параметрів недоступна, оновлення й міграції прив'язані до регламенту майданчика, глибина налаштувань шарів обмежена

Що змінюється під час масштабування

У контейнерній схемі шар застосунку не зберігає стан, тому вітрина масштабується репліками, а черга фонових завдань виноситься окремо й зростає незалежно.

GraphQL-запити кешуються, важкі вибірки каталогу йдуть на репліки бази — кошик і оформлення замовлення залишаються на основному вузлі.

Перехід між варіантами виконується перенесенням дампа бази та медіафайлів, тому вибрана схема не замикає вас: розбираємо, який контур закриває ваші обмеження щодо доступів і навантаження.

Порядок встановлення Saleor: від аудиту до передачі

Порядок робіт вибудувано так, щоб кожен крок спирався на результат попереднього: спочатку фіксуємо фактичний стан контуру, потім проєктуємо схему і лише після цього торкаємося робочого контуру. Нижче — етапи впровадження в тому вигляді, у якому вони йдуть на проєктах із живим трафіком.

  1. Обстеження інфраструктури. Фіксуємо поточну картину: розміщення сервісів, будову баз, ліміти серверів, інструменти, які використовує команда. На виході — звіт із вузькими місцями, які безпосередньо впливають на схему розгортання.
  2. Проєктування схеми. Визначаємо склад компонентів Saleor, схему зберігання даних, ролі сервісів, точки інтеграції з обліковою системою та оплатою. Топологію узгоджуємо до початку робіт.
  3. Розділення середовищ. Піднімаємо окремі контури для розробки, приймання та експлуатації — зі своїми базами, ключами й конфігурацією. Оновлення обкатуються на копії даних і не зачіпають покупців.
  4. Встановлення та налаштування. Розгортаємо застосунок, черги фонових завдань, пошуковий індекс і кеш, налаштовуємо міграції та резервне копіювання — спочатку на тестовому контурі.
  5. Навантажувальна перевірка. Моделюємо реальні сценарії: перегляд каталогу, кошик, оформлення замовлення, вивантаження. Дивимося час відгуку під піком і поведінку системи в разі відмови окремого вузла.
  6. Передача проєкту. Віддаємо доступи й документацію щодо розгортання та відновлення, навчаємо команду, фіксуємо регламент оновлень і залишаємося на супроводі.

Склад постачання: конфігурації, схеми та регламенти

Постачання — це не архів із кодом, а набір артефактів, за якими систему можна експлуатувати й розвивати без автора. Усе, що налаштовується під час встановлення Saleor, фіксується в репозиторії та документації: конфігурації, схеми, політики й регламенти переходять замовнику.

  • Конфігурації проєкту — файли середовищ для розробки, тестового та робочого контурів, змінні підключення до бази й черги, секрети винесено окремо.
  • Схема інтеграцій — карта зв'язків із платежами, доставкою, складом і обліковою системою: напрямок обміну, формат даних, поведінка в разі недоступності зовнішньої сторони. Окремо описано програмний інтерфейс, за яким підключаються вітрина та мобільний застосунок.
  • Політики доступу — ролі та права на замовлення, каталог і ціни; обмеження на вхід до адмінки та службові методи.
  • Схема даних і міграції — структура каталогу (товари, варіанти, колекції, склади), правила наповнення та порядок перенесення з попередньої системи.
  • Регламент оновлень — періодичність оновлення платформи та залежностей, перевірка на тестовому контурі, точки відкату.
  • Моніторинг і журнали — зібрані метрики, аварійні пороги, маршрут оповіщень.
  • Документація та чек-ліст приймання — інструкції для адміністраторів і розробників, сценарії перевірки перед викладкою.

Такий склад знімає залежність від підрядника: новий інженер входить у систему за схемами та регламентами, а не за пам'яттю попередньої команди.

Кейс: перенесення каталогу без зупинки продажів

Магазин на старій платформі тримав каталог на 40+ тисяч позицій, а синхронізація залишків ішла пакетно й блокувала вітрину: вивантаження займало до 40 хвилин, у цей час картки не відкривалися, а частину замовлень менеджери оформлювали вручну.

Розбіжності залишків і цін сягали 8% позицій — підтримка розбирала їх щодня, замість того щоб займатися покупцями.

Перенесення зробили без зупинки продажів. Новий контур на Saleor піднімали паралельно робочому: каталог та історія замовлень виїжджали пакетами на запис, старий магазин продовжував приймати замовлення.

Поки тривало завантаження, зустрічні зміни доїжджали додатково, а ключі ідемпотентності не давали дублям потрапити до каталогу.

Що змінилося

Перемикання вітрини минуло без простою: покупці не побачили ні сторінки обслуговування, ні помилок оформлення, а повернутися на старий контур у разі відхилення можна було однією командою.

Час відгуку каталогу на важких фільтрах скоротився майже втричі — індекс і кеш перезбираються у фоні, а не на кожен запит.

Метрики після

  • Простій магазину: нуль замість планових кількох годин.
  • Вивантаження каталогу: з 40 хвилин до одиниць хвилин, вітрина залишається доступною.
  • Звернення до підтримки щодо «товару немає / ціна не та»: менше вчетверо.
  • Розбіжності залишків: з 8% позицій до часток відсотка.

Звільнений час підтримки пішов на консультації та роботу з оптовими клієнтами, а не на розбір розбіжностей. Підключення нового каналу продажів тепер не потребує окремого вивантаження — каталог надходить з одного джерела.

Чим відрізняється розгортання з нуля від перенесення магазину?

Розгортання з нуля — чиста інсталяція Saleor: схему каталогу проєктуємо під завдання, а не успадковуємо від попередньої платформи. Атрибути, варіанти товару, склади й правила цін задаються відразу в потрібній моделі, інтеграції підключаються до порожньої бази. Обсяг робіт — налаштування та перевірка сценаріїв, а не перенесення.

Перенесення магазину — зворотна задача: зберегти працюючий бізнес у момент зміни платформи. Переносимо каталог, категорії, атрибути, залишки, історію замовлень і користувачів.

Головна складність — невідповідність схеми каталогу: те, що на попередній платформі було однією сутністю, тут розкладається на кілька й потребує явного перетворення.

Міграція даних іде через аудит: що переносимо як є, що перезбираємо, а що не беремо. Вивантаження йде в нейтральний формат, завантаження — з перевіркою збіжності: число позицій, залишки, ціни та прив'язка замовлень мають збігтися до і після. Розбіжності шукаємо на тестовому контурі, а не на бойовій базі.

Сумісність інтеграцій — другий великий ризик переїзду. Платіжні шлюзи, служби доставки, склад і бухгалтерія обмінюються даними за своїми контрактами: частина підключається штатними засобами, частина потребує доопрацювання. Старі адреси карток і категорій переводимо на нові постійними перенаправленнями.

Звідси висновок: розгортання з нуля передбачуване за термінами, переїзд — етапи та план відкату. За невеликого каталогу та малої кількості зв'язків швидше чиста інсталяція з повторним завантаженням даних.

Обмеження платформи та часті технічні питання

Платформа закриває каталог, кошик і оформлення з коробки, але межі в неї є — їх краще знати до запуску. Нижче — сумніви, які найчастіше звучать на оцінці, і те, як ми знімаємо їх на рівні архітектури.

Де межа каталогу і як вітрина поводиться на піку?

Обмеження задає не число товарів, а індексація та кеш: десятки тисяч позицій із фасетними фільтрами йдуть в окремий пошуковий шар. Запити обмежені за глибиною та вартістю, щоб важкий виклик не займав обробник, а застосунок масштабується горизонтально. Кошик і оформлення залишаються швидкими під час акції.

Як стикується склад і облікова система?

Залишки, ціни та статуси замовлень ходять через API — за розкладом і за подіями. Пріоритет джерела фіксуємо заздалегідь: склад диктує залишок, магазин — ціну, а розбіжності потрапляють до журналу й не перетворюються на продаж відсутнього товару.

Що з платежами та безпекою?

Шлюз підключається конфігурацією, оплата йде з підтвердженням за 3-D Secure. Карткові дані не проходять через застосунок — використовується токенізація на боці провайдера, тому контур аудиту залишається вузьким, а платіжний провайдер змінюється без переписування вітрини.

У якому порядку виходять оновлення платформи?

Нову мажорну гілку ми не викладаємо в день релізу: спочатку проміжний стенд, прогін сценаріїв замовлення та міграції даних, потім викладка з можливістю відкату. Оновлення йдуть пакетами.

Обговоримо завдання: що потрібно для оцінки та старту

Щоб обговорити завдання предметно й повернутися з оцінкою проєкту, а не із загальними словами, нам потрібні межі робіт. Нижче — мінімальний набір вихідних даних. Якщо чогось поки немає — не критично: частину уточнимо на дзвінку, частину зберемо самі під час розбору.

  • Каталог: скільки товарів і категорій, які атрибути та варіанти (розміри, опції), звідки переносимо дані.
  • Модель продажів: одна вітрина чи кілька, мови та валюти, чи потрібні різні склади й правила доставки.
  • Оплата й логістика: які платіжні провайдери та служби доставки підключаємо, чи є нестандартні сценарії на кшталт часткової оплати або самовивозу.
  • Інтеграції: ERP, склад, CRM, аналітика — що і в який бік має обмінюватися даними з Saleor.
  • Навантаження: очікуваний трафік у пік, число одночасних покупців, вимоги до часу відгуку каталогу й оформлення замовлення.
  • Інфраструктура: де розміщуємо проєкт, який контур є зараз, хто відповідає за доступи, домени й сертифікати.
  • Обмеження: дата запуску, зобов'язання перед партнерами, що вже готово щодо контенту та макетів.

На основі цього команда інженерів фіксує обсяг, розбиває його на етапи й віддає план робіт і терміни з явними припущеннями та точками узгодження. Опишіть завдання у зручному вигляді — повернемося з оцінкою та планом.

Наші компетенції:

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1060