Skip to content

Библиотека для работы с Wildberries API

Notifications You must be signed in to change notification settings

Dakword/WBSeller

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WBSeller API

Библиотека для работы с Wildberries API https://openapi.wb.ru

📝 Лог изменений

$wbSellerAPI = new \Dakword\WBSeller\API($options = [
    'masterkey' => 'token',
    //'keys' => [...],
    //'apiurls' => [...],
    //'locale' => 'ru'
]);
// API Контента
$contentAPI = $wbSellerAPI->Content();
$contentAPI->getCardsList(); // Получить список карточек

Поддерживаемые API

📖 Документация

API Endpoint
Общее $wbSellerAPI->Common()
Контент $wbSellerAPI->Content()
Цены и скидки $wbSellerAPI->Prices()
Маркетплейс $wbSellerAPI->Marketplace()
Статистика $wbSellerAPI->Statistics()
Аналитика $wbSellerAPI->Analytics()
Продвижение $wbSellerAPI->Adv()
Рекомендации $wbSellerAPI->Recommends()
Вопросы $wbSellerAPI->Questions()
Отзывы $wbSellerAPI->Feedbacks()
Тарифы $wbSellerAPI->Tariffs()
Чат с покупателями $wbSellerAPI->Chat()
Возвраты покупателями $wbSellerAPI->Returns()
Документы $wbSellerAPI->Documents()
Календарь акций $wbSellerAPI->Calendar()
Поставки $wbSellerAPI->Supplies()

Декодирование токена

try {
    $token = new \Dakword\WBSeller\APIToken('eyJhbGciOiJFUzI1NiIs...');
} catch (\Dakword\WBSeller\Exception\WBSellerException $exc) {
    echo $exc->getMessage(); // Неверный формат токена
}

echo $token->expireDate()->format('Y-m-d H:i:s'); // 2024-09-20 16:21:04
echo $token->isExpired() ? 'Просроченный' : 'Действительный';
echo $token->isReadOnly() ? 'Только чтение' : 'Чтение и запись';
echo $token->isTest() ? 'Для тестовой среды' : 'Рабочий';
echo $token->sellerId(); // 284034
echo $token->sellerUUID(); // 123e4567-e89b-12d3-a456-426655440000
echo $token->accessTo('marketplace') ? 'Yes' : 'No'; // Yes
echo $token->accessTo('common') ? 'Yes' : 'No'; // Yes
echo $token->accessTo('chat') ? 'Yes' : 'No'; // No
echo implode(',', $token->accessList()); // 'Цены и скидки, Маркетплейс, Документы'
echo implode(',', array_keys($token->accessList())); // '3, 4, 12' - Позиции бита
echo $token; // eyJhbGciOiJFUzI1NiIs...
print_r($token->getPayload());

Примеры использования WBSeller API

$wbSellerAPI = new \Dakword\WBSeller\API([
    'keys' => [
        'content' => 'Content_key',
        'feedbacks' => 'FB_key',
        'marketplace' => 'Marketplace_key',
        'questions' => 'FB_key',
    ],
    'masterkey' => 'multi_key', // 'content' + 'prices' + ...
    'apiurls' => [
        'content'         => 'https://suppliers-api.wb.ru',
        'feedbacks'       => 'https://feedbacks-api.wildberries.ru',
        'adv'             => 'https://advert-api-sandbox.wildberries.ru',
        'analytics'       => 'https://abc.site.ru',
    ],
    'locale' => 'ru'
]);

// Proxy
$wbSellerAPI->useProxy('http://122.123.123.123:8088');
// Locale
$wbSellerAPI->setLocale('en');

$contentApi = $wbSellerAPI->Content();
$pricesApi = $wbSellerAPI->Prices();
$marketApi = $wbSellerAPI->Marketplace();

// subAPI контента - теги
$tagsApi = $wbSellerAPI->Content()->Tags();

// Получить список НМ
$result = $contentApi->getCardsList();
if (!$result->error) {
    var_dump($result->cards, $result->cursor);
}

// Получение информации по ценам и скидкам
$info = $pricesApi->getPrices();
var_dump($info);

// Cписок складов поставщика
$warehouses = $wbSellerAPI->Marketplace()->Warehouses()->list();
var_dump($warehouses);

// Заказы FBS (С автоповтором запросов 💡)
$orders = $marketApi->retryOnTooManyRequests(10, 1000)->getOrders();
var_dump($orders);

// Создание КТ
try {
    $createCardResult = $contentApi->createCard([
        'subjectID' => 105,
        'variants' => [
            [
                'vendorCode' => 'A0001',
                'title' => 'Наименование',
                'description' => 'Описание',
                'brand' => 'Бренд',
                'dimensions' => [
                    'length' => 55,
                    'width' => 40,
                    'height' => 15,
                ],
                'characteristics' => [
                    [
                        'id' => 12,
                        'value' => 'свободный крой',
                    ],
                    [
                        'id' => 88952,
                        'value' => 200,
                    ],
                    [
                        'id' => 14177449,
                        'value' => ['red'],
                    ],
                ],
                'sizes' => [
                    [
                        'techSize' => '39',
                        'wbSize' => '',
                        'price' => (int) 3999.99,
                        'skus' => [ '1000000001' ]
                    ]
                ],
            ],
        ]
    ]);
    if ($createCardResult->error) {
        echo 'Ошибка создания карточки: ' . $createCardResult->errorText;
    } else {
        echo 'Запрос на создание карточки отправлен';
    }
} catch (\Dakword\WBSeller\Exception\WBSellerException $exc) {
    echo 'Исключение при создании карточки: ' . $exc->getMessage();
}