Добрый день, Ребят! Есть проблемка, не знаю, как вывести переменку в инит пхп (PROP_2060)
Сам код для выгрузки файла в csv:
<?php
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
'sale',
'OnSaleOrderSaved',
'saleCSVExport'
);
function saleCSVExport(\Bitrix\Main\Event $event)
{
$parameters = $event->getParameters();
$order = $parameters['ENTITY'];
if (!$order instanceof \Bitrix\Sale\Order)
{
return new \Bitrix\Main\EventResult(
\Bitrix\Main\EventResult::ERROR,
new \Bitrix\Sale\ResultError('Неверный объект заказа', 'SALE_EVENT_WRONG_ORDER'),
'sale'
);
}
AddMessage2Log($order->getField("STATUS_ID"), "sale");
if($order->getField("STATUS_ID") == "P" && !$order->isCanceled() && !$order->isShipped() ) {
$arOrderArray = array();
if (\Bitrix\Main\Loader::includeModule("sale")) {
$arOrderArray["ID"]= $order->getId();
header("content-type:application/csv;charset=UTF-8");
header("Pragma: no-cache");
header("Expires: 0");
$file = fopen($_SERVER['DOCUMENT_ROOT'].'/upload/1C/order'.$arOrderArray["ID"].'.csv', 'w');
$table_head = array("ID","SUM","USER_ID","USER_NAME","EMAIL","ADDRESS","PHONE","COMMENT","PAYMENT","SHIPMENT","STORE_ID","PRODUCT_ID","PRODUCT_NAME","PRODUCT_QUANTITY","PRODUCT_PRICE");
fputcsv($file, $table_head, ";");
$arOrderArray["SUM"] = $order->getPrice();
$arOrderArray["USER_ID"] = $order->getField('USER_ID');
$propertyCollection = $order->getPropertyCollection();
if(!empty($propertyCollection->getPayerName())) {
$arOrderArray["USER_NAME"] = $propertyCollection->getPayerName()->getValue();
} else {
$arOrderArray["USER_NAME"] = 0;
}
if(!empty($propertyCollection->getUserEmail())) {
$arOrderArray["EMAIL"] = $propertyCollection->getUserEmail()->getValue();
} else {
$arOrderArray["EMAIL"] = 0;
}
if(!empty($propertyCollection->getAddress())) {
$arOrderArray["ADDRESS"] = $propertyCollection->getAddress()->getValue();
} else {
$arOrderArray["ADDRESS"] = 0;
}
if(!empty($propertyCollection->getPhone())) {
$arOrderArray["PHONE"] = $propertyCollection->getPhone()->getValue();
} else {
$arOrderArray["PHONE"] = 0;
}
$comment = $order->getField('USER_DESCRIPTION');
$arOrderArray["COMMENT"] = $subcats= str_replace(';',' ',$comment);
if(empty($arOrderArray["COMMENT"])) $arOrderArray["COMMENT"] = 0;
$paymentCollection = $order->getPaymentCollection();
$psArray = array();
foreach ($paymentCollection as $payment) {
$psArray[] = $payment->getPaymentSystemName();
}
$arOrderArray["PAYMENT"] = implode(" ", $psArray);
$deliveryCollection = $order->getShipmentCollection();
if(!empty($deliveryCollection->current())) {
$arOrderArray["SHIPMENT"] = $deliveryCollection->current()->getField('DELIVERY_NAME');
$storeID = $deliveryCollection->current()->getStoreId();
if(!empty($storeID)) {
$storeResult = CCatalogStore::GetList(
array('ID' => 'ASC'),
array('ACTIVE' => 'Y','ID'=>$storeID),
false,
false,
array("ID","CODE")
);
if($storeArray = $storeResult->GetNext())
$storeCode = $storeArray["CODE"];
$arOrderArray["STORE_ID"] = $storeCode;
} else {
$arOrderArray["STORE_ID"] = 0;
}
}
$basket = $order->getBasket();
foreach ($basket as $basketItem) {
$arProdArray = array();
//$arProdArray["PRODUCT_ID"] = $basketItem->getProductId();
if (\Bitrix\Main\Loader::includeModule("iblock")) {
$arSelect = Array("ID", "IBLOCK_ID", "NAME","PROPERTY_*");
$arFilter = Array("ID"=> $basketItem->getProductId(), "ACTIVE"=>"Y");
$prodRes = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>50), $arSelect);
$arProdArray["PRODUCT_NAME"] = [];
while($ob = $prodRes->GetNextElement()){
$arProps = $ob->GetProperties();
$arProdArray["ARTICLE"] = $arProps["CML2_ARTICLE"]["VALUE"];
$arProdArray["PRODUCT_NAME"][] = $ob->getFields()['NAME'];
}
$arProdArray["PRODUCT_NAME"] = implode(', ', $arProdArray["PRODUCT_NAME"]);
}
$arProdArray["PRODUCT_QUANTITY"] = $basketItem->getQuantity();
$arProdArray["PRODUCT_PRICE"] = $basketItem->getPrice();
$arRow = array_merge($arOrderArray, $arProdArray);
fputcsv($file, $arRow, ";");
//AddMessage2Log($arRow, "sale");
}
fclose($file);
}
}
}
if (file_exists($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/include/agents.php"))
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/include/agents.php");
?>
Сам код для выгрузки файла в csv:
<?php
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
'sale',
'OnSaleOrderSaved',
'saleCSVExport'
);
function saleCSVExport(\Bitrix\Main\Event $event)
{
$parameters = $event->getParameters();
$order = $parameters['ENTITY'];
if (!$order instanceof \Bitrix\Sale\Order)
{
return new \Bitrix\Main\EventResult(
\Bitrix\Main\EventResult::ERROR,
new \Bitrix\Sale\ResultError('Неверный объект заказа', 'SALE_EVENT_WRONG_ORDER'),
'sale'
);
}
AddMessage2Log($order->getField("STATUS_ID"), "sale");
if($order->getField("STATUS_ID") == "P" && !$order->isCanceled() && !$order->isShipped() ) {
$arOrderArray = array();
if (\Bitrix\Main\Loader::includeModule("sale")) {
$arOrderArray["ID"]= $order->getId();
header("content-type:application/csv;charset=UTF-8");
header("Pragma: no-cache");
header("Expires: 0");
$file = fopen($_SERVER['DOCUMENT_ROOT'].'/upload/1C/order'.$arOrderArray["ID"].'.csv', 'w');
$table_head = array("ID","SUM","USER_ID","USER_NAME","EMAIL","ADDRESS","PHONE","COMMENT","PAYMENT","SHIPMENT","STORE_ID","PRODUCT_ID","PRODUCT_NAME","PRODUCT_QUANTITY","PRODUCT_PRICE");
fputcsv($file, $table_head, ";");
$arOrderArray["SUM"] = $order->getPrice();
$arOrderArray["USER_ID"] = $order->getField('USER_ID');
$propertyCollection = $order->getPropertyCollection();
if(!empty($propertyCollection->getPayerName())) {
$arOrderArray["USER_NAME"] = $propertyCollection->getPayerName()->getValue();
} else {
$arOrderArray["USER_NAME"] = 0;
}
if(!empty($propertyCollection->getUserEmail())) {
$arOrderArray["EMAIL"] = $propertyCollection->getUserEmail()->getValue();
} else {
$arOrderArray["EMAIL"] = 0;
}
if(!empty($propertyCollection->getAddress())) {
$arOrderArray["ADDRESS"] = $propertyCollection->getAddress()->getValue();
} else {
$arOrderArray["ADDRESS"] = 0;
}
if(!empty($propertyCollection->getPhone())) {
$arOrderArray["PHONE"] = $propertyCollection->getPhone()->getValue();
} else {
$arOrderArray["PHONE"] = 0;
}
$comment = $order->getField('USER_DESCRIPTION');
$arOrderArray["COMMENT"] = $subcats= str_replace(';',' ',$comment);
if(empty($arOrderArray["COMMENT"])) $arOrderArray["COMMENT"] = 0;
$paymentCollection = $order->getPaymentCollection();
$psArray = array();
foreach ($paymentCollection as $payment) {
$psArray[] = $payment->getPaymentSystemName();
}
$arOrderArray["PAYMENT"] = implode(" ", $psArray);
$deliveryCollection = $order->getShipmentCollection();
if(!empty($deliveryCollection->current())) {
$arOrderArray["SHIPMENT"] = $deliveryCollection->current()->getField('DELIVERY_NAME');
$storeID = $deliveryCollection->current()->getStoreId();
if(!empty($storeID)) {
$storeResult = CCatalogStore::GetList(
array('ID' => 'ASC'),
array('ACTIVE' => 'Y','ID'=>$storeID),
false,
false,
array("ID","CODE")
);
if($storeArray = $storeResult->GetNext())
$storeCode = $storeArray["CODE"];
$arOrderArray["STORE_ID"] = $storeCode;
} else {
$arOrderArray["STORE_ID"] = 0;
}
}
$basket = $order->getBasket();
foreach ($basket as $basketItem) {
$arProdArray = array();
//$arProdArray["PRODUCT_ID"] = $basketItem->getProductId();
if (\Bitrix\Main\Loader::includeModule("iblock")) {
$arSelect = Array("ID", "IBLOCK_ID", "NAME","PROPERTY_*");
$arFilter = Array("ID"=> $basketItem->getProductId(), "ACTIVE"=>"Y");
$prodRes = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>50), $arSelect);
$arProdArray["PRODUCT_NAME"] = [];
while($ob = $prodRes->GetNextElement()){
$arProps = $ob->GetProperties();
$arProdArray["ARTICLE"] = $arProps["CML2_ARTICLE"]["VALUE"];
$arProdArray["PRODUCT_NAME"][] = $ob->getFields()['NAME'];
}
$arProdArray["PRODUCT_NAME"] = implode(', ', $arProdArray["PRODUCT_NAME"]);
}
$arProdArray["PRODUCT_QUANTITY"] = $basketItem->getQuantity();
$arProdArray["PRODUCT_PRICE"] = $basketItem->getPrice();
$arRow = array_merge($arOrderArray, $arProdArray);
fputcsv($file, $arRow, ";");
//AddMessage2Log($arRow, "sale");
}
fclose($file);
}
}
}
if (file_exists($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/include/agents.php"))
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/include/agents.php");
?>