Доброго времени суток, для синхронизации каталога используется импорт .csv файла.
Скрипт импорта выглядит следующим образом:
Но при запуске из шела, я получаю следующую оишбку:
"Language id is absent - defined site is bad".
А если быть точнее, то вывод выглядит так:
Помогите, пожалуйста, разобраться в данном вопросе.
Скрипт импорта выглядит следующим образом:
Код |
---|
<?php $_SERVER["DOCUMENT_ROOT"] = "/var/www/deployer/data/www/oscoloc"; $DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"]; $siteID = 's1'; define("NO_KEEP_STATISTIC", true); define("NOT_CHECK_PERMISSIONS",true); define("BX_CAT_CRON", true); define('NO_AGENT_CHECK', true); if (preg_match('/^[a-z0-9_]{2}$/i', $siteID) === 1) { define('SITE_ID', $siteID); } else { die('No defined site - $siteID'); } require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); global $DB; if (!defined('LANGUAGE_ID') || preg_match('/^[a-z]{2}$/i', LANGUAGE_ID) !== 1) die('Language id is absent - defined site is bad'); set_time_limit(0); if (!defined("CATALOG_LOAD_NO_STEP")) define("CATALOG_LOAD_NO_STEP", true); if (!\Bitrix\Main\Loader::includeModule('catalog')) die('Can\'t include module'); $profile_id = 0; if (isset($argv[1])) $profile_id = (int)$argv[1]; if ($profile_id<=0) die('No profile id'); $ar_profile = CCatalogImport::GetByID($profile_id); if (!$ar_profile) die('No profile'); $strFile = CATALOG_PATH2IMPORTS.$ar_profile["FILE_NAME"]."_run.php"; if (!file_exists($_SERVER["DOCUMENT_ROOT"].$strFile)) { $strFile = CATALOG_PATH2IMPORTS_DEF.$ar_profile["FILE_NAME"]."_run.php"; if (!file_exists($_SERVER["DOCUMENT_ROOT"].$strFile)) die('No import script'); } $bFirstLoadStep = true; $arSetupVars = array(); $intSetupVarsCount = 0; if ($ar_profile["DEFAULT_PROFILE"] != 'Y') { parse_str($ar_profile["SETUP_VARS"], $arSetupVars); if (!empty($arSetupVars) && is_array($arSetupVars)) $intSetupVarsCount = extract($arSetupVars, EXTR_SKIP); } global $arCatalogAvailProdFields; $arCatalogAvailProdFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_ELEMENT); global $arCatalogAvailPriceFields; $arCatalogAvailPriceFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_CATALOG); global $arCatalogAvailValueFields; $arCatalogAvailValueFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_PRICE); global $arCatalogAvailQuantityFields; $arCatalogAvailQuantityFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_PRICE_EXT); global $arCatalogAvailGroupFields; $arCatalogAvailGroupFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_SECTION); global $defCatalogAvailProdFields; $defCatalogAvailProdFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_ELEMENT); global $defCatalogAvailPriceFields; $defCatalogAvailPriceFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_CATALOG); global $defCatalogAvailValueFields; $defCatalogAvailValueFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_PRICE); global $defCatalogAvailQuantityFields; $defCatalogAvailQuantityFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_PRICE_EXT); global $defCatalogAvailGroupFields; $defCatalogAvailGroupFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_SECTION); global $defCatalogAvailCurrencies; $defCatalogAvailCurrencies = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_CURRENCY); CCatalogDiscountSave::Disable(); include($_SERVER["DOCUMENT_ROOT"].$strFile); CCatalogDiscountSave::Enable(); CCatalogImport::Update( $profile_id, array( "=LAST_USE" => $DB->GetNowFunction() ) ); |
"Language id is absent - defined site is bad".
А если быть точнее, то вывод выглядит так:
Код |
---|
<? define("START_EXEC_PROLOG_BEFORE_1", microtime(true)); $GLOBALS["BX_STATE"] = "PB"; if(isset($_REQUEST["BX_STATE"])) unset($_REQUEST["BX_STATE"]); if(isset($_GET["BX_STATE"])) unset($_GET["BX_STATE"]); if(isset($_POST["BX_STATE"])) unset($_POST["BX_STATE"]); if(isset($_COOKIE["BX_STATE"])) unset($_COOKIE["BX_STATE"]); if(isset($_FILES["BX_STATE"])) unset($_FILES["BX_STATE"]); if(!isset($USER)) {global $USER;} if(!isset($APPLICATION)) {global $APPLICATION;} if(!isset($DB)) {global $DB;} require_once(dirname(__FILE__)."/. ./include.php"); CMain::PrologActions(); ?> Language id is absent - defined site is bad |