Основные возможности:

  • Выбор города доставки
  • Выбор отделения доставки
  • Выбор адреса доставки (улица, дом, квартира)
  • Выбор способа оплаты «Наложенный платёж»
  • Расчёт стоимости доставки в зависимости от параметров или формирование стоимости на основании габаритов по умолчанию
  • Выбор языка интерфейса (русский, украинский)
  • Выбор типа доставки (склад – склад, склад – двери, двери – двери, двери – склад)
  • Автоматический выбор бесплатной доставки
  • Автоматическая скидка на оплату доставки

Модуль позволяет детализировать параметры доставки, поддерживает опции доставка до отделения и адресная доставка. Данные о городах, отделениях и улицах система получает непосредственно с серверов компании «Нова Пошта» через API 2.0.

Расчет стоимости доставки производится автоматически в зависимости от выбранного способа доставки – адресная или до отделения. При расчете стоимости доставки также учитываются габариты отправления (длина, ширина, высота, вес, объемный вес); при отсутствии информации используются значения по умолчанию, настраиваемые в модуле. Доставка может автоматически становиться бесплатной при оформлении заказа, стоимость которого превышает установленную вами сумму.

Для возможности оформления оплаты наложенным платежом при настройке модуля создаётся дополнительный метод оплаты.

Для работы модуля необходимо зарегистрироваться на сайте компании http://novaposhta.ua, зайдя в кабинет пользователя получить ключ API и ввести его в настройки модуля. Все данные, предоставленные пользователем при оформлении заказа (получатель, адрес, стоимость доставки), сохраняются для последующей обработки менеджером. Модуль сохраняет Ref коды выбранных городов, складов, улиц в системные поля, что облегчает последующую интеграцию модуля с конфигурациями на базе «1С:Предприятие 8».

 

Приобрести модуль можно на сайте Маркетплейс.

 

ВАЖНО! Перед установкой сделайте резервное копирование изменяемых файлов.

  1. Загрузить и установить решение из Маркетплейс.
  1. Добавить и настроить службы доставки:

2.1. Выбрать в меню «Магазин» – «Настройки» – «Службы доставки» – «Добавить» – «Автоматизированные службы доставки».

1

2.2. Во вкладке «Настройки обработчика» выбрать «Новая почта» [newpost].

2

2.3. Во вкладке «Общие настройки» выбрать язык автозаполнения для города и отделения.

3

2.4. Во вкладке «Настройки отправления» задать основные настройки. В полях «Вес», «Длина», «Ширина», «Высота» установите значения по умолчанию, которые будут использованы для расчета стоимости доставки, если при оформлении не будут указаны реальные габариты и вес отправления.

В поле «Отправка» нужно выбрать способ отправки – с помощью курьера или из отделения «Нова Пошта».

Поля «Единицы измерения» заполнить в соответствии с единицами измерения, используемыми в вашем магазине; модуль автоматически конвертирует их в используемые компанией «Нова Пошта».

4

В поле «Бесплатная доставка» необходимо указать сумму заказа, после которой доставка автоматически станет бесплатной.

В поле «Отправка заказа» цифрой укажите количество дней, через которое заказ будет отправлен. Это влияет на ориентировочную дату доставки.

Если ваша компания является партнёром «Нова пошта» и имеет скидку на услуги, укажите сумму скидки в поле «Скидка на доставку» – она автоматически вычтется из стоимости доставки.

    1. Создать платёжную систему для активации расчёта наложенного платежа.

5

6

3.1. В настройках выбрать «Нова Пошта» и заполнить название («Наложенный платеж Нова Пошта»).

8

  1. Зайти в «Настройки» – «Настройки модулей». Выбрать «Доставка «Нова Пошта» 2.0» – оформление заказа.

7

4.1. Задать настройки модуля.

  • Ввести ключ API, доступный в личном кабинете на сайте «Нова Пошта».
  • Начать вводить название города, из которого будут осуществляться отправления, и выбрать его из выпадающего списка. После этого Ref код заполнится автоматически.

9

  • Ввести идентификатор созданной платежной системы.
  • Ввести идентификатор созданной службы доставки (для нового шаблона идентификатор увеличивается на единицу, т.е. если идентификатор был 8, надо ввести 9).
  • Нажать кнопку «Обновить» для актуализации списка городов, улиц, складов компании «Нова Пошта».
  1. Интеграция с шаблоном компонента Sale.Order.Ajax.

5.1 Скопировать шаблон компонента

10

5.2 Для старого шаблона в файле «delivery.php» добавить строки. На 134 строку после

<h4><?=GetMessage("SOA_TEMPL_DELIVERY")?></h4>

вставить

include_once $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/itprosteer.newpost/files/deliveryHelper.php";

На 138 строку после

foreach ($arResult["DELIVERY"] as $delivery_id => $arDelivery)
		{

вставить

if($delivery_id==$NEWPOST_ID ){
				
            continue;
			}

Должно получиться

<h4><?=GetMessage("SOA_TEMPL_DELIVERY")?></h4>
		<?
include_once $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/itprosteer.newpost/files/deliveryHelper.php";
		foreach ($arResult["DELIVERY"] as $delivery_id => $arDelivery)
		{
			
			if($delivery_id==$NEWPOST_ID ){
				
            continue;
			}
			if ($delivery_id !== 0 && intval($delivery_id) <= 0)

5.3 Для нового шаблона 1С-Битрикс: Управление сайтом 16.5.4 вы можете скачать подготовленый архив с изменениями — sale.order.ajax.zip или произвести настройку самостоятельно, для этого в файле «template.php» на 349 строку добавить

<?include_once $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/itprosteer.newpost/files/deliveryHelperNewTemplate.php";?>

На 389 строку добавить

itprosteer:<?=CUtil::phpToJSObject($ITPROSTEER_JS)?>,

В файле «order_ajax.js» добавить на 71 строку

itprosteer: {},

Добавить на 111 строку

this.itprosteer = parameters.itprosteer;

12

Заменить метод «selectPaySystem» (начало 4479 строки)

    selectPaySystem: function(event)
 {
     if (!this.orderBlockNode || !event)
         return;

     var target = event.target || event.srcElement,
         innerPaySystemSection = this.paySystemBlockNode.querySelector('div.bx-soa-pp-inner-ps'),
         innerPaySystemCheckbox = this.paySystemBlockNode.querySelector('input[type=checkbox][name=PAY_CURRENT_ACCOUNT]'),
         fullPayFromInnerPaySystem = this.result.TOTAL && this.result.TOTAL.ORDER_TOTAL_LEFT_TO_PAY === 0;

     var innerPsAction = BX.hasClass(target, 'bx-soa-pp-inner-ps') ? target : BX.findParent(target, {className: 'bx-soa-pp-inner-ps'}),
         actionSection = BX.hasClass(target, 'bx-soa-pp-company') ? target : BX.findParent(target, {className: 'bx-soa-pp-company'}),
         actionInput, selectedSection;

     if (innerPsAction)
     {
         if (target.nodeName == 'INPUT')
             innerPaySystemCheckbox.checked = !innerPaySystemCheckbox.checked;

         if (innerPaySystemCheckbox.checked)
         {
             BX.removeClass(innerPaySystemSection, 'bx-selected');
             innerPaySystemCheckbox.checked = false;
         }
         else
         {
             BX.addClass(innerPaySystemSection, 'bx-selected');
             innerPaySystemCheckbox.checked = true;
         }
     }
     else if (actionSection)
     {
         if (BX.hasClass(actionSection, 'bx-selected'))
             return BX.PreventDefault(event);

         if (innerPaySystemCheckbox && innerPaySystemCheckbox.checked && fullPayFromInnerPaySystem)
         {
             BX.addClass(actionSection, 'bx-selected');
             actionInput = actionSection.querySelector('input[type=checkbox]');
             actionInput.checked = true;
             BX.removeClass(innerPaySystemSection, 'bx-selected');
             innerPaySystemCheckbox.checked = false;
         }
         else
         {
             selectedSection = this.paySystemBlockNode.querySelector('.bx-soa-pp-company.bx-selected');
             BX.addClass(actionSection, 'bx-selected');
             actionInput = actionSection.querySelector('input[type=checkbox]');
             actionInput.checked = true;

             if (selectedSection)
             {
                 BX.removeClass(selectedSection, 'bx-selected');
                 selectedSection.querySelector('input[type=checkbox]').checked = false;
             }
         }
     }
      /**
       * Update Newpost Delay_PAY
       */

      if(actionInput.value==this.itprosteer.paySystemId){
          BX.ajax.post(
              "/include/ajax_newpost/ajax.php",
              {"updatePay":"true","val":1},
              function(data){

              }
          );}else{
         BX.ajax.post(
             "/include/ajax_newpost/ajax.php",
             {"updatePay":"true","val":0},
             function(data){

             }
         );
     }
     this.sendRequest();
 },
   

Заменить метод «editDeliveryInfo» (4631 строка)

 
 editDeliveryInfo: function(deliveryNode)
 {

     if (!this.result.DELIVERY)
         return;

     var deliveryInfoContainer = BX.create('DIV', {props: {className: 'col-sm-5 bx-soa-pp-desc-container'}}),
         currentDelivery, logotype, name, logoNode,
         subTitle, label, title, price, period,
         clear, infoList, extraServices, extraServicesNode;

     BX.cleanNode(deliveryInfoContainer);
     currentDelivery = this.getSelectedDelivery();

     logoNode = BX.create('DIV', {props: {className: 'bx-soa-pp-company-image'}});
     logotype = this.getImageSources(currentDelivery, 'LOGOTIP');
     /**
      * get NewPostLOgoType
      */
     console.log( this.getSelectedDelivery());
     if(this.getSelectedDelivery().ID== this.itprosteer.deliveryId){
         logoNode.setAttribute('style',
             'background-image: url(/upload/itprosteer/np.png);' +
             'background-image: -webkit-image-set(url(/upload/itprosteer/np.png) 1x, url(/upload/itprosteer/np.png) 2x)'

         );
     }else {
         if (logotype && logotype.src_2x) {
             logoNode.setAttribute('style',
                 'background-image: url(' + logotype.src_1x + ');' +
                 'background-image: -webkit-image-set(url(' + logotype.src_1x + ') 1x, url(' + logotype.src_2x + ') 2x)'
             );
         }
         else {
             logotype = logotype && logotype.src_1x || this.defaultDeliveryLogo;
             logoNode.setAttribute('style', 'background-image: url(' + logotype + ');');
         }
     }
     name = this.params.SHOW_DELIVERY_PARENT_NAMES != 'N' ? currentDelivery.NAME : currentDelivery.OWN_NAME;

     if (this.params.SHOW_DELIVERY_INFO_NAME == 'Y')
         subTitle = BX.create('DIV', {props: {className: 'bx-soa-pp-company-subTitle'}, text: name});

     label = BX.create('DIV', {
         props: {className: 'bx-soa-pp-company-logo'},
         children: [
             BX.create('DIV', {
                 props: {className: 'bx-soa-pp-company-graf-container wtf'},
                 children: [logoNode]
             })
         ]
     });
     title = BX.create('DIV', {
         props: {className: 'bx-soa-pp-company-block'},
         children: [BX.create('DIV', {props: {className: 'bx-soa-pp-company-desc'}, html: currentDelivery.DESCRIPTION})]
     });

     if (currentDelivery.PRICE >= 0)
     {
         price = BX.create('LI', {
             children: [
                 BX.create('DIV', {
                     props: {className: 'bx-soa-pp-list-termin'},
                     text: this.params.MESS_PRICE + ':'
                 }),
                 BX.create('DIV', {
                     props: {className: 'bx-soa-pp-list-description'},
                     children: this.getDeliveryPriceNodes(currentDelivery)
                 })
             ]
         });
     }

     if (currentDelivery.PERIOD_TEXT && currentDelivery.PERIOD_TEXT.length)
     {
         period = BX.create('LI', {
             children: [
                 BX.create('DIV', {props: {className: 'bx-soa-pp-list-termin'}, text: this.params.MESS_PERIOD + ':'}),
                 BX.create('DIV', {props: {className: 'bx-soa-pp-list-description'}, html: currentDelivery.PERIOD_TEXT})
             ]
         });
     }

     clear = BX.create('DIV', {style: {clear: 'both'}});
     infoList = BX.create('UL', {props: {className: 'bx-soa-pp-list'}, children: [price, period]});
     extraServices = this.getDeliveryExtraServices(currentDelivery);

     if (extraServices.length)
     {
         extraServicesNode = BX.create('DIV', {
             props: {className: 'bx-soa-pp-company-block'},
             children: extraServices
         });
     }
     if(this.getSelectedDelivery().ID == this.itprosteer.deliveryId){
         console.log(this.itprosteer);
         // Radio Buttons



         var itprosteerDeliveryTypeInput1 = BX.create("INPUT",{
             props:{"className":"newpost_delivery_type"}
         });
         itprosteerDeliveryTypeInput1.setAttribute("id","newpost_warehouse");
         itprosteerDeliveryTypeInput1.setAttribute("name","delivery_type");
         itprosteerDeliveryTypeInput1.setAttribute("placeholder","Начните вводить город");
         itprosteerDeliveryTypeInput1.setAttribute("autocomplete","off");
         itprosteerDeliveryTypeInput1.setAttribute("type","radio");
         itprosteerDeliveryTypeInput1.value="1"  ;
         var itprosteerDeliveryTypeLabel1 = BX.create("LABEL",{
             props:{},

         });
         itprosteerDeliveryTypeLabel1.setAttribute("for","newpost_warehouse");
         itprosteerDeliveryTypeLabel1.textContent=this.itprosteer["ITPROSTEER_NEWPOST_DOSTAVKA_V_OTDELENIE"];



         var itprosteerDeliveryTypeInput2 = BX.create("INPUT",{
             props:{"className":"newpost_delivery_type"}
         });
         itprosteerDeliveryTypeInput2.setAttribute("id","newpost_address");
         itprosteerDeliveryTypeInput2.setAttribute("name","delivery_type");
         itprosteerDeliveryTypeInput2.setAttribute("placeholder","Начните вводить город");
         itprosteerDeliveryTypeInput2.setAttribute("autocomplete","off");
         itprosteerDeliveryTypeInput2.setAttribute("type","radio");
         itprosteerDeliveryTypeInput2.value="2";
         if(this.itprosteer.DELIVERY_TYPE=="address"){
             itprosteerDeliveryTypeInput2.setAttribute("checked","checked");
         }else{
             itprosteerDeliveryTypeInput1.setAttribute("checked","checked");
         }
         var itprosteerDeliveryTypeLabel2 = BX.create("LABEL",{
             props:{},

         });
         itprosteerDeliveryTypeLabel2.setAttribute("for","newpost_address");
         itprosteerDeliveryTypeLabel2.textContent=this.itprosteer["ITPROSTEER_NEWPOST_ADRESNAA_DOSTAVKA"];
         var itprosteerDeliveryType = BX.create("DIV",{
             props:{"className":"newpost_fields"},
             children:[itprosteerDeliveryTypeLabel1, itprosteerDeliveryTypeInput1,itprosteerDeliveryTypeLabel2, itprosteerDeliveryTypeInput2],
         });
         itprosteerDeliveryType.setAttribute("id","delivery_type_button");

         // Create City field structure

         var itprosteerCityLabel = BX.create("LABEL",{});
         itprosteerCityLabel.textContent=this.itprosteer["ITPROSTEER_NEWPOST_VYBERITE_GOROD"];
         itprosteerCityLabel.setAttribute("for","nepost_city_for_warehouse");

         var itprosteerCityInput = BX.create("INPUT",{
             props:{"className":"it_fields"}
         });
         itprosteerCityInput.setAttribute("id","nepost_city_for_warehouse");
         itprosteerCityInput.setAttribute("name","newpost_city");
         itprosteerCityInput.setAttribute("placeholder","Начните вводить город");
         itprosteerCityInput.setAttribute("autocomplete","off");
         itprosteerCityInput.setAttribute("type","text");
         if(typeof this.itprosteer.CITY !="undefined" && typeof this.itprosteer.CITY.NAME !="undefined" ) {
             itprosteerCityInput.value = this.itprosteer.CITY.NAME;
         }
         var itprosteerCity = BX.create("DIV",{
             props:{"className":"newpost_fields"},
             children:[itprosteerCityLabel, itprosteerCityInput],
             });
         itprosteerCity.setAttribute("id","it_city");

         // create warehouse field structure

         var itprosteerWarehouseLabel = BX.create("LABEL",{});
         itprosteerWarehouseLabel.textContent=this.itprosteer["ITPROSTEER_NEWPOST_VYBERITE_OTDELENIE_N"];
         itprosteerWarehouseLabel.setAttribute("for","itprosteer_warehouse_for_warehouse");

         var itprosteerWarehouseInput = BX.create("INPUT", {
             props: {"className": "it_fields"}
         });

         itprosteerWarehouseInput.setAttribute("id","itprosteer_warehouse_for_warehouse");
         itprosteerWarehouseInput.setAttribute("name","newpost_warehouse");
         itprosteerWarehouseInput.setAttribute("placeholder","Введите номер отделения");
         itprosteerWarehouseInput.setAttribute("autocomplete","off");
         itprosteerWarehouseInput.setAttribute("type","text");

         if(typeof this.itprosteer.WAREHOUSE !="undefined" && typeof this.itprosteer.WAREHOUSE.NAME !="undefined") {
             itprosteerWarehouseInput.value = this.itprosteer.WAREHOUSE.NAME;
         }

         if(this.itprosteer.DELIVERY_TYPE=="address") {
             var itprosteerWarehouse = BX.create("DIV", {
                 props: {"className": "newpost_fields newpost_warehouse it_disable"},
                 children: [itprosteerWarehouseLabel, itprosteerWarehouseInput],
             });
         }else {
             var itprosteerWarehouse = BX.create("DIV", {
                 props: {"className": "newpost_fields newpost_warehouse"},
                 children: [itprosteerWarehouseLabel, itprosteerWarehouseInput],
             });
         }

         // create street
         var itprosteerStreetLabel = BX.create("LABEL",{});
         itprosteerStreetLabel.textContent=this.itprosteer["ITPROSTEER_NEWPOST_VYBERITE_ULICU"];
         itprosteerStreetLabel.setAttribute("for","itprosteer_street");

         var itprosteerStreetInput = BX.create("INPUT", {
             props: {"className": "it_fields"}
         });

         itprosteerStreetInput.setAttribute("id","itprosteer_street");
         itprosteerStreetInput.setAttribute("name","newpost_street");
         itprosteerStreetInput.setAttribute("placeholder","Начните вводить название улицы");
         itprosteerStreetInput.setAttribute("autocomplete","off");
         itprosteerStreetInput.setAttribute("type","text");
         if(typeof this.itprosteer.STREET !="undefined" && typeof this.itprosteer.STREET.NAME !="undefined") {
             itprosteerStreetInput.value = this.itprosteer.STREET.NAME;
         }
         if(this.itprosteer.DELIVERY_TYPE=="address") {
             var itprosteerStreet = BX.create("DIV", {
                 props: {"className": "newpost_fields newpost_address"},
                 children: [itprosteerStreetLabel, itprosteerStreetInput],
             });
         }else{
             var itprosteerStreet = BX.create("DIV", {
                 props: {"className": "newpost_fields newpost_address it_disable"},
                 children: [itprosteerStreetLabel, itprosteerStreetInput],
             });
         }
         //create house
         var itprosteerHouseLabel = BX.create("LABEL",{});
         itprosteerHouseLabel.textContent=this.itprosteer["ITPROSTEER_NEWPOST_VYBERITE_DOM"];
         itprosteerHouseLabel.setAttribute("for", "itprosteer_house");

         var itprosteerHouseInput = BX.create("INPUT", {
             props: {"className": "it_fields"}
         });

         itprosteerHouseInput.setAttribute("id", "itprosteer_house");
         itprosteerHouseInput.setAttribute("name", "newpost_house");
         itprosteerHouseInput.setAttribute("placeholder","Введите номер дома");
         itprosteerHouseInput.setAttribute("autocomplete","off");
         itprosteerHouseInput.setAttribute("type","text");
         if(typeof this.itprosteer.HOUSE !="undefined") {
             itprosteerHouseInput.value = this.itprosteer.HOUSE;
         }
         if(this.itprosteer.DELIVERY_TYPE=="address") {
             var itprosteerHouse = BX.create("DIV", {
                 props: {"className": "newpost_fields newpost_address"},
                 children: [itprosteerHouseLabel, itprosteerHouseInput],
             });
         }else{
             var itprosteerHouse = BX.create("DIV", {
                 props: {"className": "newpost_fields newpost_address it_disable"},
                 children: [itprosteerHouseLabel, itprosteerHouseInput],
             });
         }
         //create flat
         var itprosteerFlatLabel = BX.create("LABEL",{});
         itprosteerFlatLabel.textContent=this.itprosteer["ITPROSTEER_NEWPOST_VYBERITE_KVARTIRU"];
         itprosteerFlatLabel.setAttribute("for","itprosteer_flat");

             var itprosteerFlatInput = BX.create("INPUT", {
                 props: {"className": "it_fields"}
             });

         itprosteerFlatInput.setAttribute("id","itprosteer_flat");
         itprosteerFlatInput.setAttribute("name","newpost_flat");
         itprosteerFlatInput.setAttribute("placeholder","Введите номер квартиры");
         itprosteerFlatInput.setAttribute("autocomplete","off");
         itprosteerFlatInput.setAttribute("type","text");
         if(typeof this.itprosteer.FLAT !="undefined") {
             itprosteerFlatInput.value = this.itprosteer.FLAT;
         }
         if(this.itprosteer.DELIVERY_TYPE=="address") {
             var itprosteerFlat = BX.create("DIV", {
                 props: {"className": "newpost_fields newpost_address"},
                 children: [itprosteerFlatLabel, itprosteerFlatInput],
             });
         }else{
             var itprosteerFlat = BX.create("DIV", {
                 props: {"className": "newpost_fields newpost_address it_disable"},
                 children: [itprosteerFlatLabel, itprosteerFlatInput],
             });
         }
         //create link for update delivery price

         var itprosteerLink = BX.create("A",{
         });
         itprosteerLink.setAttribute("id","newpost_get");
         itprosteerLink.setAttribute("delivery-val",this.itprosteer.deliveryId);
         itprosteerLink.textContent=this.itprosteer["ITPROSTEER_NEWPOST_RASCITATQ_STOIMOSTQ"];
         //create main nodde fro custom fields
         var itprosteerNode = BX.create("DIV",{
             props: {className:"fields"},
             children:[itprosteerDeliveryType,itprosteerCity,itprosteerWarehouse, itprosteerStreet, itprosteerHouse, itprosteerFlat,itprosteerLink]
         });
         deliveryInfoContainer.appendChild(
             BX.create('DIV', {
                 props: {className: 'bx-soa-pp-company'},
                 children: [subTitle, label, title, clear, extraServicesNode, infoList, itprosteerNode]
             })
         );
     }else{
         deliveryInfoContainer.appendChild(
             BX.create('DIV', {
                 props: {className: 'bx-soa-pp-company'},
                 children: [subTitle, label, title, clear, extraServicesNode, infoList]
             })
         );
     }
     deliveryNode.appendChild(deliveryInfoContainer);

     if (this.params.DELIVERY_NO_AJAX != 'Y')
         this.deliveryCachedInfo[currentDelivery.ID] = currentDelivery;
 },

Заменить метод «createDeliveryItem» (5055 строка)

createDeliveryItem: function(item)
 {
     var checked = item.CHECKED == 'Y',
         deliveryId = parseInt(item.ID),
         labelNodes = [
             BX.create('INPUT', {
                 props: {
                     id: 'ID_DELIVERY_ID_' + deliveryId,
                     name: 'DELIVERY_ID',
                     type: 'checkbox',
                     className: 'bx-soa-pp-company-checkbox',
                     value: deliveryId,
                     checked: checked
                 }
             })
         ],
         deliveryCached = this.deliveryCachedInfo[deliveryId],
         logotype, label, title, itemNode, logoNode;

     logoNode = BX.create('DIV', {props: {className: 'bx-soa-pp-company-image'}});
     /**
      * add NewPost logotype
      *
      */
     if(item.ID==this.itprosteer.deliveryId){
         logoNode.setAttribute('style',
             'background-image: url(/upload/itprosteer/np.png);' +
             'background-image: -webkit-image-set(url(/upload/itprosteer/np.png) 1x, url(/upload/itprosteer/np.png) 2x)'

         );
     }else {
         logotype = this.getImageSources(item, 'LOGOTIP');
         if (logotype && logotype.src_2x) {
             logoNode.setAttribute('style',
                 'background-image: url(' + logotype.src_1x + ');' +
                 'background-image: -webkit-image-set(url(' + logotype.src_1x + ') 1x, url(' + logotype.src_2x + ') 2x)'
             );
         }
         else {
             logotype = logotype && logotype.src_1x || this.defaultDeliveryLogo;
             logoNode.setAttribute('style', 'background-image: url(' + logotype + ');');
         }
     }
     labelNodes.push(logoNode);

     if (item.PRICE >= 0 || typeof item.DELIVERY_DISCOUNT_PRICE !== 'undefined')
     {
         labelNodes.push(
             BX.create('DIV', {
                 props: {className: 'bx-soa-pp-delivery-cost'},
                 text: typeof item.DELIVERY_DISCOUNT_PRICE !== 'undefined'
                     ? item.DELIVERY_DISCOUNT_PRICE_FORMATED
                     : item.PRICE_FORMATED})
         );
     }
     else if (deliveryCached && (deliveryCached.PRICE >= 0 || typeof deliveryCached.DELIVERY_DISCOUNT_PRICE !== 'undefined'))
     {
         labelNodes.push(
             BX.create('DIV', {
                 props: {className: 'bx-soa-pp-delivery-cost'},
                 text: typeof deliveryCached.DELIVERY_DISCOUNT_PRICE !== 'undefined'
                     ? deliveryCached.DELIVERY_DISCOUNT_PRICE_FORMATED
                     : deliveryCached.PRICE_FORMATED})
         );
     }

     label = BX.create('DIV', {
         props: {
             className: 'bx-soa-pp-company-graf-container small'
                 + (item.CALCULATE_ERRORS || deliveryCached && deliveryCached.CALCULATE_ERRORS ? ' bx-bd-waring' : '')},
         children: labelNodes
     });

     if (this.params.SHOW_DELIVERY_LIST_NAMES == 'Y')
     {
         title = BX.create('DIV', {
             props: {className: 'bx-soa-pp-company-smalltitle'},
             text: this.params.SHOW_DELIVERY_PARENT_NAMES != 'N' ? item.NAME : item.OWN_NAME
         });
     }

     itemNode = BX.create('DIV', {
         props: {className: 'bx-soa-pp-company col-lg-3 col-sm-4 col-xs-6'},
         children: [label, title],
         events: {click: BX.proxy(this.selectDelivery, this)}
     });
     checked && BX.addClass(itemNode, 'bx-selected');

     return itemNode;
 },
 
  

Готовый шаблон оформления заказа по умолчанию для работы с установленным модулем Новой Почты для 1С-Битрикс: Управление сайтом 16.5.4 — скачать

Услугу установки модуля оформления доставки «Нова Пошта» для 1С-Битрикс также можно заказать в нашей компании.