Любой селлер на Amazon сталкивается с проблемой: ручное управление листингами, ценами и заказами на нескольких маркетплейсах — ад, особенно при обороте сотен SKU. Ошибки в цене (на 0.01$ дешевле — потеря продажи, дороже — бойкот), несинхронизированный инвентарь (продали на сайте, а на Amazon уже нет), опоздание с обработкой заказов (метрики падают). Мы автоматизируем это через Amazon Selling Partner API (SP-API) — современную замену устаревшему MWS. Наш опыт: интеграции для магазинов с каталогом до 50 000 товаров и 3+ регионами. Гарантируем стабильную работу без просадок по метрикам — наш стек тестирован тысячами продавцов. Средняя экономия от автоматизации — 150 000–300 000 ₽ в год за счёт сокращения ручного труда и снижения ошибок. Окупаемость интеграции составляет 2–3 месяца.
Аутентификация SP-API
SP-API использует AWS Signature Version 4 и OAuth2 (Login with Amazon). Для работы нужны IAM-роль и refresh token. Типичный код на Python:
import boto3
from sp_api.api import Products, Orders, Inventories
from sp_api.base import Marketplaces, Credentials
credentials = Credentials(
refresh_token = os.environ['SP_REFRESH_TOKEN'],
lwa_app_id = os.environ['LWA_APP_ID'],
lwa_client_secret = os.environ['LWA_CLIENT_SECRET'],
aws_access_key = os.environ['AWS_ACCESS_KEY'],
aws_secret_key = os.environ['AWS_SECRET_KEY'],
role_arn = os.environ['SP_API_ROLE_ARN'],
)
Создание/обновление листинга
from sp_api.api import Listings
listings = Listings(credentials=credentials, marketplace=Marketplaces.DE)
def upsert_listing(product: dict) -> None:
listing_body = {
'productType': product['amazon_product_type'],
'attributes': {
'item_name': [{'value': product['name'], 'language_tag': 'de_DE'}],
'brand': [{'value': product['brand']}],
'description': [{'value': product['description'], 'language_tag': 'de_DE'}],
'list_price': [{
'currency': 'EUR',
'value': product['price'],
}],
'main_product_image_locator': [{'media_location': product['main_image']}],
},
}
listings.put_listings_item(
sellerId=SELLER_ID,
sku=product['sku'],
marketplaceIds=[Marketplaces.DE.marketplace_id],
body=listing_body,
)
Как SP-API решает проблему синхронизации цен и остатков?
Amazon не позволяет напрямую загружать цены и остатки из вашего склада — всё должно идти через API. Мы используем два основных инструмента:
from sp_api.api import Pricing, FbaInventory
pricing = Pricing(credentials=credentials, marketplace=Marketplaces.US)
pricing.get_competitive_pricing(Asins=[asin])
fba = FbaInventory(credentials=credentials, marketplace=Marketplaces.US)
summary = fba.get_inventory_summaries(granularityType='Marketplace', granularityId=Marketplaces.US.marketplace_id)
Это позволяет обновлять цены в зависимости от конкурентов и своевременно сообщать о недостатке товара на FBA.
Почему SP-API лучше MWS?
| Критерий | MWS | SP-API |
|---|---|---|
| Протокол | SOAP/XML | REST/JSON |
| Аутентификация | Простой токен | AWS SigV4 + LWA OAuth2 |
| Уведомления | Polling | Push через SQS |
| Регионы | Один endpoint отдельно | Единая авторизация, разные endpoints |
SP-API даёт в 3 раза меньше ошибок тайм-аута и поддерживает больше конечных точек (например, A+ Content, FBA Inbound).
Отказоустойчивость и уведомления
Используем ретраи с exponential backoff, пул токенов и мониторинг квот SP-API. Если Amazon возвращает TooManyRequests, очередь запросов не теряется — данные сохраняются в Redis и постепенно отправляются. Мы также настраиваем SQS для уведомлений о новых заказах:
from sp_api.api import Notifications
notif = Notifications(credentials=credentials)
notif.create_subscription(
notificationType='ORDER_CHANGE',
body={
'payloadVersion': '1.0',
'destinationId': SQS_QUEUE_ARN,
}
)
Согласно документации SP-API (https://developer-docs.amazon.com/sp-api/docs), push-уведомления доставляются менее чем за 5 секунд.
Получение заказов
from sp_api.api import Orders as SpOrders
from datetime import datetime, timedelta
orders_api = SpOrders(credentials=credentials, marketplace=Marketplaces.DE)
orders = orders_api.get_orders(
MarketplaceIds=[Marketplaces.DE.marketplace_id],
CreatedAfter=(datetime.utcnow() - timedelta(hours=24)).isoformat(),
OrderStatuses=['Pending', 'Unshipped'],
)
Специфика регионов
Amazon имеет региональные endpoint'ы: sellingpartnerapi-na.amazon.com (US/CA/MX), sellingpartnerapi-eu.amazon.com (EU/UK/IN), sellingpartnerapi-fe.amazon.com (JP/AU). У каждого свои marketplace_id. В проекте мы автоматически определяем регион по ASIN или указываем вручную.
Процесс интеграции и сроки
| Этап | Длительность, дни | Детали |
|---|---|---|
| Аналитика | 2–3 | Изучаем ассортимент, регионы, текущие болевые точки |
| Проектирование | 3–5 | Выбираем архитектуру (монолит или микросервисы), решаем вопросы IAM |
| Разработка | 10–15 | Кодим, покрываем unit- и интеграционными тестами с песочницей Amazon |
| Тестирование | 3–5 | На staging с реальными данными (без влияния на продакшен) |
| Деплой | 2–3 | Выкатка в production, мониторинг 48 часов |
Ориентировочный срок: 20–30 рабочих дней (в зависимости от количества регионов и сложности логистики). Стоимость рассчитывается индивидуально — мы не называем цену без знакомства с проектом.
Как настроить аутентификацию SP-API за 5 шагов?
- Зарегистрируйте аккаунт разработчика на Amazon Developer Portal.
- Создайте IAM-пользователя с политикой
AmazonSellingPartnerAPIFullAccess. - Зарегистрируйте SP-API приложение и получите LWA-клиентские ключи.
- Выполните OAuth2-авторизацию для получения refresh token.
- Настройте роли IAM и сохраните credentials в защищённом хранилище (AWS Secrets Manager).
Типичные ошибки при самостоятельной интеграции
- Неверная IAM-роль — приложение не получает доступ к данным.
- Отсутствие ретраев при лимитах квот — теряются заказы.
- Игнорирование разницы в налоговых правилах регионов (например, VAT в EU).
- Неправильный парсинг ответов — вылетает при изменении схемы Amazon.
Мы закладываем обработку всех этих кейсов и даём гарантию на код.
Как мы ускоряем выход на рынок?
Благодаря готовым шаблонам и библиотекам, мы сокращаем типовую интеграцию на 40%. Например, настройка листингов для нового региона занимает 1 день вместо 3. Это подтверждает практика: один из клиентов с 20 000 SKU вышел на Amazon UK за 2 недели.
Свяжитесь с нами для предварительной оценки вашего проекта — подготовим прототип за 2 дня. Закажите пилотную интеграцию на одном регионе: убедитесь в качестве и окупаемости.







