Чтобы внести информацию о дополнительных услугах отгрузки в почтовый шаблон заказа в Битрикс, вам потребуется отредактировать файлы шаблонов.
1. Откройте файл шаблона почтового события заказа. Обычно он располагается в папке `bitrix/templates/ваш_шаблон/components/bitrix/sale.order.ajax/mail/`.
2. В файле шаблона найдите код, который выводит информацию о товарах. Обычно он выглядит так:
```php
<? if (!empty($arResult["PRODUCTS"])): ?>
<? foreach ($arResult["PRODUCTS"] as $product): ?>
<tr>
<td><?= $product["NAME"] ?></td>
<td><?= $product["QUANTITY"] ?></td>
...
</tr>
<? endforeach; ?>
<? endif; ?>
```
3. После этого вставьте следующий код для вывода информации о дополнительных услугах отгрузки:
```php
<? if (!empty($arResult["SHIPMENT_EXTRA_SERVICES"])): ?>
<tr>
<td colspan="3"><b><?= GetMessage("SALE_ORDER_SHIPMENT_EXTRA_SERVICES") ?></b></td>
</tr>
<? foreach ($arResult["SHIPMENT_EXTRA_SERVICES"] as $service): ?>
<tr>
<td><?= $service["NAME"] ?></td>
<td><?= $service["VALUE"] ?></td>
...
</tr>
<? endforeach; ?>
<? endif; ?>
```
4. Сохраните изменения и проверьте работу почтового шаблона заказа. Теперь информация о дополнительных услугах отгрузки должна быть выводиться в письме.
Что касается добавления дополнительных услуг в функции `sale_new_order` в Битрикс, предлагаю использовать следующий код:
```php
AddEventHandler("sale", "OnOrderSave", "CustomizeOrder");
function CustomizeOrder(&$order)
{
$shipmentCollection = $order->getShipmentCollection();
foreach ($shipmentCollection as $shipment) {
$shipmentExtraServices = $shipment->getExtraServices();
foreach ($shipmentExtraServices as $service) {
// Добавьте свою логику по работе с дополнительными услугами
}
}
}
```
Данный код позволяет получить коллекцию отгрузок заказа и перебрать дополнительные услуги каждой отгрузки для их последующей обработки. Внутри второго цикла вы можете добавить свою логику работы с дополнительными услугами, например, сохранить их значения или выполнить какие-то дополнительные действия.