Интеграция интернет-магазина с Wildberries (API)

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.
Разработка и обслуживание любых видов сайтов:
Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Интеграция интернет-магазина с Wildberries (API)
Сложная
~5 рабочих дней
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    874
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    851

Интеграция интернет-магазина с Wildberries (API)

Wildberries — крупнейший российский маркетплейс. API нестабильно документировано и нередко меняется без предупреждения. Интеграция требует постоянного мониторинга изменений.

Аутентификация

Wildberries использует API-токены, выдаваемые в личном кабинете продавца:

class WildberriesClient
{
    private string $apiToken;
    private string $statsToken;  // отдельный токен для статистики

    public function request(string $method, string $url, array $data = []): array
    {
        return Http::withHeaders([
            'Authorization' => $this->apiToken,
            'Content-Type'  => 'application/json',
        ])->{strtolower($method)}($url, $data)->json();
    }
}

Загрузка товаров

WB работает через карточки товаров — специфичная структура с предметами и характеристиками:

public function createCard(Product $product): void
{
    $payload = [[
        'subjectID'   => $this->getSubjectId($product->category),
        'variants'    => [[
            'vendorCode' => $product->sku,
            'title'      => $product->name,
            'description'=> $product->description,
            'brand'      => $product->brand,
            'dimensions' => [
                'length' => $product->length_cm,
                'width'  => $product->width_cm,
                'height' => $product->height_cm,
                'isValid'=> true,
            ],
            'characteristics' => $this->mapCharacteristics($product),
        ]],
    ]];

    $this->request('POST', 'https://content-api.wildberries.ru/content/v2/cards/upload', $payload);
}

Обновление цен и скидок

WB разделяет базовую цену и скидку:

public function setPriceAndDiscount(string $sku, int $basePrice, int $discountPercent): void
{
    // Установка базовой цены
    $this->request('POST', 'https://discounts-prices-api.wildberries.ru/api/v2/upload/task', [
        'data' => [[
            'nmID'  => $this->getNmId($sku),
            'price' => $basePrice,
        ]]
    ]);

    // Установка скидки
    $this->request('POST', 'https://discounts-prices-api.wildberries.ru/api/v2/upload/task', [
        'data' => [[
            'nm'       => $this->getNmId($sku),
            'discount' => $discountPercent,
        ]]
    ]);
}

Обновление остатков (FBS)

public function updateStocks(array $items): void
{
    // items: [['sku' => 'SKU-123', 'amount' => 10]]
    $this->request('PUT', 'https://marketplace-api.wildberries.ru/api/v3/stocks/{warehouseId}', [
        'stocks' => array_map(fn($item) => [
            'sku'    => $item['sku'],
            'amount' => $item['amount'],
        ], $items)
    ]);
}

Получение заказов FBS

public function getOrders(string $since): array
{
    return $this->request('GET', 'https://marketplace-api.wildberries.ru/api/v3/orders', [
        'limit'     => 1000,
        'next'      => 0,
        'dateFrom'  => strtotime($since),
    ])['orders'] ?? [];
}

Типичные сложности

  • Нестабильная документация: методы меняются, URL устаревают
  • Разные домены для разных API: content-api, discounts-prices-api, marketplace-api, statistics-api — у каждого свой базовый URL и иногда своя авторизация
  • NmID vs vendorCode: WB использует внутренний числовой идентификатор nmID, который нужно сопоставлять с вашим sku/vendorCode
  • Статусы заказов меняются непредсказуемо, нужен polling

Сроки

Интеграция с WB (товары + цены + остатки + заказы): 14–20 рабочих дней с учётом особенностей нестабильного API.