Автоматизация продаж на 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. Он предоставляет доступ к новым возможностям (рекламные кампании, аналитика). Многие клиенты мигрируют на него, и 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 рабочих дней. Стоимость рассчитывается индивидуально. Ориентировочно проект окупается за 2–3 месяца за счёт автоматизации. Средняя экономия на операционных затратах составляет 40%.
Что входит в работу
- Документация по интеграции
- Настройка доступа к eBay Developer Portal
- Модуль аутентификации (OAuth2)
- Модуль синхронизации товаров с маппингом категорий
- Модуль обработки заказов
- Вебхуки для уведомлений
- Обучение команды (1–2 часа)
- 30 дней технической поддержки
Закажите интеграцию под ключ и забудьте о ручном управлении листингами. Свяжитесь с нами для бесплатной консультации — мы оценим ваш проект и подберём оптимальное решение.







