145 lines
3.7 KiB
PHP
145 lines
3.7 KiB
PHP
|
<?php
|
||
|
|
||
|
/**
|
||
|
* PHP version 5.4
|
||
|
*
|
||
|
* TaskTrait
|
||
|
*
|
||
|
* @category RetailCrm
|
||
|
* @package RetailCrm
|
||
|
* @author RetailCrm <integration@retailcrm.ru>
|
||
|
* @license https://opensource.org/licenses/MIT MIT License
|
||
|
* @link http://www.retailcrm.ru/docs/Developers/ApiVersion5
|
||
|
*/
|
||
|
|
||
|
namespace RetailCrm\Methods\V4;
|
||
|
|
||
|
use RetailCrm\Methods\V3\Stores as Previous;
|
||
|
|
||
|
/**
|
||
|
* PHP version 5.4
|
||
|
*
|
||
|
* TaskTrait class
|
||
|
*
|
||
|
* @category RetailCrm
|
||
|
* @package RetailCrm
|
||
|
* @author RetailCrm <integration@retailcrm.ru>
|
||
|
* @license https://opensource.org/licenses/MIT MIT License
|
||
|
* @link http://www.retailcrm.ru/docs/Developers/ApiVersion5
|
||
|
*/
|
||
|
trait Stores
|
||
|
{
|
||
|
use Previous;
|
||
|
|
||
|
/**
|
||
|
* Get store settings
|
||
|
*
|
||
|
* @param string $code get settings code
|
||
|
*
|
||
|
* @return \RetailCrm\Response\ApiResponse
|
||
|
* @throws \RetailCrm\Exception\InvalidJsonException
|
||
|
* @throws \RetailCrm\Exception\CurlException
|
||
|
* @throws \InvalidArgumentException
|
||
|
*
|
||
|
* @return \RetailCrm\Response\ApiResponse
|
||
|
*/
|
||
|
public function storeSettingsGet($code)
|
||
|
{
|
||
|
if (empty($code)) {
|
||
|
throw new \InvalidArgumentException('Parameter `code` must be set');
|
||
|
}
|
||
|
|
||
|
return $this->client->makeRequest(
|
||
|
"/store/setting/$code",
|
||
|
"GET"
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Edit store configuration
|
||
|
*
|
||
|
* @param array $configuration
|
||
|
*
|
||
|
* @throws \RetailCrm\Exception\InvalidJsonException
|
||
|
* @throws \RetailCrm\Exception\CurlException
|
||
|
* @throws \InvalidArgumentException
|
||
|
*
|
||
|
* @return \RetailCrm\Response\ApiResponse
|
||
|
*/
|
||
|
public function storeSettingsEdit(array $configuration)
|
||
|
{
|
||
|
if (!count($configuration) || empty($configuration['code'])) {
|
||
|
throw new \InvalidArgumentException(
|
||
|
'Parameter `configuration` must contains a data & configuration `code` must be set'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
return $this->client->makeRequest(
|
||
|
sprintf('/store/setting/%s/edit', $configuration['code']),
|
||
|
"POST",
|
||
|
['configuration' => json_encode($configuration)]
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Upload store prices
|
||
|
*
|
||
|
* @param array $prices prices data
|
||
|
* @param string $site default: null)
|
||
|
*
|
||
|
* @throws \InvalidArgumentException
|
||
|
* @throws \RetailCrm\Exception\CurlException
|
||
|
* @throws \RetailCrm\Exception\InvalidJsonException
|
||
|
*
|
||
|
* @return \RetailCrm\Response\ApiResponse
|
||
|
*/
|
||
|
public function storePricesUpload(array $prices, $site = null)
|
||
|
{
|
||
|
if (!count($prices)) {
|
||
|
throw new \InvalidArgumentException(
|
||
|
'Parameter `prices` must contains array of the prices'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
return $this->client->makeRequest(
|
||
|
'/store/prices/upload',
|
||
|
"POST",
|
||
|
$this->fillSite($site, ['prices' => json_encode($prices)])
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Get products
|
||
|
*
|
||
|
* @param array $filter (default: array())
|
||
|
* @param int $page (default: null)
|
||
|
* @param int $limit (default: null)
|
||
|
*
|
||
|
* @throws \InvalidArgumentException
|
||
|
* @throws \RetailCrm\Exception\CurlException
|
||
|
* @throws \RetailCrm\Exception\InvalidJsonException
|
||
|
*
|
||
|
* @return \RetailCrm\Response\ApiResponse
|
||
|
*/
|
||
|
public function storeProducts(array $filter = [], $page = null, $limit = null)
|
||
|
{
|
||
|
$parameters = [];
|
||
|
|
||
|
if (count($filter)) {
|
||
|
$parameters['filter'] = $filter;
|
||
|
}
|
||
|
if (null !== $page) {
|
||
|
$parameters['page'] = (int) $page;
|
||
|
}
|
||
|
if (null !== $limit) {
|
||
|
$parameters['limit'] = (int) $limit;
|
||
|
}
|
||
|
|
||
|
return $this->client->makeRequest(
|
||
|
'/store/products',
|
||
|
"GET",
|
||
|
$parameters
|
||
|
);
|
||
|
}
|
||
|
}
|