Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Как убрать цену из доставки?

+11 голос
2

Есть обычная настраиваемая служба доставки типа «Доставка по России».

Стандартно в Настройках обработчика есть поле цена. Если же попробовать вписать в это поле текст типа: «Доставка рассчитывается менеджером», то выдает 

Ошибка сохранения

Поле "Цена": не число

Если поле оставить пустым, то при оформлении заказа будет стоять Стоимость: 0 руб.

Собственно как убрать ноль из заказа корзины D7, или поменять числовое на текстовое значение?

спросил 03 Авг, 17 от аноним

2 Ответы

00 голосов
 
Лучший ответ

Ну, вроде бы доставка считается не в корзине а в оформлении заказа.

У нас для такой же задачи есть sale.order.ajax, где в result_modifier идёт проверка способа доставки

if (in_array((int)$_REQUEST['DELIVERY_ID'], array(15,16))) {
$arResult['SPEC_TRIGGER_WARN'][] = "Стоимость доставки рассчитывается менеджером после оформления заказа.";
}
Ну а в шаблоне, если есть SPEC_TRIGGER_WARN - то выводим его.
А чтобы не выводилось "Стоимость доставки: 0" в шаблоне строчку эту выводим, только если стоимость доставки больше 0.
 

 

ответил 03 Авг, 17 от root (25,590 баллов)
выбран 21 Янв, 21 от root
Спасибо за Ваш ответ, добавил в result_modifier:

<? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();

/**
 * @var array $arParams
 * @var array $arResult
 * @var SaleOrderAjax $component
 */

$component = $this->__component;
$component::scaleImages($arResult['JS_DATA'], $arParams['SERVICES_IMAGES_SCALING']);

if (in_array((int)$_REQUEST['54'], array(15,16))) {
$arResult['SPEC_TRIGGER_WARN'][] = "Стоимость доставки рассчитывается менеджером после оформления заказа.";
}


Это все, что есть в result_modifier. Ничего не изменилось, ID вписал, а что такое array(15,16)? Прошу прощения, совсем ламер. В самом шаблоне никакого упоминания о SPEC_TRIGGER_WARN нет.
15,16 - это ID способов доставки (можно посмотреть в админке)
(int)$_REQUEST['DELIVERY_ID'] -- это вот прямо так должно быть, DELIVERY_ID -- стандартное для шаблона компонента название поля с выбором доставки.
Да, в шаблоне вывод SPEC_TRIGGER_WARN надо самим добавлять.
Можно, для отладки, прямо print_r($arResult['SPEC_TRIGGER_WARN']) -- а потом уже украсить.
00 голосов
Думаю вам поможет данный ресурс. Тут подоробно написано как убрать стоимость доставки

https://pai-bx.com/wiki/d7/1968-usefulness-for-sale-order-ajax/
ответил 13 Июнь, 20 от аноним