* @license https://opensource.org/licenses/MIT MIT License * @link http://www.retailcrm.ru/docs/Developers/ApiVersion5 */ namespace RetailCrm\Methods\V5; use RetailCrm\Methods\V4\References as Previous; /** * PHP version 5.4 * * References class * * @category RetailCrm * @package RetailCrm * @author RetailCrm * @license https://opensource.org/licenses/MIT MIT License * @link http://www.retailcrm.ru/docs/Developers/ApiVersion5 */ trait References { use Previous; /** * Get costs groups * * @throws \RetailCrm\Exception\CurlException * @throws \RetailCrm\Exception\InvalidJsonException * * @return \RetailCrm\Response\ApiResponse */ public function costGroups() { return $this->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.' ); } 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() { 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.' ); } 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() { 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.' ); } 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() { 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) { 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.' ); } return $this->client->makeRequest( sprintf('/reference/couriers/%s/edit', $courier['id']), "POST", ['courier' => json_encode($courier)] ); } }