Не хватает стандартного способа сделать зависимость автоматизированных способов доставки от местоположения или группы местоположений (по аналогии с настраиваемыми). Например, для Москвы не показывать автоматизированную доставку почтой России.
Уже на втором проекте подряд сталкиваюсь с этой проблемой. В качестве местоположения пользователь указывает город, в котором находится магазин, и клиенту в списке служб доставки выводится EMS, и так как это автоматизированная служба, то она выводится первой. И это при том, что есть доставка курьером. причем бесплатно.
Приходится городить костыли через обработчики событий.
Учитывая стоимость редакции с ИМ и среднюю стоимость разработки ИМ для клиента, можно было оформление заказа, да и в целом модуль ИМ привести в порядок.
Блин, сегодня тоже с такой бадягой сталкнулся. Скажите, кто, какие костыли делал, чтобы это обойти)
Заметил еще глюк небольшой. Если у нас пользователь ввел город и там варианты доставки как настраиваемые, так и автоматизированные, и при этом выбрал вариант из настраиваемых - ему выводится цена в итоге с учетом именно этого варианта доставки, а если он потом ввел другой город и там нет настраиваемых вариантов доставки - то ему выводится стоимость от старого варианта доставки, что был перед этим, хотя по умолчанию выбирается первый из автоматизированных вариантов. Это происходит потому что перед подсчетом стоимости автоматизированного варианта в компоненте проверяется стоимость именно того варианта доставки, какой уже отмечен, а т.к. это новый список и там нету старого варианта доставки, то компонента почему то не просчитывает стоимость первого варианта автоматизироанного заказа. Хотя после оформления - в заказе стоит именно та стоимость, какая и должна быть и это не удивительно))) В общем неприятный косяк.
Столкнулся с аналогичной проблемой решал следующим образом: 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;
Приходится городить костыли через обработчики событий.
Учитывая стоимость редакции с ИМ и среднюю стоимость разработки ИМ для клиента, можно было оформление заказа, да и в целом модуль ИМ привести в порядок.
Заметил еще глюк небольшой. Если у нас пользователь ввел город и там варианты доставки как настраиваемые, так и автоматизированные, и при этом выбрал вариант из настраиваемых - ему выводится цена в итоге с учетом именно этого варианта доставки, а если он потом ввел другой город и там нет настраиваемых вариантов доставки - то ему выводится стоимость от старого варианта доставки, что был перед этим, хотя по умолчанию выбирается первый из автоматизированных вариантов. Это происходит потому что перед подсчетом стоимости автоматизированного варианта в компоненте проверяется стоимость именно того варианта доставки, какой уже отмечен, а т.к. это новый список и там нету старого варианта доставки, то компонента почему то не просчитывает стоимость первого варианта автоматизироанного заказа. Хотя после оформления - в заказе стоит именно та стоимость, какая и должна быть и это не удивительно))) В общем неприятный косяк.
1. Копируем файл /bitrix/modules/sale/ru/delivery/delivery_ems.php в папку /bitrix/php_interface/include/sale_delivery/ если нет папки, создаём.
2. Находим строку
и добавляем условие поставки
Вот и всё теперь EMS отображается исключительно для всех городов кроме вашего.
Можно конечно усовершенствовать код указав в настройках Местоположение магазина и условие приобретёт намного интереснее вид.