phpsoftbox / wildberries
Wildberries API client component for the PhpSoftBox framework
Requires
- php: ^8.4
- phpsoftbox/collection: dev-master
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
- psr/http-message: ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.93
- phpsoftbox/cli-app: dev-master
- phpsoftbox/code-generator: dev-master
- phpsoftbox/cs-fixer: ^1.1.0
- phpsoftbox/http-message: dev-master
- phpunit/phpunit: ^11.2
- symfony/yaml: ^7.0
This package is auto-updated.
Last update: 2026-08-01 11:55:19 UTC
README
About
phpsoftbox/wildberries — API-клиент Wildberries на базе PSR-18.
Компонент включает:
WildberriesApiClientс поддержкой нескольких API-хостов;- универсальные HTTP-методы
get/post/put/patch/delete/request; - секции API, сгенерированные из OpenAPI (
general,products,ordersFbs,ordersDbw,ordersDbs,inStorePickup,ordersFbw,promotion,communications,tariffs,analytics,reports,finances); - ответы в
WildberriesApiResponse, совместимом сPhpSoftBox\Collection\Collection; WildberriesApiResponse::makeDto()для явного преобразования ответа в DTO;WildberriesExceptionсо статусом и payload.
Quick Start
use PhpSoftBox\Http\Message\RequestFactory; use PhpSoftBox\Http\Message\StreamFactory; use PhpSoftBox\Wildberries\WildberriesApiClient; $client = new WildberriesApiClient( token: $_ENV['WILDBERRIES_API_TOKEN'], httpClient: $psr18Client, requestFactory: new RequestFactory(), streamFactory: new StreamFactory(), authorizationScheme: 'Bearer', ); // Низкоуровневый вызов $stocks = $client->marketplace()->get('/api/v3/orders/new'); // Вызов через секцию API $parents = $client->products()->objectParentAll();
DTO ответы
Wrapper-методы остаются совместимыми с Collection. Если для endpoint-а есть сгенерированный DTO, его можно получить явно:
$parents = $client->products()->objectParentAll()->makeDto();
Для низкоуровневых вызовов работает та же карта DTO:
$response = $client->marketplace() ->put('/api/v3/orders/123/meta/gtin', ['gtin' => '04601234567890']) ->makeDto();
Генерация DTO
DTO генерируются из локальных OpenAPI YAML файлов в docs/:
vendor/bin/psb wildberries:openapi:generate-dto
Команда обновляет src/Dto и src/Dto/WildberriesResponseDtoMap.php. Wrapper-классы не меняются: основной контракт остается WildberriesApiResponse/Collection, а DTO создаются явно через makeDto().
Тестовый контур
Официальная песочница WB требует отдельный токен типа Тестовый контур.
Production-токен и sandbox-токен не взаимозаменяемы. Компонент не читает переменные
окружения и не переключает окружение автоматически: нужные адреса передаёт приложение.
use PhpSoftBox\Wildberries\WildberriesApiBasesEnum; $client = new WildberriesApiClient( token: $testToken, httpClient: $psr18Client, requestFactory: new RequestFactory(), streamFactory: new StreamFactory(), authorizationScheme: 'Bearer', apiBases: WildberriesApiBasesEnum::sandbox(), ); $client->sandbox()->fbsOrdersMake([ 'orders' => [ ['sku' => 'BarcodeTest123', 'amount' => 1], ], ]);
WildberriesApiBasesEnum::sandbox() содержит официальные адреса доступных sandbox-хостов.
При необходимости отдельные адреса по-прежнему можно переопределить через apiBases.
Секция sandbox() использует логический хост marketplace. Специальные FBS-методы
песочницы позволяют создать тестовые сборочные задания и эмулировать отмену, доставку,
получение, отказ, брак и закрытие поставки.
Актуальные ограничения и требования описаны в официальной документации тестового контура WB.