И тоже уже столкнулся с новым классами и особенностями нового обмена. То что обмен перешел в папку lib и теперь на ООП это классно. Но есть и недоработки на мой взгляд.
Как многие уже пишут выше при обмене доставка теперь создается из 1с даже если она уже была в битриксе.
Столкнулся с тем что наименование доставки после обмена с 1с на сайте менялось с Курьером (Доставка курьером) на Доставка курьером и 1с при последующем обмене писала - Подстановка данных не возможна. Не найдены данные.
Причина в том что при создании заказа в компоненте или через админку название доставки формируется из профиля, а в классе shipmentimport.php просто берется название доставки а не профиля.
Чтобы поправить в системном классе /bitrix/modules/sale/lib/exchange/entity/shipmentimport.php в методе add
Вместо
Код |
---|
$shipment->setField('DELIVERY_NAME', $shipmentService->getName()); |
Пишем
Код |
---|
if ($shipmentService->isProfile())
{
$delivery_name = $shipmentService->getNameWithParent();
}
else
{
$delivery_name = $shipmentService->getName();
}
$shipment->setField('DELIVERY_NAME', $delivery_name); |
Тк файл системный понятно что нужно отслеживать изменения.
Но на мой взгляд логично чтобы наименование доставки везде формировалось по одному принципу,
будь то сохранение из админ, создание заказа из компонента sale.order.ajax или импорт заказа из 1с.