Частично то, что было необходимо.
Вот код:
Вот код:
Код |
---|
AddEventHandler("sale", "OnBeforeOrderUpdate", "OnBeforeOrderUpdateHandler"); function OnBeforeOrderUpdateHandler($ID, $arFields) { $arOrder = $ID; $itemsSaleOrder = CSaleOrder::GetList(array(), array('ID'=>$arOrder), false, false); $itemsSaleBasket = CSaleBasket::GetList(array(), array('ORDER_ID' => $arOrder), false, false, array()); $dom = new DomDocument('1.0','Windows-1251'); $zakaz = $dom->appendChild($dom->createElement('zakaz')); while ($items = $itemsSaleOrder->Fetch()) { foreach ($items as $keyOrderNew => $valueOrderNew) { foreach ($arFields as $keyOrderOld => $valueOrderOld) { if ($keyOrderNew != $keyOrderOld) { if ($valueOrderNew == $valueOrderOld) { $Element = $zakaz->appendChild($dom->createElement($keyOrderNew)); $Element->appendChild($dom->createTextNode(iconv("windows-1251", "UTF-8", $valueOrderNew))); } } } } } $itemsList = $zakaz->appendChild($dom->createElement('ItemsList')); while ($items = $itemsSaleBasket->Fetch()) { $item = $itemsList->appendChild($dom->createElement('Item')); foreach ($items as $keySaleBasketOld=>$valueSaleBasketOld) { foreach ($arFields["BASKET_ITEMS"] as $basketItemsKey=>$basketItemsDate) { foreach ($basketItemsDate as $keySaleBasketNew => $valueSaleBasketNew) { if ($items["PRODUCT_ID"] == $basketItemsDate["PRODUCT_ID"]) { if ($keySaleBasketOld == $keySaleBasketNew) { if ($valueSaleBasketOld != $valueSaleBasketNew) { $Element = $item->appendChild($dom->createElement($keySaleBasketNew)); $Element->appendChild($dom->createTextNode(iconv("windows-1251", "UTF-8", $valueSaleBasketNew))); } } } } } } } $dom->formatOutput = true; $test = $dom->saveXML(); } |