Всем привет.
Есть необходимость выгрузки заказов в 1с. 1с пилиная 4мя человеками и стандартного модуля обмена там уже нет.
Есть скрипт, который должен сохранять заказы в папку 1c на сервере.
Он рабочий. Работает на старом сайте.
Беда в том что мы ставим новый сайт, а скрипт не работает на новом, быть может кто может подсказать что делаю не так.
<?
define("CATALOG_EXPORT_FILE", $_SERVER["DOCUMENT_ROOT"]."/1c/price.dat");
define("ORDERS_EXPORT_DIR", $_SERVER["DOCUMENT_ROOT"]."/1c/orders/");
function GetCatalogToExport(){
if(CModule::IncludeModule("iblock")&&
CModule::IncludeModule("catalog")){
$arFilter = array(
"IBLOCK_ID" => CATALOG_IBLOCK_ID,
"ACTIVE" => "Y"
);
$dbElement = CIBlockElement::GetList(array("ID"=>"ASC"), $arFilter);
while($arElement = $dbElement->GetNext()){
//$arList[$arList["ID"]] = $arList["NAME"];
$dbPrice = CPrice::GetList(
array("CATALOG_GROUP_ID"=>"ASC"),
array("PRODUCT_ID" => $arElement["ID"])
);
while($arPrice = $dbPrice->GetNext()){
$arElement["PRICE"][] = $arPrice;
}
$arReturn[] = $arElement;
}
return $arReturn;
}
}
function StrCatalogExport(){
$str = "";
$arCatalog = GetCatalogToExport();
foreach($arCatalog as $arElement){
$name = str_replace("\t", "", $arElement["NAME"]);
$str .= $arElement["ID"]."\t".trim($name);
foreach($arElement["PRICE"] as $arPrice){
$str .= "\t".$arPrice["CATALOG_GROUP_NAME"]."/".$arPrice["PRICE"];
}
$str .= "\n";
}
return $str;
}
function SaveCatalogToFile(){
$strCatalog = StrCatalogExport();
file_put_contents(CATALOG_EXPORT_FILE, $strCatalog);
}
//orders
function SaveOrderToFile($ID){
if(CModule::IncludeModule("sale")){
$arOrder = CSaleOrder::GetByID($ID);
$dbProp = CSaleOrderPropsValue::GetList(
array("SORT" => "ASC"),
array("ORDER_ID" => $ID)
);
$arReturn["ORDER"] = $arOrder;
while($arProp = $dbProp->GetNext()){
$arReturn["PROP"][$arProp["CODE"]] = $arProp;
}
$arBasketItems = array();
$dbBasketItems = CSaleBasket::GetList(
array("DATE_INSERT" => "DESC"),
array("LID" => SITE_ID, "ORDER_ID" => $ID),
false,
false,
array("ID",
"MODULE",
"PRODUCT_ID",
"QUANTITY",
"PRICE",
"WEIGHT")
);
while($arItem = $dbBasketItems->Fetch()){
$arReturn["BASKET"][] = $arItem;
}
$str = $arOrder["ID"]."\t".$arOrder["PRICE"]."\t".$arOrder["DATE_INSERT"]."\n";
$str .= $arReturn["PROP"]["LAST_NAME"]["VALUE"]."\t".$arReturn["PROP"]["NAME"]["VALUE"]."\t".$arReturn["PROP"]["SECOND_NAME"]["VALUE"]."\n";
$str .= $arReturn["PROP"]["PHONE"]["VALUE"]."\n";
$str .= $arReturn["PROP"]["CITY"]["VALUE"].", р. ".$arReturn["PROP"]["AREA"]["VALUE"].", ул. ".$arReturn["PROP"]["DELIVERY_STREET"]["VALUE"].", д. ".$arReturn["PROP"]["DELIVERY_DOM"]["VALUE"].", кв./оф. ".$arReturn["PROP"]["DELIVERY_KV"]["VALUE"].", этаж ".$arReturn["PROP"]["DELIVERY_ET"]["VALUE"].", под. ".$arReturn["PROP"]["DELIVERY_PD"]["VALUE"].", персон ".$arReturn["PROP"]["DELIVERY_PERS"]["VALUE"]."\n";
$str .= $arReturn["PROP"]["COMMENT"]["VALUE"]."\n";
$str .= "@@@";
foreach($arReturn["BASKET"] as $arProduct){
$str .= "\n".$arProduct["PRODUCT_ID"]."\t".$arProduct["QUANTITY"]."\t".$arProduct["PRICE"];
}
file_put_contents(ORDERS_EXPORT_DIR.$arOrder["ID"].".ord", $str);
//return $arReturn;
}
}
?>
это сам файл скрипта.
Обработчик кину в комент к этому сообщению. Папки созданы по путям.