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