client->makeRequest( '/reference/cost-groups', "GET" ); } /** * Edit costs groups * * @param array $data * * @throws \InvalidArgumentException * @throws \RetailCrm\Exception\CurlException * @throws \RetailCrm\Exception\InvalidJsonException * * @return \RetailCrm\Response\ApiResponse */ public function costGroupsEdit(array $data) { if (!array_key_exists('code', $data)) { throw new \InvalidArgumentException( 'Data must contain "code" parameter.' ); } if (!array_key_exists('name', $data)) { throw new \InvalidArgumentException( 'Data must contain "name" parameter.' ); } if (!array_key_exists('color', $data)) { throw new \InvalidArgumentException( 'Data must contain "color" parameter.' ); } /* @noinspection PhpUndefinedMethodInspection */ return $this->client->makeRequest( sprintf('/reference/cost-groups/%s/edit', $data['code']), "POST", ['costGroup' => json_encode($data)] ); } /** * Get costs items * * @throws \RetailCrm\Exception\CurlException * @throws \RetailCrm\Exception\InvalidJsonException * * @return \RetailCrm\Response\ApiResponse */ public function costItems() { /* @noinspection PhpUndefinedMethodInspection */ return $this->client->makeRequest( '/reference/cost-items', "GET" ); } /** * Edit costs items * * @param array $data * * @throws \InvalidArgumentException * @throws \RetailCrm\Exception\CurlException * @throws \RetailCrm\Exception\InvalidJsonException * * @return \RetailCrm\Response\ApiResponse */ public function costItemsEdit(array $data) { if (!array_key_exists('code', $data)) { throw new \InvalidArgumentException( 'Data must contain "code" parameter.' ); } if (!array_key_exists('name', $data)) { throw new \InvalidArgumentException( 'Data must contain "name" parameter.' ); } /* @noinspection PhpUndefinedMethodInspection */ return $this->client->makeRequest( sprintf('/reference/cost-items/%s/edit', $data['code']), "POST", ['costItem' => json_encode($data)] ); } /** * Get legal entities * * @throws \RetailCrm\Exception\CurlException * @throws \RetailCrm\Exception\InvalidJsonException * * @return \RetailCrm\Response\ApiResponse */ public function legalEntities() { /* @noinspection PhpUndefinedMethodInspection */ return $this->client->makeRequest( '/reference/legal-entities', "GET" ); } /** * Edit legal entity * * @param array $data * * @throws \InvalidArgumentException * @throws \RetailCrm\Exception\CurlException * @throws \RetailCrm\Exception\InvalidJsonException * * @return \RetailCrm\Response\ApiResponse */ public function legalEntitiesEdit(array $data) { if (!array_key_exists('code', $data)) { throw new \InvalidArgumentException( 'Data must contain "code" parameter.' ); } /* @noinspection PhpUndefinedMethodInspection */ return $this->client->makeRequest( sprintf('/reference/legal-entities/%s/edit', $data['code']), "POST", ['legalEntity' => json_encode($data)] ); } /** * Get couriers * * @throws \RetailCrm\Exception\CurlException * @throws \RetailCrm\Exception\InvalidJsonException * * @return \RetailCrm\Response\ApiResponse */ public function couriersList() { /* @noinspection PhpUndefinedMethodInspection */ return $this->client->makeRequest( '/reference/couriers', "GET" ); } /** * Create courier * * @param array $courier * * @throws \InvalidArgumentException * @throws \RetailCrm\Exception\CurlException * @throws \RetailCrm\Exception\InvalidJsonException * * @return \RetailCrm\Response\ApiResponse */ public function couriersCreate(array $courier) { /* @noinspection PhpUndefinedMethodInspection */ return $this->client->makeRequest( '/reference/couriers/create', "POST", ['courier' => json_encode($courier)] ); } /** * Edit courier * * @param array $courier * * @throws \InvalidArgumentException * @throws \RetailCrm\Exception\CurlException * @throws \RetailCrm\Exception\InvalidJsonException * * @return \RetailCrm\Response\ApiResponse */ public function couriersEdit(array $courier) { if (!array_key_exists('id', $courier)) { throw new \InvalidArgumentException( 'Data must contain "id" parameter.' ); } /* @noinspection PhpUndefinedMethodInspection */ return $this->client->makeRequest( sprintf('/reference/couriers/%s/edit', $courier['id']), "POST", ['courier' => json_encode($courier)] ); } /** * Get units * * @throws \InvalidArgumentException * @throws \RetailCrm\Exception\CurlException * @throws \RetailCrm\Exception\InvalidJsonException * * @return \RetailCrm\Response\ApiResponse */ public function unitsList() { /* @noinspection PhpUndefinedMethodInspection */ return $this->client->makeRequest( '/reference/units', "GET" ); } /** * Edit unit * * @param array $unit * * @throws \InvalidArgumentException * @throws \RetailCrm\Exception\CurlException * @throws \RetailCrm\Exception\InvalidJsonException * * @return \RetailCrm\Response\ApiResponse */ public function unitsEdit(array $unit) { if (empty($unit['code']) || empty($unit['name']) || empty($unit['sym'])) { throw new \InvalidArgumentException( '`code`, `name` and `sym` parameters must not be empty.' ); } /* @noinspection PhpUndefinedMethodInspection */ return $this->client->makeRequest( sprintf('/reference/units/%s/edit', $unit['code']), "POST", ['unit' => json_encode($unit)] ); } /** * Get a list of currencies * * @throws \InvalidArgumentException * @throws \RetailCrm\Exception\CurlException * @throws \RetailCrm\Exception\InvalidJsonException * * @return \RetailCrm\Response\ApiResponse */ public function currenciesList() { /* @noinspection PhpUndefinedMethodInspection */ return $this->client->makeRequest( '/reference/currencies', "GET" ); } }