Vychází z https://github.com/seznam/zbozi-konverze, ale přidává lepší možnost integrace do větších systémů. Namespace, asynchronní odesílání objednávek atd.
<?php
use Soukicz\Zbozicz\Client;
use Soukicz\Zbozicz\Order;
use Soukicz\Zbozicz\CartItem;
$client = new Client(1234567890, "fedcba9876543210123456789abcdef", true);
$order = new Order('OBJ21101');
$order
->setEmail('[email protected]')
->setDeliveryType('PPL')
->addCartItem((new CartItem)
->setId('ABC1')
->setName('NAZEV PRODUKTU')
->setUnitPrice(1000)
->setQuantity(2)
)
->addCartItem((new CartItem)
->setId('ABC2')
->setName('NAZEV PRODUKTU')
->setUnitPrice(2000)
);
$client->sendOrder($order);
Je možné vytvořit si jen PSR-7 request a data následně odeslat například přes Guzzle. Lze tak jednoduše odesílat objednávky hromadně paralelně.
<?php
use Soukicz\Zbozicz\Client;
use Soukicz\Zbozicz\Order;
use Soukicz\Zbozicz\CartItem;
use GuzzleHttp\Psr7\Response;
use GuzzleHttp\Client\Pool;
$client = new Client(1234567890, "fedcba9876543210123456789abcdef", true);
$requests = [];
foreach($orders as $order){
$requests[$order->geId()] = $client->createRequest($order);
}
$httpClient = new \GuzzleHttp\Client();
$pool = new Pool($httpClient, $requests, [
'concurrency' => 5,
'fulfilled' => function (Response $response, $index) {
echo "Order '$index' accepted\n";
},
'rejected' => function ($reason, $index) {
echo "Order '$index' not accepted: " . $reason . "\n";
},
]);