Інтеграція магазину Agilix з Allegro

Як застосунок Agilix Sklep використовує REST API Allegro: призначення, принцип роботи, авторизація, дозволи, дані та відповідність правилам.

Станом на 29 вересня 2026 р.

Agilix Sklep - це застосунок, зареєстрований в Allegro Developer Apps, який поєднує інтернет-магазин agilix.dog (іграшки, ласощі та аксесуари для собак) з обліковим записом продавця на Allegro. Завдяки йому магазин має один каталог товарів, один складський залишок і одну обробку замовлень - без ведення другої адмін-системи в панелі Allegro.

Застосунок розробляє та підтримує:

Hackerman Consulting - Adam Gajzlerowicz

NIP 7772841677

Regon 380997651

Hebanowa 16E, 62-020 Zalasewo, woj. wielkopolskie

+48 737 909 076

adam@agilix.dog

Призначення застосунку

  • виставлення товарів магазину agilix.dog як пропозицій на Allegro та оновлення їхньої назви, опису, фотографій і ціни;
  • підтримка одного спільного складського залишку - продаж у магазині зменшує кількість одиниць у пропозиції на Allegro, а продаж на Allegro зменшує залишок у магазині, зазвичай протягом хвилини;
  • отримання оплачених замовлень з Allegro до панелі замовлень магазину, щоб виконувати їх разом із замовленнями, оформленими в магазині;
  • передавання до Allegro статусу виконання замовлення та номера відправлення.

Хто користується застосунком

Застосунком користується виключно адміністратор магазину agilix.dog у налаштуваннях магазину в адмін-панелі. Він підключає до застосунку один обліковий запис продавця Allegro - той, з якого продає магазин. Покупці та інші користувачі Agilix не входять в Allegro через цей застосунок і не мають доступу до його налаштувань.

Як працює виставлення пропозицій

Адміністратор позначає біля товару поле "Синхронізувати з Allegro" та вибирає категорію, обов'язкові параметри й ціну на Allegro. Після збереження товару сервер Agilix у фоновому режимі завантажує фотографії до Allegro, створює або оновлює пропозицію (товар, категорія та параметри, дані виробника й відповідальної особи згідно з GPSR, ціна, кількість одиниць, прайс-лист доставки, умови повернення та рекламацій) і публікує її.

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

Як працює обробка замовлень

  • Раз на хвилину сервер зчитує журнал подій замовлень, починаючи з останньої обробленої події.
  • Замовлення потрапляє до магазину лише тоді, коли воно готове до виконання (READY_FOR_PROCESSING) і не було скасоване; кожне замовлення імпортується рівно один раз, а складський залишок зменшується на замовлену кількість.
  • Скасування замовлення на Allegro скасовує його в магазині та відновлює складський залишок.
  • Коли адміністратор змінює статус замовлення або відправляє посилку, застосунок оновлює статус виконання в Allegro і додає номер відправлення.
  • Повернення коштів за замовлення з Allegro обробляються в панелі Allegro, поза застосунком.

Авторизація користувача

Застосунок використовує стандартний потік OAuth 2.0 (Authorization Code), який надає Allegro. Він ні в кого не запитує логін, пароль, Client ID чи Client Secret.

  1. Адміністратор натискає "Підключити до Allegro" в налаштуваннях магазину. Сервер створює підписаний параметр state, дійсний 15 хвилин і прив'язаний до цього адміністратора.
  2. Браузер переходить на сторінку входу Allegro (https://allegro.pl/auth/oauth/authorize), де продавець входить у свій обліковий запис і надає згоду на дозволи застосунку.
  3. Allegro перенаправляє на зареєстровану адресу https://api.agilix.dog/allegro/oauth/callback. Сервер перевіряє підпис і термін дії state, а також те, що користувач досі є адміністратором магазину, після чого обмінює код на токени (https://allegro.pl/auth/oauth/token), автентифікуючись власними Client ID і Client Secret застосунку.
  4. Сервер зчитує логін підключеного облікового запису та зберігає підключення. Токен оновлення зберігається виключно на сервері, зашифрований алгоритмом AES-256-GCM. Токен доступу оновлюється автоматично, а новий токен оновлення одразу замінює попередній.

Client Secret і токени ніколи не потрапляють до браузера, мобільного застосунку чи інших сторін.

Дозволи застосунку

Застосунок запитує лише дозволи, потрібні для описаних функцій:

allegro:api:profile:read
читання логіна підключеного облікового запису, щоб адміністратор бачив, який обліковий запис Allegro підключено.
allegro:api:sale:offers:read
читання пропозицій магазину та результатів операцій їх створення, а також підказок категорій і їхніх параметрів.
allegro:api:sale:offers:write
створення, редагування, публікація та завершення пропозицій магазину, а також завантаження їхніх фотографій.
allegro:api:sale:settings:read
читання прайс-листів доставки, умов повернення та рекламацій, а також даних виробників і відповідальних осіб (GPSR), щоб адміністратор міг вибрати їх для пропозицій.
allegro:api:sale:settings:write
додавання даних відповідального виробника (GPSR), якщо в обліковому записі їх ще немає.
allegro:api:orders:read
читання подій і деталей замовлень, перевізників і відправлень.
allegro:api:orders:write
оновлення статусу виконання замовлення та додавання номера відправлення.

Використовувані ресурси REST API

Усі запити надсилаються із сервера Agilix на https://api.allegro.pl (фотографії - на https://upload.allegro.pl) від імені підключеного облікового запису:

Пропозиції та їх публікація

  • POST /sale/product-offers
  • PATCH /sale/product-offers/{offerId}
  • GET /sale/product-offers/{offerId}
  • GET /sale/product-offers/{offerId}/operations/{operationId}
  • PUT /sale/offer-publication-commands/{commandId}
  • GET /sale/offer-publication-commands/{commandId}

Фотографії

  • POST /sale/images

Категорії та параметри

  • GET /sale/matching-categories
  • GET /sale/categories/{categoryId}/parameters

Налаштування продажу

  • GET /sale/shipping-rates
  • GET /after-sales-service-conditions/return-policies
  • GET /after-sales-service-conditions/implied-warranties
  • GET /after-sales-service-conditions/warranties
  • GET /sale/responsible-producers
  • POST /sale/responsible-producers
  • GET /sale/responsible-persons

Замовлення

  • GET /order/events
  • GET /order/event-stats
  • GET /order/checkout-forms/{checkoutFormId}

Виконання та відправлення

  • PUT /order/checkout-forms/{checkoutFormId}/fulfillment
  • GET /order/checkout-forms/{checkoutFormId}/shipments
  • POST /order/checkout-forms/{checkoutFormId}/shipments
  • GET /order/carriers

Обліковий запис

  • GET /me

Оброблювані дані

Застосунок обробляє лише дані, потрібні для продажу: дані пропозицій магазину та дані замовлень з Allegro - ім'я та прізвище, адресу доставки або пункт видачі, телефон, адресу електронної пошти в домені allegromail.pl, дані для рахунку-фактури, замовлені товари та повідомлення для продавця.

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

Правила обробки персональних даних: Політика конфіденційності

Відповідність правилам REST API Allegro

  • Застосунок використовує виключно власні Client ID і Client Secret, які зберігаються як секрети сервера; він нікому їх не передає і ніколи не запитує в користувачів їхні ключі.
  • Доступ до облікового запису продавця він отримує лише через OAuth 2.0, за згодою продавця та в межах описаних вище дозволів.
  • Кожен запит містить незмінний заголовок User-Agent, що ідентифікує застосунок: Agilix-Sklep/1.0.0 (+https://agilix.dog/).
  • Застосунок дотримується лімітів: опитує журнал замовлень раз на хвилину, оновлює пропозиції лише після зміни товару, а після відповіді 429 чекає стільки, скільки вказує заголовок Retry-After.
  • Він не завантажує масово пропозиції чи дані інших продавців і покупців; дані з API використовує виключно для обслуговування продажів підключеного облікового запису.
  • Зв'язок відбувається виключно через HTTPS, а токени зберігаються в зашифрованому вигляді.

Відключення облікового запису

Адміністратор може будь-коли натиснути "Відключити" в налаштуваннях магазину - тоді сервер видаляє збережені токени та зв'язки пропозицій, а застосунок припиняє надсилати запити для цього облікового запису. Доступ також можна відкликати на боці Allegro, у налаштуваннях облікового запису; тоді застосунок позначає підключення як розірване і показує це адміністраторові.

Питання щодо застосунку: adam@agilix.dog.