PHP code example of dmitrijkalugin / wildberries-api-client
1. Go to this page and download the library: Download dmitrijkalugin/wildberries-api-client library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
dmitrijkalugin / wildberries-api-client example snippets
use DmitrijKalugin\WildberriesApiClient\Services\WildberriesApiService;
class YourController extends Controller
{
public function __construct(
private WildberriesApiService $wildberriesApi
) {}
public function getProducts()
{
$products = $this->wildberriesApi->getCards();
return response()->json($products);
}
}
Wildberries::setToken('your_new_token')->getSellerInfo();
// Проверка соединения с различными сервисами
WildberriesApiService::ping('common'); // common-api
WildberriesApiService::ping('content'); // content-api
WildberriesApiService::ping('marketplace'); // marketplace-api
// Информация о продавце
WildberriesApiService::getSellerInfo();
// Новости портала продавцов
WildberriesApiService::getNews([
'from' => '2024-01-01', // Дата от
'fromID' => 7369 // ID новости от
]);
// Получение списка карточек товаров
$cards = WildberriesApiService::getCards([
'limit' => 100,
'offset' => 0
]);
// Создание карточек товаров
$createResult = WildberriesApiService::createCards([
[
'subjectID' => 105,
'variants' => [
[
'vendorCode' => 'ART-001',
'brand' => 'MyBrand',
'title' => 'Название товара',
'description' => 'Описание товара',
],
],
],
]);
// Обновление карточек товаров
$updateResult = WildberriesApiService::updateCards([
[
'nmID' => 123456,
'title' => 'Новое название товара',
'description' => 'Описание товара'
]
]);
// Получение медиафайлов товара
$media = WildberriesApiService::getMediaFiles(123456);
// Получение списка складов
$warehouses = WildberriesApiService::getWarehouses();
// Получение заказов
$orders = WildberriesApiService::getOrders([
'dateFrom' => '2024-01-01',
'dateTo' => '2024-01-31'
]);
// Получение остатков
$stocks = WildberriesApiService::getStocks([
'dateFrom' => '2024-01-01'
]);
// Обновление остатков
$warehouseId = 123; // ID склада
$stocksUpdate = WildberriesApiService::updateStocks($warehouseId, [
[
'sku' => 'SKU123',
'amount' => 10
]
]);
// Обновление цен
$pricesUpdate = WildberriesApiService::updatePrices([
[
'nmId' => 12345678,
'price' => 1999
]
]);
// Статистика поставок
$incomes = WildberriesApiService::getIncomes([
'dateFrom' => '2024-01-01'
]);
// Статистика продаж
$sales = WildberriesApiService::getSales([
'dateFrom' => '2024-01-01',
'flag' => 0
]);
// Остатки товаров
$stockStats = WildberriesApiService::getStockStatistics([
'dateFrom' => '2024-01-01'
]);
// Получение рекламных кампаний
$campaigns = WildberriesApiService::getAdvertCampaigns();
// Получение отзывов
$feedbacks = WildberriesApiService::getFeedbacks([
'isAnswered' => false,
'take' => 100,
'skip' => 0
]);
// Получение финансовых отчетов
$reports = WildberriesApiService::getFinanceReports([
'dateFrom' => '2024-01-01',
'dateTo' => '2024-01-31'
]);
// GET запрос
$response = WildberriesApiService::get('/api/endpoint', ['param' => 'value']);
// POST запрос
$response = WildberriesApiService::post('/api/endpoint', ['data' => 'value']);
// Запрос к конкретному сервису
$response = WildberriesApiService::requestToService(
'content', // сервис
'GET', // метод
'/content/v2/cards', // endpoint
['query' => ['limit' => 100]]
);
use DmitrijKalugin\WildberriesApiClient\Exceptions\AuthenticationException;
use DmitrijKalugin\WildberriesApiClient\Exceptions\RateLimitException;
use DmitrijKalugin\WildberriesApiClient\Exceptions\WildberriesApiException;
try {
$result = WildberriesApiService::getSellerInfo();
} catch (AuthenticationException $e) {
// Ошибка авторизации (401)
logger()->error('WB Auth Error: ' . $e->getMessage());
} catch (RateLimitException $e) {
// Превышен лимит запросов (429)
logger()->warning('WB Rate Limit: ' . $e->getMessage());
} catch (WildberriesApiException $e) {
// Другие API ошибки
logger()->error('WB API Error: ' . $e->getMessage());
$apiErrors = $e->getApiErrors(); // Дополнительная информация об ошибках
}
return [
// API токен
'token' => env('WILDBERRIES_API_TOKEN'),
// Режим песочницы
'sandbox' => env('WILDBERRIES_SANDBOX', false),
// HTTP настройки
'http' => [
'timeout' => 30,
'retry_attempts' => 3,
'retry_delay' => 1000,
],
// Ограничения запросов
'rate_limiting' => [
'enabled' => true,
'default_limit' => 60,
'burst_limit' => 10,
],
// Логирование
'logging' => [
'enabled' => env('WILDBERRIES_LOGGING', false),
'channel' => env('WILDBERRIES_LOG_CHANNEL', 'default'),
'level' => env('WILDBERRIES_LOG_LEVEL', 'info'),
],
];
use DmitrijKalugin\WildberriesApiClient\Services\WildberriesApiService;
class StockUpdater
{
public function updateStocks(int $warehouseId, array $products)
{
$stocks = [];
foreach ($products as $product) {
$stocks[] = [
'sku' => $product['sku'],
'amount' => $product['quantity']
];
}
try {
$result = WildberriesApiService::updateStocks($warehouseId, $stocks);
logger()->info('Stocks updated successfully', $result);
} catch (\Exception $e) {
logger()->error('Failed to update stocks: ' . $e->getMessage());
throw $e;
}
}
}
class OrderSynchronizer
{
public function syncOrders(string $dateFrom, string $dateTo)
{
try {
$orders = WildberriesApiService::getOrders([
'dateFrom' => $dateFrom,
'dateTo' => $dateTo
]);
foreach ($orders as $order) {
// Сохранение заказа в локальную БД
$this->saveOrderToDatabase($order);
}
} catch (\Exception $e) {
logger()->error('Order sync failed: ' . $e->getMessage());
throw $e;
}
}
}
bash
php artisan vendor:publish --tag=wildberries-config