1
0
mirror of synced 2025-02-12 02:09:23 +03:00

adding archive items download (#26)

This commit is contained in:
Sergey 2017-09-14 17:00:56 +03:00 committed by Alex Lushpai
parent e9e405781d
commit 0173c71033
4 changed files with 19 additions and 6 deletions

View File

@ -101,8 +101,10 @@ class MoySkladICMLParser
} }
$icml = $this->ICMLCreate($categories, $assortiment); $icml = $this->ICMLCreate($categories, $assortiment);
$icml->asXML($this->getFilePath()); if (count($categories) > 0 && count($assortiment) > 0) {
$icml->asXML($this->getFilePath());
}
} }
@ -221,13 +223,19 @@ class MoySkladICMLParser
$offset = 0; $offset = 0;
$end = null; $end = null;
$url = self::ASSORT_LIST_URL.'?expand='.self::ASSORTIMENT_EXPAND.'&limit='.self::LIMIT;
$ignoreNoCategoryOffers = isset($this->options['ignoreNoCategoryOffers']) && $this->options['ignoreNoCategoryOffers']; $ignoreNoCategoryOffers = isset($this->options['ignoreNoCategoryOffers']) && $this->options['ignoreNoCategoryOffers'];
$ignoreCategories = $this->getIgnoreProductGroupsInfo(); $ignoreCategories = $this->getIgnoreProductGroupsInfo();
if (isset($this->options['archivedGoods']) && $this->options['archivedGoods'] === true) {
$url .= '&archived=All';
}
while (true) { while (true) {
$response = $this->requestJson(self::ASSORT_LIST_URL.'?expand='.self::ASSORTIMENT_EXPAND.'&limit='.self::LIMIT.'&offset='.$offset); $response = $this->requestJson($url.'&offset='.$offset);
if ($response && $response['rows']) { if ($response && $response['rows']) {
foreach ($response['rows'] as $assortiment) { foreach ($response['rows'] as $assortiment) {

View File

@ -45,6 +45,8 @@ c) `shopname` заменить на название Вашего магазин
d) в строке `'file' => 'test.xml'`, заменить `test.xml` на любое другое название (например, `catalog.xml`, расширение файла оставить то же), либо оставить без изменения. d) в строке `'file' => 'test.xml'`, заменить `test.xml` на любое другое название (например, `catalog.xml`, расширение файла оставить то же), либо оставить без изменения.
e) При необходимости включения в генерацию архивных товаров и модификаций в строке `'archivedGoods' => false` необходимо заменить значение `false` на `true`.
4) После настройки добавить задачу в cron: `* */4 * * * php /путь_к_файлу_скрипта/example.php` (данная запись подразумевает автоматический запуск генерации файла каталога каждый день раз в 4 часа). 4) После настройки добавить задачу в cron: `* */4 * * * php /путь_к_файлу_скрипта/example.php` (данная запись подразумевает автоматический запуск генерации файла каталога каждый день раз в 4 часа).
5) Запустить генерацию вручную (командой `php /путь_к_файлу_скрипта/example.php`), чтобы в папке со скриптом появился файл каталога в формате xml. 5) Запустить генерацию вручную (командой `php /путь_к_файлу_скрипта/example.php`), чтобы в папке со скриптом появился файл каталога в формате xml.
@ -57,6 +59,7 @@ d) в строке `'file' => 'test.xml'`, заменить `test.xml` на лю
* `file` - Имя файла с итоговым icml без пути (по умолчанию: shopname.catalog.xml) * `file` - Имя файла с итоговым icml без пути (по умолчанию: shopname.catalog.xml)
* `directory` - Директория для итогового icml файла (по умолчанию: текущая директория) * `directory` - Директория для итогового icml файла (по умолчанию: текущая директория)
* `'archivedGoods'` - опция для включения в генерацию архивных товаров и торговых предложений (принимает значения `true` или `false`)
* `ignoreCategories` - массив с ключами: * `ignoreCategories` - массив с ключами:
* `ids` - Массив c `id` групп товаров, которые должны быть проигнорированы * `ids` - Массив c `id` групп товаров, которые должны быть проигнорированы
* `externalCodes` - Массив c `внешними кодами` групп товаров, которые должны быть проигнорированы * `externalCodes` - Массив c `внешними кодами` групп товаров, которые должны быть проигнорированы
@ -76,4 +79,4 @@ d) в строке `'file' => 'test.xml'`, заменить `test.xml` на лю
* Application website - URL сайта * Application website - URL сайта
* Email - email администаротора сайта * Email - email администаротора сайта
* Description - Описание сайта * Description - Описание сайта
После создания приложения отобразится два поля `Client ID` и `Client secret`. Нам потребуется только `Client ID` который требуется вставить в $options. После создания приложения отобразится два поля `Client ID` и `Client secret`. Нам потребуется только `Client ID` который требуется вставить в $options.

View File

@ -27,9 +27,10 @@ Options is array with next keys:
* `file` - filename with result icml without path (default: shopname.catalog.xml) * `file` - filename with result icml without path (default: shopname.catalog.xml)
* `directory` - target directory for icml file (default: current directory) * `directory` - target directory for icml file (default: current directory)
* `'archivedGoods'` - option for inclusion in the generation of archived goods and trade offers (takes the values of `true` or` false`)
* `ignoreCategories` - array with keys: * `ignoreCategories` - array with keys:
* `ids` - array with GoodFolder `id` for ignore * `ids` - array with GoodFolder `id` for ignore
* `externalCodes` - array with GoodFolder `externalcode` for ignore * `externalCodes` - array with GoodFolder `externalcode` for ignore
* `ignoreNoCategoryOffers` - If `true` goods that do not belong to any category are ignored * `ignoreNoCategoryOffers` - If `true` goods that do not belong to any category are ignored
All options keys aren't required All options keys aren't required

View File

@ -10,8 +10,9 @@ $parser = new MoySkladICMLParser(
array( array(
'directory' => __DIR__, 'directory' => __DIR__,
'file' => 'test.xml', 'file' => 'test.xml',
'archivedGoods' => false,
) )
); );
// generate // generate
$parser->generateICML(); $parser->generateICML();