Автоматизація продажів на 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 днів технічної підтримки
Замовте автоматизацію під ключ і забудьте про ручне керування лістингами. Зв'яжіться з нами для безкоштовної консультації — ми оцінимо ваш проект і підберемо оптимальне рішення.







