Вызов YML импорта по cron работает не так как хотелось бы

#
Вызов YML импорта по cron работает не так как хотелось бы
Здравствуйте! Пытаюсь сделать внешний файл для импорта через yml, набросал такую заготовку, теоретически должна работать. Импорт происходит, но товары по группам не раскладываются и везде нули вместо цены. Первый шаг кладёт в папки, последующие идут в корень. Как дать понять импорту, что нужно и дальше по папкам раскладывать и цены ставил? Импорт из модуля с точно такими же параметрами и тем же урл проходит верно.


<?

require_once(dirname(__FILE__) . '/' . 'bootstrap.php');

if (!defined('DENY_INI_SET') || !DENY_INI_SET)
{
   set_time_limit(90000);
   ini_set("max_execution_time", "90000");
   ini_set("memory_limit", "512M");
}

$iShopId = 4;
$oShop = Core_Entity::factory('Shop', $iShopId);
define('CURRENT_SITE', $oShop->site_id);
$oSite = Core_Entity::factory('Site', CURRENT_SITE);
Core::initConstants($oSite);

$YML_Controller = new Yml_Controller;
$YML_Controller->downloadUrl('МОЙ_YML_URL.php');

$iShopGroupId = 0;
$iUploadImage = 0;
$iUploadProperties = 1;
$iUpdatePrice = 1;
$iUpdateExists = 1;
$iSearchEverywhere = 0;
$iSearchByVendor = 1;
$iSearchByName = 1;
$iSearchByArticle = 0;
$iSearchByBarcode = 0;
$iDeletePropertyFiles = 0;
$iLimit = 10;
$iDelay = 1;
$iCount = 1;
$iMaxTime = 20;

$YML_Controller
   ->Shop($oShop)
   ->image($iUploadImage)
   ->properties($iUploadProperties)
   ->search_everywhere($iSearchEverywhere)
   ->search_by_vendor($iSearchByVendor)
   ->search_by_name($iSearchByName)
   ->search_by_article($iSearchByArticle)
   ->search_by_barcode($iSearchByBarcode)
   ->delete_property_files($iDeletePropertyFiles)
   ->update_price($iUpdatePrice)
   ->update_exists($iUpdateExists)
   ->limit($iLimit)
   ->count($iCount)
   ->max_time($iMaxTime)
   ->position(Core_Array::getRequest('position', 0))
   ->parent_group_id($iShopGroupId);

$bCompleted = $YML_Controller->importYml();

if ($bCompleted === FALSE){

   $sAdditionalParams = "shop_id={$iShopId}&shop_group_id={$iShopGroupId}&upload_image={$iUploadImage}&upload_properties={$iUploadProperties}&search_everywhere={$iSearchEverywhere}&delete_property_files={$iDeletePropertyFiles}&search_by_vendor={$iSearchByVendor}&search_by_name={$iSearchByName}&search_by_article={$iSearchByArticle}&search_by_barcode={$iSearchByBarcode}&limit={$iLimit}&delay={$iDelay}&count={$iCount}&max_time={$iMaxTime}&update_price={$iUpdatePrice}&update_exists={$iUpdateExists}&position=" . $YML_Controller->position;
      
   Core_Message::show(Core::_('Yml.import_all_items', $YML_Controller->position));
?>
   <script type="text/javascript">
   function set_location()
   {
      window.location.href='/ymlupdate.php?<?=$sAdditionalParams?>';
   }
   setTimeout ('set_location()', <?= $iDelay * 1000?>);
   </script>
   <?php
}
Ускорение сайтов / Любые работы по сайту / Обращайтесь в nivaks-studio.ru
#
Re: Вызов YML импорта по cron работает не так как хотелось бы
nikolajgromkov, добрый день!
YML корректный?
Рубрики создаются?
categoryId у товара заданы?
HostDev.pw - модули для HostCMS, Telegram: @hostdev
#
Re: Вызов YML импорта по cron работает не так как хотелось бы
в том и дело, что если в модуль закинуть этот Yml, то всё окей, в этом и задача, автоматизировать процесс, не ручками делать. Рубрики создаются. Я там и пишу, что они создаются, первые 10 штук товаров (1 шаг) попали в нужную группу, последующие шаги идут в корень.
вот пример товара из yml


<offer id="762" available="true">
<url>https://www.url.ru/products/vzlomostoykiy-seyf-valberg-granit-iii-1368-kl/</url>
<price>151175</price>
<currencyId>RUB</currencyId>
<categoryId>312</categoryId>
<picture>https://www.url.ru/upload/iblock/4b1/1368KL.jpg</picture>
<name>Взломостойкий сейф VALBERG Гранит III-1368 KL</name>
<description> Предназначен для защиты документов и ценностей при пожаре и взломе. Рекомендованная сумма хранения денег до 6.5 млн. руб. для физических лиц и до 2 млн. руб. для юридических лиц. Устойчивость к взлому по ГОСТ Р 50862-2017: класс 3 (ГОСТ Р). 3-х сторонняя усиленная ригельная система запирания защита замков и ригелей от высверливания и выбивания система блокировки ригельного механизма при выбивании замка общая толщина двери - 98 мм; толщина боковых стенок - 55 мм комплектуются ключевым замком KABA MAUER (в комплекте по 2 ключа) устройство для опечатывания отверстие в задней стенке для установки сигнализации наличие анкерного крепления к полу, анкерный болт в комплекте комплектуются ключевым замком KABA MAUER опция: установка трейзера; дополнительные полки </description>
<param name="Внешняя ширина">680</param>
<param name="Внешняя высота">1320</param>
<param name="Внешняя глубина">510</param>
<param name="Внутренняя высота">1187</param>
<param name="Внутренняя ширина">547</param>
<param name="Внутренняя глубина">352</param>
<param name="Вес, кг">502</param>
<param name="Объём, л">235</param>
<param name="Класс взломостойкости">3 класс</param>
<param name="Размеры трейзера, мм (ВхШхГ)">опция</param>
<param name="Количество полок">2</param>
<param name="Тип замка">два ключевых</param>
<param name="Внешний ID">7357</param>
<param name="Производитель">ПРОМЕТ</param>
<param name="Цвет">графит структурированный</param>
<param name="Тип покрытия">эмаль</param>
</offer>


http://joxi.ru/52ak7eRiE1w6ar
Ускорение сайтов / Любые работы по сайту / Обращайтесь в nivaks-studio.ru
Модератор
#
Re: Вызов YML импорта по cron работает не так как хотелось бы
Уточните, каким образом nikolajgromkov писал(а):
window.location.href='/ymlupdate.php?<?=$sAdditionalParams?>';
связано с кроном?
#
Re: Вызов YML импорта по cron работает не так как хотелось бы
пока никаким, для начала хочется процесс визуально увидеть. Будет потом header refresh. Это играет какую-то роль?
Ускорение сайтов / Любые работы по сайту / Обращайтесь в nivaks-studio.ru
Модератор
#
Re: Вызов YML импорта по cron работает не так как хотелось бы
nikolajgromkov,
между шагами группы сохраняются в сессии $_SESSION['YML_GroupsRelation'], после старта сессии на вторых шагах проверьте, есть ли там у вас данные.

При импорте через cron пошагово делать вам в принципе не нужно, limit устанавливаете заведомо бОльшими, как и max_time
#
Re: Вызов YML импорта по cron работает не так как хотелось бы
Благодарю! Не было Core_Session::start();
Ускорение сайтов / Любые работы по сайту / Обращайтесь в nivaks-studio.ru
Модератор
#
Re: Вызов YML импорта по cron работает не так как хотелось бы
nikolajgromkov,
проверьте наличие обновлений модуля, ручной запуск сессии не должен требоваться.
Авторизация