Зависимость автоматизированных служб доставки от местоположения

Рейтинг: 27.3877  
Внедрено
Предложил Пользователь 5407 13.11.2011 11:10:52

Зависимость автоматизированных служб доставки от местоположения

Не хватает стандартного способа сделать зависимость автоматизированных способов доставки от местоположения или группы местоположений (по аналогии с настраиваемыми). Например, для Москвы не показывать автоматизированную доставку почтой России.

Рейтинг: 0  
Пользователь 13767 20.02.2013 08:25:02
Уже на втором проекте подряд сталкиваюсь с этой проблемой. В качестве местоположения пользователь указывает город, в котором находится магазин, и клиенту в списке служб доставки выводится EMS, и так как это автоматизированная служба, то она выводится первой. И это при том, что есть доставка курьером. причем бесплатно.

Приходится городить костыли через обработчики событий.

Учитывая стоимость редакции с ИМ и среднюю стоимость разработки ИМ для клиента, можно было оформление заказа, да и в целом модуль ИМ привести в порядок.
Рейтинг: 0  
Пользователь 9606 28.03.2013 12:49:51
Поддерживаю.
Рейтинг: 0  
Пользователь 57773 01.11.2013 10:12:43
Блин, сегодня тоже с такой бадягой сталкнулся. Скажите, кто, какие костыли делал, чтобы это обойти)


Заметил еще глюк небольшой. Если у нас пользователь ввел город и там варианты доставки как настраиваемые, так и автоматизированные, и при этом выбрал вариант из настраиваемых  - ему выводится цена в итоге с учетом именно этого варианта доставки, а если он потом ввел другой город и там нет настраиваемых вариантов доставки - то ему выводится стоимость от старого варианта доставки, что был перед этим, хотя по умолчанию выбирается первый из автоматизированных вариантов. Это происходит потому что перед подсчетом стоимости автоматизированного варианта в  компоненте проверяется стоимость именно того варианта доставки, какой уже отмечен, а т.к. это новый список и там нету старого варианта доставки, то компонента почему то не просчитывает стоимость первого варианта автоматизироанного заказа. Хотя после оформления - в заказе стоит именно та стоимость, какая и должна быть и это не удивительно))) В общем неприятный косяк.
Рейтинг: 0.2482  
Пользователь 114148 22.10.2014 14:08:46
Столкнулся с аналогичной проблемой решал следующим образом:
1. Копируем файл /bitrix/modules/sale/ru/delivery/delivery_ems.php в папку /bitrix/php_interface/include/sale_delivery/ если нет папки, создаём.
2. Находим строку
function Compability($arOrder, $arConfig)
   {
 

и добавляем условие поставки

if ($arOrder["LOCATION_TO"]==671): return array(); endif;
 
671 - у меня это город Москва, у Вас может быть другое значение смотреть ID в админке в списке местоположений.
Вот и всё теперь EMS отображается исключительно для всех городов кроме вашего.

Можно конечно усовершенствовать код указав в настройках Местоположение магазина и условие приобретёт намного интереснее вид.

if ($arOrder["LOCATION_TO"]==)$arOrder["LOCATION_FROM"]: return array(); endif;