soukicz / zbozicz
Zboží.cz conversion tracking
Installs: 988 701
Dependents: 1
Suggesters: 0
Security: 0
Stars: 19
Watchers: 5
Forks: 16
Open Issues: 1
Requires
- php: >=5.6.0
- ext-curl: *
- ext-json: *
- guzzlehttp/psr7: ^1.3|^2.0
Requires (Dev)
- phpstan/phpstan: ~0.9|~0.10|~0.11
- phpunit/phpunit: ~9.5
Suggests
- composer/ca-bundle: Https certificates bundle
README
Pokročilé měření konverzí Zboží.cz
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.
Odeslání objednávky
<?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('info@example.org') ->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);
Paralelní odeslání objednávek
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"; }, ]);