Идея такова: при обмене с 1С (УТ 10.3) создается документ заказ покупателя, в комментарий вносится информация о номере документа на сайте. Я хочу, чтобы помимо этого номера также в 1С передавался и комментарий пользователя. Если внести этот служебный комментарий руками в уже сформированный заказ на сайте, то при обмене информация добавится к имеющемуся "номер документа..."
Я попытался реализовать это так:
Скрытый текст |
|---|
[COLOR=#000000]//-- добавляем в уведомление о заказе название фирмы, способ доставки, способ оплаты, комментарий пользователя[/COLOR] [COLOR=#000000]//-- также заполняем служебный комментарий комментарием пользователя[/COLOR] [COLOR=#000000]AddEventHandler("sale", "OnOrderNewSendEmail", "ModifySaleMails");[/COLOR]
[COLOR=#000000]function ModifySaleMails($orderID, &$eventName, &$arFields)[/COLOR] [COLOR=#000000]{[/COLOR] [COLOR=#000000] $arOrder = CSaleOrder::GetByID($orderID); [/COLOR]
[COLOR=#000000] //-- получаем список свойств[/COLOR] [COLOR=#000000] $order_props = CSaleOrderPropsValue::GetOrderProps($orderID);[/COLOR] [COLOR=#000000] $ordercomment = "";[/COLOR] [COLOR=#000000] $companyname = "";[/COLOR] [COLOR=#000000] $phone = "";[/COLOR] [COLOR=#000000] $address = "";[/COLOR] [COLOR=#000000] $paysystemname = "";[/COLOR] [COLOR=#000000] $deliveryname = "";[/COLOR]
[COLOR=#000000] //-- получаем название компании и комментарий пользователя[/COLOR] [COLOR=#000000] while ($arProps = $order_props->Fetch())[/COLOR] [COLOR=#000000] { [/COLOR] [COLOR=#000000] if ($arProps["CODE"] == "ORDERCOMMENT")[/COLOR] [COLOR=#000000] {[/COLOR] [COLOR=#000000] $ordercomment = ($arProps["VALUE"]);[/COLOR] [COLOR=#000000] }[/COLOR]
[COLOR=#000000] if ($arProps["CODE"] == "COMPANYNAME")[/COLOR] [COLOR=#000000] {[/COLOR] [COLOR=#000000] $companyname = $arProps["VALUE"]; [/COLOR] [COLOR=#000000] }[/COLOR]
[COLOR=#000000] if ($arProps["CODE"] == "PHONE")[/COLOR] [COLOR=#000000] {[/COLOR] [COLOR=#000000] $phone = ($arProps["VALUE"]);[/COLOR] [COLOR=#000000] }[/COLOR]
[COLOR=#000000] if ($arProps["CODE"] == "ADDRESS")[/COLOR] [COLOR=#000000] {[/COLOR] [COLOR=#000000] $address = $arProps["VALUE"]; [/COLOR] [COLOR=#000000] }[/COLOR] [COLOR=#000000] }[/COLOR]
[COLOR=#000000] //-- получаем название службы доставки[/COLOR] [COLOR=#000000] $arDeliv = CSaleDelivery::GetByID($arOrder["DELIVERY_ID"]);[/COLOR] [COLOR=#000000] $deliveryname = "";[/COLOR] [COLOR=#000000] if ($arDeliv)[/COLOR] [COLOR=#000000] {[/COLOR] [COLOR=#000000] $deliveryname = $arDeliv["NAME"];[/COLOR] [COLOR=#000000] }[/COLOR]
[COLOR=#000000] //-- получаем название платежной системы [/COLOR] [COLOR=#000000] $arPaySystem = CSalePaySystem::GetByID($arOrder["PAY_SYSTEM_ID"]);[/COLOR] [COLOR=#000000] $paysystemname = "";[/COLOR] [COLOR=#000000] if ($arPaySystem)[/COLOR] [COLOR=#000000] {[/COLOR] [COLOR=#000000] $paysystemname = $arPaySystem["NAME"];[/COLOR] [COLOR=#000000] }[/COLOR]
[COLOR=#000000] [/COLOR][COLOR=#000000] if ($ordercomment)[/COLOR] [COLOR=#000000] {[/COLOR] [COLOR=#000000] $arOrder["COMMENTS"] = $ordercomment;[/COLOR] [COLOR=#000000] }[/COLOR]
[COLOR=#000000] //-- добавляем новые поля в массив результатов[/COLOR] [COLOR=#000000] $arFields["ORDER_COMMENT_UR"] = $ordercomment;[/COLOR] [COLOR=#000000] $arFields["COMPANY_NAME"] = $companyname;[/COLOR] [COLOR=#000000] $arFields["PHONE"] = $phone;[/COLOR] [COLOR=#000000] $arFields["ADDRESS"] = $address;[/COLOR] [COLOR=#000000] $arFields["PAY_SYSTEM_NAME"] = $paysystemname;[/COLOR] [COLOR=#000000] $arFields["DELIVERY_NAME"] = $deliveryname;[/COLOR] [COLOR=#000000]} [/COLOR] |