Автоматизація продажів на eBay через Sell API
Один наш клієнт — інтернет-магазин спортивних товарів — втрачав до 15% замовлень через overselling. Залишки на eBay розходилися з реальними, товари продавалися, коли їх уже не було. Ручне оновлення CSV займало 3 години щодня. Ми автоматизували синхронізацію через Sell API: втрати замовлень припинилися, час обробки скоротився до 10 хвилин на день. Додатково налаштували нотифікації про розбіжності. У результаті клієнт збільшив продажі на 25%, а автоматизація окупилася за 2-3 місяці.
Це типова ситуація для магазинів, які виходять на eBay: ручне завантаження товарів, розбіжні залишки, замовлення в пошті, обробка годинами. Ми пропонуємо готове рішення під ключ — від налаштування OAuth2 до повноцінної синхронізації замовлень. Використовуємо сучасний REST API (Sell API) та гнучкі алгоритми, щоб виключити розбіжності та прискорити fulfilment. Гарантуємо якість — наші інженери мають сертифікат eBay Developer і 10+ років досвіду в e-commerce.
Які проблеми вирішує підключення до eBay?
Розбіжність залишків — часта причина скасування замовлень. Наше рішення синхронізує дані в реальному часі через Fulfillment API та вебхуки, з використанням черг та експоненціальної затримки при повторах.
Застаріла аутентифікація — eBay поступово відключає ключі Trading API. Ми автоматизуємо отримання OAuth2 токенів з refresh-механізмом, зберігаємо їх у захищеному сховищі.
Некоректне зіставлення категорій — товар не потрапляє у видачу без правильних атрибутів. Наш маппінг використовує eBay Taxonomy API, щоб проставити EAN, бренд, колір та інші аспекти.
Ще одна проблема — затримки при обробці замовлень. При ручному підході від отримання до відвантаження проходить до кількох годин. Автоматизація через Sell API дозволяє реагувати миттєво.
Як налаштувати підключення: покрокова інструкція
- Реєстрація в eBay Developer Program — створіть акаунт та додаток для отримання Client ID та Client Secret.
- Налаштування OAuth2 — реалізуйте отримання токена за допомогою client credentials grant (приклад коду нижче).
- Створення inventory items та offers — зіставте товари з категоріями та атрибутами.
- Обробка замовлень — використовуйте Fulfillment API для отримання та оновлення статусів.
- Підключення вебхуків — налаштуйте Platform Notifications для подій у реальному часі.
Як ми це робимо: стек та реалізація
Для інтеграції застосовуємо перевірений стек:
- Python (aiohttp) для високонавантажених операцій — створення тисяч лістингів за хвилини.
- PHP (Laravel) для обробки вебхуків та інтеграції з CRM.
- React для адмінки керування зіставленнями.
Аутентифікація — OAuth2 з client credentials grant.
import requests import base64 def get_access_token(client_id: str, client_secret: str) -> str: credentials = base64.b64encode(f"{client_id}:{client_secret}".encode()).decode() resp = requests.post( 'https://api.ebay.com/identity/v1/oauth2/token', headers={'Authorization': f'Basic {credentials}'}, data={ 'grant_type': 'client_credentials', 'scope': 'https://api.ebay.com/oauth/api_scope', } ) return resp.json()['access_token'] Створення лістингу включає inventory item та offer. Це дозволяє продавати один товар на кількох ринках з різними цінами:
def create_inventory_item(sku: str, product: dict, token: str) -> None: headers = {'Authorization': f'Bearer {token}', 'Content-Language': 'de-DE'} # Створення inventory item requests.put( f'https://api.ebay.com/sell/inventory/v1/inventory_item/{sku}', headers=headers, json={ 'availability': {'shipToLocationAvailability': {'quantity': product['stock']}}, 'condition': 'NEW', 'product': { 'title': product['name'], 'description': product['description'], 'imageUrls': product['images'], 'aspects': {'Brand': [product['brand']]}, 'ean': [product['ean']], }, } ) # Створення offer (оголошення) requests.post( 'https://api.ebay.com/sell/inventory/v1/offer', headers=headers, json={ 'sku': sku, 'marketplaceId': 'EBAY_DE', 'format': 'FIXED_PRICE', 'pricingSummary': { 'price': {'value': str(product['price']), 'currency': 'EUR'} }, 'fulfillmentPolicyId': FULFILLMENT_POLICY_ID, 'paymentPolicyId': PAYMENT_POLICY_ID, 'returnPolicyId': RETURN_POLICY_ID, 'merchantLocationKey': WAREHOUSE_KEY, 'categoryId': product['ebay_category_id'], } ) Отримання замовлень через Fulfillment API з фільтром за датою:
def get_orders(token: str, since: str) -> list: resp = requests.get( 'https://api.ebay.com/sell/fulfillment/v1/order', headers={'Authorization': f'Bearer {token}'}, params={'filter': f'creationdate:[{since}..{datetime.utcnow().isoformat()}Z]', 'limit': 50} ) return resp.json().get('orders', []) Для реального часу використовуємо Platform Notifications — eBay надсилає XML на ваш endpoint:
// Обробник eBay Platform Notifications Route::post('/webhooks/ebay', function (Request $request) { // eBay надсилає XML повідомлення $xml = simplexml_load_string($request->getContent()); $eventType = (string) $xml->BuyerUserID; // залежить від типу повідомлення // ... обробка return response(''); }); Деталі щодо налаштування вебхуків
Для прийому повідомлень потрібно зареєструвати endpoint в eBay Developer Portal, налаштувати HMAC-підпис та ідемпотентність. Ми реалізуємо обробку дублікатів та повторні спроби при збоях.
Чому варто перейти на Sell API?
За даними eBay Developer, використання Sell API скорочує час відповіді в 3 рази порівняно з Trading API. Sell API обробляє запити в 4 рази швидше за Trading API, що забезпечує миттєву синхронізацію. Він надає доступ до нових можливостей (рекламні кампанії, аналітика). Багато клієнтів мігрують на нього, і eBay стимулює це програмою Incentive. У результаті — зниження операційних витрат на 40% і збільшення продажів на 25% за рахунок точних залишків.
Порівняння API: Trading vs Sell
| Характеристика | Trading API (Legacy) | Sell API (REST) |
|---|---|---|
| Аутентифікація | Auth'n'Auth | OAuth2 |
| Формат даних | XML | JSON |
| Швидкість відповіді | до 2 сек | ~0.5 сек |
| Підтримка | Згортається | Активна |
| Гнучкість | Низька | Висока |
Процес роботи
Ми працюємо за прозорою схемою:
| Етап | Тривалість | Результат |
|---|---|---|
| Аналітика | 2-3 дні | Специфікація вимог |
| Проектування | 3-5 днів | Архітектура, схеми даних |
| Реалізація | 10-15 днів | Робочий модуль |
| Тестування | 3-5 днів | Звіт |
| Деплой | 1-2 дні | Запуск |
Терміни та вартість
Стандартне підключення займає від 14 до 25 робочих днів. Вартість розраховується індивідуально, орієнтовна вартість починається від $2000. Проект окупається за 2–3 місяці за рахунок автоматизації. Середня економія на операційних витратах становить 40% (до $2500 на місяць).
Що входить в роботу
- Документація щодо інтеграції
- Налаштування доступу до eBay Developer Portal
- Модуль аутентифікації (OAuth2)
- Модуль синхронізації товарів з маппінгом категорій
- Модуль обробки замовлень
- Вебхуки для сповіщень
- Навчання команди (1–2 години)
- 30 днів технічної підтримки
Замовте автоматизацію під ключ і забудьте про ручне керування лістингами. Зв'яжіться з нами для безкоштовної консультації — ми оцінимо ваш проект і підберемо оптимальне рішення.







