1С-Битрикс 11-14: инструкция по подключению модуля доставки eDost.ru
Для работы модуля, интернет-магазин необходимо подключить в системе eDost.
Предупреждение!!!
1. Чтобы рассчиталась доставка, у всех товаров в корзине должен быть задан вес!
2. Чтобы в расчете доставки учитывались габариты посылки, у каждого товара должны быть прописаны его размеры (длина, ширина, высота).
3. Обязательно задайте компании, через которые будет производиться расчет доставки
личном кабинете eDost в настройках магазина).
4. Магазин кэширует результаты расчетов, поэтому, после изменения настроек в личном кабинете, для пересчета доставки в магазине необходимо изменить параметры заказа (например, город доставки или количество товаров).
Зайдите в настройки модуля eDost:

Установите параметры в соответствии со скриншотами:
Предупреждение!!!
В битрикс 14 окно с настройками очень широкое - чтобы увидеть параметры, необходимо установить ползунок горизонтальной прокрутки примерно на середину.
Для корректной работы калькулятора доставки необходимо установить список местоположений, соответствующий стандарту системы eDost (список местоположений содержит названия городов, регионов и стран).
Предупреждение!!!
Новый список местоположений заменяет уже существующий, поэтому в старых заказах и в личных данных зарегистрированных покупателей местоположения сбрасываются.
Выберите в архиве подходящий для вашего магазина список и импортируйте его согласно инструкции:
Для точного расчета доставки у товаров должны быть заданы габаритные размеры (длина, ширина, высота).
В bitrix 14 габариты задаются в настройках товара в стандартных полях:


В bitrix 12 (и меньше) поля для габартов необходимо добавить самостоятельно
показать
Предупреждение!!!
Дальнейшие исправления необходимо производить на сервере магазина!!!

Все необходимые исправления могут внести наши специалисты (для этого вам необходимо подать заявку на info@edost.ru).

Если у вас нет опыта в данной области, тогда не рекомендуем самостоятельно вносить изменения на сервере (иначе можно вывести из строя весь магазин).
Шаблон eDost - это модификация стандартного шаблона одношагового оформления заказа (sale.order.ajax)

Функциональные возможности шаблона:
1. Иконки служб доставки.
2. Срок и стоимость доставки в одной строке.
3. Описание по каждому тарифу.
4. Выбор постаматов и пунктов выдачи PickPoint, boxberry, СДЭК и DPD.
5. Отображение ориентировочной стоимости доставки для ТК (когда доставка не включается в итого).
6. Вывод предупреждений калькулятора (например, при вводе НЕ верного индекса).

Отображение шаблона eDost в магазине:

тогда для установки шаблона eDost и Наложенного платажа (7-й пункт инструкции, подпункт "б"), используйте уже модифицированные файлы из архива bitrix_visual.zip

Для других версий шаблона, необходимо вручную отредактировать на сервере магазина файл:
bitrix/templates/шаблон/components/bitrix/sale.order.ajax/.default/delivery.php
шаблон - это имя шаблона, который использует магазин (например, store_light_gray) Как узнать путь к шаблону?
Если в шаблоне нет папки sale.order.ajax, тогда необходимо редактировать базовый шаблон компоненты: bitrix/components/bitrix/sale.order.ajax/templates/.default/delivery.php

Предупреждение:
Базовый шаблон может быть заменен новой версией при обновлении магазина!
Чтобы этого избежать, рекомендуется создать на основе базового шаблона новый, а уже его редактировать и использовать в магазине.
Перед исправлением рекомендуется сделать бэкап этого файла, чтобы при необходимости можно было его восстановить!
Вставьте в файл код, выделенный зеленым, и удалите выделенный красным:
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<?


//==================== edost НАЧАЛО
  if (isset($arResult['edost']['javascript'])) echo $arResult['edost']['javascript'];
  if (isset($arResult['edost']['warning'])) echo $arResult['edost']['warning'].'<br>';
//==================== edost КОНЕЦ


if(!empty($arResult["DELIVERY"]))
{
  ?>
  <div class="order-item">
    <div class="order-title">

      <b class="r2"></b><b class="r1"></b><b class="r0"></b>
      <div class="order-title-inner">
        <span><?=GetMessage("SOA_TEMPL_DELIVERY")?></span>
      </div>
    </div>
    <div class="order-info">
    <table width="100%" cellpadding="6" cellspacing="0">
    <?
    foreach ($arResult["DELIVERY"] as $delivery_id => $arDelivery)
    {
      if ($delivery_id !== 0 && intval($delivery_id) <= 0)
      {
        foreach ($arDelivery["PROFILES"] as $profile_id => $arProfile)
        {
          ?>
          <tr>


<? /* ==================== УДАЛИТЬ НАЧАЛО
          <td width="0%" valign="top"><input type="radio" id="ID_DELIVERY_<?=$delivery_id?>_<?=$profile_id?>" name="<?=$arProfile["FIELD_NAME"]?>" value="<?=$delivery_id.":".$profile_id;?>" <?=$arProfile["CHECKED"] == "Y" ? "checked=\"checked\"" : "";?> onclick="submitForm();" /></td>
          <td width="100%" valign="top">
            <label for="ID_DELIVERY_<?=$delivery_id?>_<?=$profile_id?>">
            <b><?=$arDelivery["TITLE"]?> - <?=$arProfile["TITLE"]?></b><?if (strlen($arProfile["DESCRIPTION"]) > 0):?><br /><?=nl2br($arProfile["DESCRIPTION"])?><?endif;?><br />
==================== УДАЛИТЬ КОНЕЦ */ ?>



<? /* ==================== edost НАЧАЛО */ ?>
          <? if ($arResult['edost']['delivery_pricelist'] != true) { ?>
          <td width="0%" valign="top">
          <table height="32" border="0" cellspacing="0" cellpadding="0"><tr><td style="vertical-align: middle; padding: 0px; margin: 0px;">
          <input type="radio" id="ID_DELIVERY_<?=$delivery_id?>_<?=$profile_id?>" name="<?=$arProfile["FIELD_NAME"]?>" value="<?=$delivery_id.":".$profile_id;?>" <?=$arProfile["CHECKED"] == "Y" ? "checked=\"checked\"" : "";?> onclick="<?= isset($arProfile['onclick']) ? $arProfile['onclick'] : "submitForm();" ?>" />
          </td></tr></table>
          </td>
          <? } ?>

          <? if ($delivery_id == 'edost') { ?>
          <td valign="top">
            <label for="ID_DELIVERY_<?=$delivery_id?>_<?=$profile_id?>"><img src="/bitrix/images/delivery_edost_img/<?= ceil($profile_id / 2)?>.gif" width="60" height="32" border="0"></label>
          </td>
          <? } ?>

          <td width="100%" <?= ($delivery_id != 'edost' ? 'colspan="2"' : ''); ?> >
            <label for="ID_DELIVERY_<?=$delivery_id?>_<?=$profile_id?>">
              <b><?=($delivery_id=='edost')?'':($arDelivery["TITLE"].' - ')?><?=$arProfile["TITLE"]?></b><?=($arProfile['day'] != '' ? ', '.$arProfile['day'] : '')?><?=(isset($arProfile['price']) && $arProfile['price'] != '' ? ' - <b>'.$arProfile['price'].'</b>' : '<br>')?>
<? /* ==================== edost КОНЕЦ */ ?>


            <?


//==================== edost НАЧАЛО
            if ( ($delivery_id != 'edost') | ($delivery_id == 'edost' && $profile_id != '0' && !(isset($arProfile['price']))) )
//==================== edost КОНЕЦ


              $APPLICATION->IncludeComponent('bitrix:sale.ajax.delivery.calculator', '', array(
                "NO_AJAX" => 'Y',
                "DELIVERY" => $delivery_id,
                "PROFILE" => $profile_id,
                "ORDER_WEIGHT" => $arResult["ORDER_WEIGHT"],
                "ORDER_PRICE" => $arResult["ORDER_PRICE"],
                "LOCATION_TO" => $arResult["USER_VALS"]["DELIVERY_LOCATION"],
                "LOCATION_ZIP" => $arResult["USER_VALS"]["DELIVERY_LOCATION_ZIP"],
                "CURRENCY" => $arResult["BASE_LANG_CURRENCY"],
              ));

            ?>
            </label>


<? /* ==================== edost НАЧАЛО */ ?>
            <?= isset($arProfile['office']) ? '<br>'.$arProfile['office'] : '' ?>

            <? if (strlen($arProfile["DESCRIPTION"]) > 0) { ?>
              <table border="0" cellspacing="0" cellpadding="0"><tr><td style="padding: 4px 0px 5px 0px; margin: 0px;">
                <?=$arProfile["DESCRIPTION"]?>
              </td></tr></table>
            <? } ?>
<? /* ==================== edost КОНЕЦ */ ?>


            </td>
          </tr>
          <?
        } // endforeach
      }
      else
      {
        ?>
        <tr>


<? /* ==================== УДАЛИТЬ НАЧАЛО
          <td valign="top" width="0%">
            <input type="radio" id="ID_DELIVERY_ID_<?= $arDelivery["ID"] ?>" name="<?=$arDelivery["FIELD_NAME"]?>" value="<?= $arDelivery["ID"] ?>"<?if ($arDelivery["CHECKED"]=="Y") echo " checked";?> onclick="submitForm();">
          </td>
          <td valign="top" width="100%">
==================== УДАЛИТЬ КОНЕЦ */ ?>


<? /* ==================== edost НАЧАЛО */ ?>
<? if ($arResult['edost']['delivery_pricelist'] != true) { ?>
          <td valign="top" width="0%">
            <input type="radio" id="ID_DELIVERY_ID_<?= $arDelivery["ID"] ?>" name="<?=$arDelivery["FIELD_NAME"]?>" value="<?= $arDelivery["ID"] ?>"<?if ($arDelivery["CHECKED"]=="Y") echo " checked";?> onclick="submitForm();">
          </td>
<? } ?>
         <td valign="top" width="100%" colspan="2">
<? /* ==================== edost КОНЕЦ */ ?>


            <label for="ID_DELIVERY_ID_<?= $arDelivery["ID"] ?>">
            <b><?= $arDelivery["NAME"] ?></b><br />
            <?
            if (strlen($arDelivery["PERIOD_TEXT"])>0)
            {
              echo $arDelivery["PERIOD_TEXT"];
              ?><br /><?
            }

            if(DoubleVal($arDelivery["PRICE"]) > 0)
            {
              echo GetMessage("SALE_DELIV_PRICE")." ".$arDelivery["PRICE_FORMATED"]."<br />";
            }
            if (strlen($arDelivery["DESCRIPTION"])>0)
            {
              ?>
              <?=$arDelivery["DESCRIPTION"]?><br />
              <?
            }
            ?>
            </label>
          </td>
        </tr>
        <?
      }
    }
    ?>
  </table>
  </div>
  </div>
  <?


//==================== edost НАЧАЛО
  if (isset($arResult['edost']['javascript2'])) echo $arResult['edost']['javascript2'];
//==================== edost КОНЕЦ


}
?>

Изменить базовые названия и задать описание для тарифов можно в языковом файле модуля:
bitrix/modules/edost.delivery/lang/ru/classes/general/delivery_edost.php
Перед исправлением рекомендуется сделать бэкап этого файла, чтобы при необходимости можно было его восстановить!
Названия тарифов выделены зеленым:
...
...
//----- Названия тарифов (без страховки) -----------
$MESS ['SALE_DH_EDOST_TARIFF_1'] = "Почта России (отправление 1-го класса)";
$MESS ['SALE_DH_EDOST_TARIFF_2'] = "Почта России (наземная посылка)";
$MESS ['SALE_DH_EDOST_TARIFF_3'] = "EMS Почта России";
...
$MESS ['SALE_DH_EDOST_TARIFF_35'] = "Самовывоз";

//----- Названия тарифов (со страховкой) -----------
$MESS ['SALE_DH_EDOST_TARIFF_S_1'] = "Почта России (отправление 1-го класса) со страховкой";
$MESS ['SALE_DH_EDOST_TARIFF_S_2'] = "Почта России (наземная посылка) со страховкой";
$MESS ['SALE_DH_EDOST_TARIFF_S_3'] = "EMS Почта России со страховкой";
...
$MESS ['SALE_DH_EDOST_TARIFF_S_35'] = "Самовывоз";


//----- Описание тарифов (без страховки) -----------
$MESS ['SALE_DH_EDOST_TARIFFN_1'] = "описание тарифа"; //"Почта России (отправление 1-го класса)";
$MESS ['SALE_DH_EDOST_TARIFFN_2'] = ""; //"Почта России (наземная посылка)";
$MESS ['SALE_DH_EDOST_TARIFFN_3'] = ""; //"EMS Почта России";
...
$MESS ['SALE_DH_EDOST_TARIFFN_35'] = ""; //"Самовывоз";

//----- Описание тарифов (со страховкой) -----------
$MESS ['SALE_DH_EDOST_TARIFFN_S_1'] = "описание тарифа"; //"Почта России (отправление 1-го класса) со страховкой";
$MESS ['SALE_DH_EDOST_TARIFFN_S_2'] = ""; //"Почта России (наземная посылка) со страховкой";
$MESS ['SALE_DH_EDOST_TARIFFN_S_3'] = ""; //"EMS Почта России со страховкой";
...
$MESS ['SALE_DH_EDOST_TARIFFN_S_35'] = ""; //"Самовывоз";
...
...
Наложенный платеж - это способ оплаты за заказ наличными в момент вручения (например, оплата в почтовом отделении при получении посылки, или оплата при самовывозе со склада магазина).
а) добавьте новую платежную систему:

Установите параметры в соответствии со скриншотами:

б) отредактируйте шаблон оплаты на сервере магазина:
bitrix/templates/шаблон/components/bitrix/sale.order.ajax/.default/paysystem.php
шаблон - это имя шаблона, который использует магазин (например, store_light_gray) Как узнать путь к шаблону?
Если в шаблоне нет папки sale.order.ajax, тогда необходимо редактировать базовый шаблон компоненты: bitrix/components/bitrix/sale.order.ajax/templates/.default/paysystem.php

Предупреждение:
Базовый шаблон может быть заменен новой версией при обновлении магазина!
Чтобы этого избежать, рекомендуется создать на основе базового шаблона новый, а уже его редактировать и использовать в магазине.
Перед исправлением рекомендуется сделать бэкап этого файла, чтобы при необходимости можно было его восстановить!
Вставьте в файл код, выделенный зеленым, и удалите выделенный красным:
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>


<? /* ==================== edost НАЧАЛО */ ?>
<?if (!empty($arResult["PAY_SYSTEM"])) {?>
<? /* ==================== edost КОНЕЦ */ ?>


<div class="order-item">
  <div class="order-title">

    <b class="r2"></b><b class="r1"></b><b class="r0"></b>
    <div class="order-title-inner">
      <span><?=GetMessage("SOA_TEMPL_PAY_SYSTEM")?></span>
    </div>
  </div>
  <div class="order-info">
<table width="100%" cellpadding="6" cellspacing="0">
  <?
  if ($arResult["PAY_FROM_ACCOUNT"]=="Y")
  {
    ?>
    <tr>
    <td colspan="2">
    <input type="hidden" name="PAY_CURRENT_ACCOUNT" value="N">
    <input type="checkbox" name="PAY_CURRENT_ACCOUNT" id="PAY_CURRENT_ACCOUNT" value="Y"<?if($arResult["USER_VALS"]["PAY_CURRENT_ACCOUNT"]=="Y") echo " checked=\"checked\"";?> onChange="submitForm()"> <label for="PAY_CURRENT_ACCOUNT"><b><?=GetMessage("SOA_TEMPL_PAY_ACCOUNT")?></b></label><br />
    <?=GetMessage("SOA_TEMPL_PAY_ACCOUNT_TEXT", Array("#MONEY#" => $arResult["CURRENT_BUDGET_FORMATED"]))?>
    <br /><br />
    </td></tr>
    <?
  }
  ?>
  <?
  foreach($arResult["PAY_SYSTEM"] as $arPaySystem)
  {
    if(count($arResult["PAY_SYSTEM"]) == 1)
    {
      ?>
      <tr>
      <td colspan="2">
      <input type="hidden" name="PAY_SYSTEM_ID" value="<?=$arPaySystem["ID"]?>">
      <b><?=$arPaySystem["NAME"];?></b>
      <?
      if (strlen($arPaySystem["DESCRIPTION"])>0)
      {
        ?>
        <br />
        <?=$arPaySystem["DESCRIPTION"]?>
        <?
      }
      ?>
      </td>
      </tr>
      <?
    }
    else
    {
      ?>
      <tr>
        <td valign="top" width="0%">


<? /* ==================== УДАЛИТЬ НАЧАЛО
          <input type="radio" id="ID_PAY_SYSTEM_ID_<?= $arPaySystem["ID"] ?>" name="PAY_SYSTEM_ID" value="<?= $arPaySystem["ID"] ?>"<?if ($arPaySystem["CHECKED"]=="Y") echo " checked=\"checked\"";?>>
==================== УДАЛИТЬ КОНЕЦ */ ?>


<? /* ==================== edost НАЧАЛО */ ?>
          <input type="radio" id="ID_PAY_SYSTEM_ID_<?= $arPaySystem["ID"] ?>" name="PAY_SYSTEM_ID" value="<?= $arPaySystem["ID"] ?>"<?if ($arPaySystem["CHECKED"]=="Y") echo " checked=\"checked\"";?> onclick="submitForm();">
<? /* ==================== edost КОНЕЦ */ ?>


        </td>
        <td valign="top" width="100%">
          <label for="ID_PAY_SYSTEM_ID_<?= $arPaySystem["ID"] ?>">
          <b><?= $arPaySystem["PSA_NAME"] ?></b><br />
          <?
          if (strlen($arPaySystem["DESCRIPTION"])>0)
          {
            ?>
            <?=$arPaySystem["DESCRIPTION"]?>
            <br />
            <?
          }
          ?>
          </label>

        </td>
      </tr>
      <?
    }
  }
  ?>
</table>
</div>
</div>

<? /* ==================== edost НАЧАЛО */ ?>
<? } ?>
<? /* ==================== edost КОНЕЦ */ ?>

в) если необходимо, чтобы наложенный платеж учитывался при изменении заказа через админку, тогда замените на сервере файл bitrix/modules/sale/admin/order_new.php на модифицированный из архива bitrix_admin_order.zip
Предупреждение!!!
1. Перед заменой рекомендуется сделать бэкап этого файла, чтобы при необходимости можно было его восстановить!
2. Это системный файл битрикса, поэтому после обновления магазина, система может восстановить этот файл на НЕ модифицированную версию!
3. Модифицированная версия order_edit.php (старый вариант редактирования заказа в 11-ой версии bitrix) НЕ поддерживает автоматический пересчет доставки, поэтому при изменении заказа через админку, для пересчета необходимо нажать кнопку Сохранить или Применить (также должна стоять галочка "Произвести автоматический пересчет параметров заказа").
г) отображение модуля Наложенный платеж в заказе:
Стоимость доставки увеличится на - это наценка на доставку за наложенный платеж (прибавляется к рассчитанной стоимости доставки).
+ доплатить при получении за денежный перевод - это сумма, которую оплачивает получатель службе доставки в момент вручения за перевод денежных средств (отдельно от стоимости заказа, указанной в бланке наложенного платежа).
Пример:
1. Цена товара: 1000 руб.
2. Цена доставки: 222 руб.
3. Наценка на доставку за наложенный платеж: 83 руб.
Итоговая стоимость заказа: 1305 руб.

Продавец:
1. Оплачивает доставку 305 руб. = 222 руб. (цена доставки) + 83 руб. (наценка на доставку за наложенный платеж)
2. Указывает в бланке сумму наложенного платежа равную стоимости заказа: 1305 руб.

Покупатель:
При получении посылки оплачивает 1392 руб. = 1305 руб. (стоимость заказа) + 87 руб. (службе доставки за услугу по переводу денежных средств).

В итоге покупателю обойдется заказ на 170 руб. дороже, по сравнению с покупкой без наложенного платежа.
В модуле eDost реализована возможность выбора покупателем постамата или пункта выдачи PickPoint, boxberry, СДЭК и DPD сразу при оформлении заказа.
Предупреждение!!!
1. Должен быть установлен шаблон eDost (
5-й пункт инструкции).
2. Для PickPoint обязательно включите виджет PickPoint в админке магазина в настройках модуля eDost.
3. В свойствах заказа должно быть поле Адрес доставки (мнемонический код: ADDRESS,
тип: TEXT или TEXTAREA, включен параметр "Входит в профиль").
Отображение выбранной точки выдачи на странице оформления заказа:

Выбранная точка выдачи переносится в поле Адрес доставки, и это поле блокируется.
Предупреждение!!!
1. Расчет по индексу действует ТОЛЬКО для Почты (наземная посылка).
2. Обязательно разрешите расчет по индексу в админке магазина в настройках модуля eDost.
3. В свойствах заказа должно быть поле Индекс (мнемонический код: ZIP,
включен параметр "Использовать как почтовый индекс").
Модуль eDost позволяет создавать бланки для посылок и отправлений 1-го класса.

Бланки создаются автоматически в соответствии с параметрами заказа и настройками модуля (т.е. для посылки печатается ф.116, для наложки ф.113эн, а для 1-го класса без наложки вообще ничего не печатается).

"От кого", "Кому", "Куда" и другие поля бланков заполняются также автоматически по данным из заказа и настойкам печатных форм магазина.

Чтобы распечатать бланки, зайдите в админку магазина, перейдите на страницу eDost, выделите необходимые заказы и нажмите кнопку Создать почтовые бланки.

Чтобы скрыть уже выполненные/отгруженные заказы используйте настройки печати (справа-вверху кнопка "Настройки").
Предупреждение!!!
1. Если после нажатия кнопки "Создать почтовые бланки" ничего не происходит, значит в вашем браузере заблокированы всплывающие окна – кликните по системному предупреждению браузера (обычно отображается в углах окна), и задайте там соответствующее разрешение.
2. На почте могут НЕ принять самостоятельно распечатанные бланки!!! Рекомендуется уточнять данный вопрос непосредственно в почтовом отделении, в котором сдаете посылки.

Заполните данные отправителя (магазина) и получателя (если свойства заказа отличаются от стандартных):

info@edost.ru

© ООО "Айсден", 2006-2014. Все права защищены.