Інтеграція інтернет-магазину з 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.