* @license MIT * @link http://retailcrm.ru * @see http://retailcrm.ru/docs */ namespace Intaro\RetailCrm\Component\ApiClient\Traits; use Intaro\RetailCrm\Component\Json\Deserializer; use Intaro\RetailCrm\Model\Api\Response\Cart\CartGetResponse; use Intaro\RetailCrm\Model\Api\Response\Cart\CartResponse; /** * Trait CartTrait * @package Intaro\RetailCrm\Component\ApiClient\Traits */ trait CartTrait { /** * Получение текущей корзины клиента * * @param int $id * @param string $site * @param string $by * * @return CartGetResponse|null */ public function cartGet(int $id, string $site, string $by = 'externalId'): ?CartGetResponse { $response = $this->client->cartGet($id, $site, $by); return Deserializer::deserializeArray($response->getResponseBody(), CartGetResponse::class); } /** * Создание или перезапись данных корзины * * @param array $cart * @param string $site * * @return CartResponse|null */ public function cartSet(array $cart, string $site): ?CartResponse { $response = $this->client->cartSet($cart, $site); return Deserializer::deserializeArray($response->getResponseBody(), CartResponse::class); } /** * Очистка текущей корзины клиента * * @param array $cart * @param string $site * * @return CartResponse|null */ public function cartClear(array $cart, string $site): ?CartResponse { $response = $this->client->cartClear($cart, $site); return Deserializer::deserializeArray($response->getResponseBody(), CartResponse::class); } }