Доброго времени, подскажите как в комментарий вывести товар и количество при заказе клиента
На примере данного кода только вместо Адрес,Свойство,Способ оплаты,Способ доставки нужно Наименование, количество
Код |
---|
<?php
// Регистрируем обработчик методами D7
use Bitrix\Main;
use Bitrix\Sale;
Main\EventManager::getInstance()->addEventHandler(
'sale',
'OnSaleOrderBeforeSaved',
'OnSaleComponentHandler'
);
function OnSaleComponentHandler(Main\Event $event)
{
$order = $event->getParameter("ENTITY");
// Получаем объект заказа
$commentbitrix24 = "";
$propertyCollection = $order->getPropertyCollection();
// Свойства товара в корзине, коллекция объектов Sale\BasketPropertyItem
$propertys = $propertyCollection->getArray();
// Массив свойств ['properties' => [..], 'groups' => [..] ];
// Получаем адрес пользователя
$address = "Адрес:";
foreach ($propertys["properties"] as $location)
{
if($location["CODE"] === "ADDRESS")
{
$address .= $location["VALUE"][0] . "<br>";
}
elseif($location["CODE"] === "STREET"
|| $location["CODE"] === "HOUSE")
{
$address .= $location["VALUE"][0] . " ";
}
}
$commentbitrix24 = $address;
// Получаем дополнительные параметры,
//которые необходимо поместить в комментарий менеджера
$articles = "";
$dbBasketItems = CSaleBasket::GetList(array(),
array("ORDER_ID"=>$order->getId()));
// Выбираем записи из корзины, по id заказа
while ($arItems = $dbBasketItems->Fetch())
{
// Выбираем необходимые свойства
$db_props = CSaleBasket::GetPropsList(
array(),
array(
"BASKET_ID"=>$arItems["ID"],
"CODE"=>"FABRIC" )
);
while ($item = $db_props->Fetch())
{
$articles = "<br/>Артикулы из обложки: " . $item["VALUE"];
}
}
$commentbitrix24 .= $articles;
// Получаем дополнительные параметры,
//которые необходимо поместить в комментарий менеджера
$sposob = "";
$dbBasketItems = CSaleBasket::GetList(array(),
array("ORDER_ID"=>$order->getId()));
// Выбираем записи из корзины, по id заказа
$paymentCollection = $order->getPaymentCollection();
foreach ($paymentCollection as $payment) {
$psName = $payment->getPaymentSystemName(); // название платежной системы
$sposob = "<br> Способ Оплаты- " . $psName;
}
$commentbitrix24 .= $sposob;
// Получаем дополнительные параметры,
//которые необходимо поместить в комментарий менеджера
$dell = "";
$shipmentCollection = $order->getShipmentCollection();
foreach($shipmentCollection as $shipment)
{
$shipment_nameDirty = $shipment->getDeliveryName(); //тут мы уже получили имя доставки
$pieces = explode("(", $shipment_nameDirty);
$shipment_name = $pieces[0]; // а тут просто очистили от лишнего в скобочках
$dell = "<br> Способ доставки- " . $shipment_name;
}
$commentbitrix24 .= $dell;
// Получаем дополнительные параметры,
//которые необходимо поместить в комментарий менеджера
// Устанавливаем сформированный комментарий менеджера для заказа
$order->setField("COMMENTS", $commentbitrix24);
}
?> |