1С-Битрикс: инструкция по подключению модуля доставки eDost.ru
Для работы модуля, интернет-магазин необходимо подключить к системе eDost.
Предупреждение!!!
1. Чтобы рассчиталась доставка, у всех товаров в корзине должен быть задан вес!
2. Чтобы в расчете доставки учитывались габариты посылки, у каждого товара должны быть прописаны его размеры (длина, ширина, высота).
3. Обязательно задайте компании, через которые будет производиться расчет доставки
личном кабинете eDost в настройках магазина).
4. Магазин кэширует результаты расчетов, поэтому, после изменения настроек в личном кабинете, для пересчета доставки в магазине необходимо сбросить кэш.
5. Модуль поддерживает только стандартный компонент оформления заказа (sale.order.ajax).
6. Обязательно укажите шаблон, на котором работает оформление заказа, в админке в настройках модуля eDost (или отключите, если не используете ни один из поддерживаемых шаблонов).
1. Установка модуля eDost
Запустите установку модуля через Marketplace, и завершите установку в админке магазина:
2. Настройка модуля eDost
3. Загрузка списка местоположений
Для корректной работы калькулятора доставки рекомендуется установить список местоположений, соответствующий стандарту системы eDost.
Предупреждение!!!
1. Новый список местоположений заменяет уже существующий, поэтому в старых заказах и в личных данных зарегистрированных покупателей местоположения могут сброситься.
2. Если магазин работает на местоположениях 2.0, но используется старый список (в типах местоположений содержится только три записи), тогда сначала необходимо импортировать дефолтные местоположения, чтобы в базах битрикса прописались все необходимые поля.
Удалите старый список с местоположениями России:
Выберите в архиве подходящий для вашего магазина список, и импортируйте согласно инструкции:
Сбросьте кэш магазина:
4. Учет габаритов
Для точного расчета доставки у товаров должны быть заданы габаритные размеры (длина, ширина, высота).
Предупреждение!!!
1. Без учета габаритов стоимость доставки может получиться намного МЕНЬШЕ реальной!
2. Если габариты не заданы, тогда доставка рассчитывается только по весу.
3. Если у вас в магазине представлены исключительно мелкие товары (например, парфюмерия), тогда габариты можно не указывать.
4. Чтобы габариты учитывались в расчетах, необходимо в личном кабинете eDost в настройках магазина поставить галочку Учитывать в расчетах габариты груза, и выбрать единицу измерения габаритов миллиметры (или другую, если в магазине используется нестандартная размерность).
Габариты задаются в настройках товара в стандартных полях:
5. Шаблон eDost
Шаблон eDost - это улучшенное оформление заказа с широкими возможностями (два варианта дизайна, любой цвет, выбор пунктов выдачи на общей карте, продвинутая адаптивность, уникальная система приоритетов оплаты, бонусы доставки, скидки способов оплаты, кнопка быстрого оформления и многое другое).
подключение шаблона eDost
включение gzip сжатия
Для ускорения работы страницы оформления заказа рекомендуется включить сжатие.

По вопросу включения сжатия вам необходимо обращаться к системному администратору вашего сайта.

А если сервер магазина поддерживает такую функцию, тогда достаточно будет скопировать в папку страницы оформления заказа (по умолчанию /personal/order/make/) файл .htaccess из архива.
Предупреждение!!!
Сжатие требует больше ресурсов, поэтому на слабых серверах может приводить к сбою.
показать старый шаблон eDost/Visual
7. Наложенный платеж
Наложенный платеж - это способ оплаты за заказ наличными в момент вручения (например, оплата в почтовом отделении при получении посылки, или оплата наличными курьеру при вручении заказа).

Функциональные возможности системы наложенного платежа eDost:
1. Управление из личного кабинета eDost.
2. Включение в заказ наценок наложенного платежа.
3. На странице оформления заказа способ оплаты "Наложенный платеж" появляется только при выборе тарифов доставки, для которых наложенный платеж включен в личном кабинете и доступен по параметрам заказа, настройкам и ограничениям перевозчиков.
Предупреждение!!!
1. Отображение наценок наложенного платежа реализовано только для стандартного оформления заказа (sale.order.ajax).
2. Обязательно включите наложенный платеж в личном кабинете eDost в настройках магазина (внизу страницы с настройками).
3. В магазине должна быть только одна платежная система с обработчиком "edostpaycod".
4. В админке магазина НЕ нужно врунчую привязывать наложенный платеж к способам доставки.
5. В настройках страницы оформления заказа должна быть установлена последовательность оформления "Доставка -> Оплата".
6. После любых изменений в настройках платежных систем, обязательно пересохраняйте привязки к оплате в настройках модуля eDost.
Добавьте новую платежную систему:

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

Отображение модуля "Наложенный платеж" в заказе:
Стоимость доставки увеличится на - это наценка на доставку при наложенном платеже (включается в заказ - прибавляется к стоимости доставки).
+ доплатить при получении за денежный перевод - это сумма, которую оплачивает получатель на почте в момент вручения за перевод денежных средств, ОТДЕЛЬНО от стоимости заказа, указанной в бланке наложенного платежа (в заказ НЕ включается, выводится только для информации).
Пример:
1. Цена товара: 1 000 руб.
2. Цена доставки: 200 руб.
3. Наценка на доставку при наложенном платеже: 140 руб.
Итоговая стоимость заказа: 1 340 руб.

Магазин:
1. Оплачивает доставку 340 руб. = 200 руб. (цена доставки) + 140 руб. (наценка на доставку при наложенном платеже)
2. Указывает в бланке сумму наложенного платежа равную стоимости заказа: 1 340 руб.

Покупатель:
При получении посылки оплачивает 1 489 руб. = 1 340 руб. (стоимость заказа) + 149 руб. (за услугу по переводу денежных средств) - в итоге покупателю заказ обойдется на 289 руб. дороже, по сравнению с покупкой без наложенного платежа.

Служба доставки:
1. Берет с покупателя 1 489 руб.
2. Возвращает продавцу полностью всю стоимость заказа: 1 340 руб.
3. Оставляет себе за услугу перевода 149 руб.
8. Постаматы и пункты выдачи
В модуле eDost реализована возможность выбора покупателем постамата, пункта выдачи или терминала доставки.
Предупреждение!!!
1. В админке магазина в настройках модуля должна стоять галочка "Включить выбор постаматов и пунктов выдачи на карте" (только при выборе на карте).
2. В свойствах заказа должно быть поле Адрес доставки (мнемонический код: ADDRESS,
тип: Строка [STRING], включен параметр "Входит в профиль", привязка свойства: не выбрано ни одной Платежной системы и Службы доставки).
Выбранная точка выдачи переносится в поле Адрес доставки, и это поле блокируется:

9. Расчет по индексу
Почтовый индекс служит для уточнения местоположения и точного расчета доставки.
Например, для расчета доставки в поселок Дубки в Ярославской области, при оформлении заказа необходимо выбрать регион "Ярославская область", город "Нет в списке" (при выборе местоположений списками) и указать индекс "150545".

Расчет по индексу действует только для Почты (наземная посылка) и EMS.
Предупреждение!!!
1. Расчет по индексу включается в админке магазина в настройках модуля eDost.
2. В свойствах заказа должно быть поле Индекс (мнемонический код: ZIP,
включен параметр "Использовать как почтовый индекс", тип: Строка [STRING], включен параметр "Входит в профиль", привязка свойства: не выбрано ни одной Платежной системы и Службы доставки).
Если указан НЕ существующий индекс (или индекс НЕ принадлежит выбранному региону), тогда расчет НЕ производится и калькулятор выдает соответствующее предупреждение (для вывода предупреждений требуется шаблон - 5-й пункт инструкции).
10. Оформление доставки
Функция оформления доставки позволяет зарегистрировать заказ в системе службы доставки с присвоением идентификатора отправления и печатью бланков (поддерживается только почта и СДЭК).
Предупреждение!!!
1. Заполните данные доступа в личном кабинете eDost в разделе контроль заказов.
2. Если после нажатия кнопки "распечатать" ничего не происходит, значит в вашем браузере заблокированы всплывающие окна – кликните по системному предупреждению браузера (обычно отображается в углах окна), и задайте там соответствующее разрешение.
3. Для хранения веса, габаритов и опций оформляемых заказов, в админке > Магазин > Настройки > Свойства заказа > Список свойств - необходимо добавить новое свойство Параметры упаковки (мнемонический код: PACKAGE, тип: Строка [STRING], включен параметр "Служебное", привязка свойства: не выбрано ни одной Платежной системы и Службы доставки).
Оформление доставки:
1. Проверить новый заказ, и если с ним все в порядке и его можно отправлять, тогда разрешить у него доставку:
2. Перейти на страницу оформления доставки (админка > Магазин > eDost > Оформление доставки):
Печать без оформления:
- доступно только для почтовых отправлений
- не нужно указывать вес и габариты (заполняются оператором при приеме отправления)
- не нужен договор с почтой и регистрация на otpravka.pochta.ru
- идентификатор присваивается после сдачи отправления в почтовом отделении

Если будете использовать функцию печати без оформления, тогда обязательно заполните данные отправителя (магазина) и получателя (если свойства заказа отличаются от стандартных):
11. Контроль заказов
Функция контроля заказов позволяет администратору магазина отслеживать состояние заказа с момента передачи отправления в службу доставки и до момента вручения покупателю.

Функциональные возможности:
1. Вывод текущего статуса заказа и просмотр детальной информации по всем статусам доставки (в админке магазина и в личном кабинете покупателя).
2. Предупреждение администратора о новых важных статусах - в админке отметка или
новый

После ознакомления с важным статусом, чтобы в дальнейшем данный заказ не выделялся, следует снять отметку (нажать соответствующую кнопку или кликнуть по ).
3. Заказ можно поставить на особый контроль, тогда система будет сообщать о любом изменении статуса, как о важном, и выделять такие заказы в отдельный блок с отметкой
на особом контроле
Предупреждение!!!
1. Настройте параметры контроля в личном кабинете eDost и в админке битрикса.
2. Для постановки заказа на контроль у отгрузки в магазине должна быть разрешена доставка и указан идентификатор отправления (присваивается службой доставки при приемке отправления).
3. Для контроля наложки должен быть настроен наложенный платеж.
4. Информация по статусам заказов обновляется примерно раз в день, а в выходные и федеральные праздники задержки могут доходить до недели!!!
5. Реальный статус отправления может отличаться от статуса в системе по множеству различных причин (например, информация еще не обновилась, работник службы доставки забыл внести данные, партнер не обновил свою базу, сбой на сервере службы доставки, и т.д.).
12. Мои заказы
При использовании функции контроля, в шапку сайта (или любое другое место) можно добавить блок "мои заказы" со списком текущих заказов покупателя.
Интеграция блока "мои заказы" в шапку сайта:
bitrix/templates/шаблон магазина/header.php
Предупреждение!!!
1. Перед редактированием рекомендуется сделать бэкап оригинального файла магазина, чтобы при необходимости можно было все восстановить.
2. Модифицированный файл может быть заменен новой версией при обновлении шаблона/магазина, тогда все правки сбросятся!
Вставьте в файл код, выделенный зеленым:
...
...
                </span>
                <?$APPLICATION->ShowProperty("CATALOG_COMPARE_LIST", "");?>

<?
// блок "мои заказы" со статусами текущих заказов покупателя
if (CModule::IncludeModule('edost.delivery'))
    $GLOBALS['APPLICATION']->IncludeComponent('edost:delivery', '', array(
        'MODE' => 'user_order',
        'PARAM' => array(
//            'div_class' => 'bx-basket-block',
//            'div_style' => 'padding: 5x 0 5px 0; font-size: 12px;',
//            'a_class' => '',
//            'a_style' => 'font-size: 12px;',
//            'user_order_head' => 'мой заказ:', // название заголовка для одного заказа
//            'user_order_head2' => 'мои заказы:', // название заголовка для нескольких заказов
            'user_order_max' => 2, // ограничение количества заказов
            'user_order_string_length' => 15, // максимальная длина строки статуса (все, что больше, будет обрезано и заменено на '...')
//            'user_order_number_hide' => true, // скрыть номер заказа
//            'order_detail_link' => '/personal/order/detail/%order_id%/', // ссылка на страницу с детальной информацией о заказе ('%order_id%' - ид заказа, '%order_number%' - номер заказа)
//            'test' => 100, // тестовый вывод (для отладки положения и стилей, 100 - номер заказа)
        ),
    ), null, array('HIDE_ICONS' => 'Y'));
?>

            </div>
            <div class="brand">
...
...
13. Личный кабинет покупателя
Интеграция в личный кабинет покупателя открывает дополнительный функционал:
1. Корректный вывод названий тарифов доставки (с иконками, без названия модуля и лишних скобок).
2. Вывод пунктов выдачи со ссылкой на карту (с подробным описанием), форматирование адреса доставки, скрытие служебных полей (примерный почтовый индекс, и т.п.).
3. При использовании функции контроля, вывод текущего статуса заказа и подробной информации по доставке.
Интеграция в шаблон "Подробная информация о заказе (bitrix:sale.personal.order.detail)"
bitrix/templates/шаблон магазина/components/bitrix/sale.personal.order.detail/шаблон компоненты/template.php
Предупреждение!!!
1. Перед редактированием рекомендуется сделать бэкап оригинального файла магазина, чтобы при необходимости можно было все восстановить.
2. Если в шаблоне нет папки sale.personal.order.detail, тогда необходимо редактировать базовый шаблон компоненты: bitrix/components/bitrix/sale.personal.order.detail/templates/.default/
Базовый шаблон может быть заменен новой версией при обновлении магазина!
Чтобы этого избежать, рекомендуется создать на основе базового шаблона новый, а уже его редактировать и использовать в магазине.
В начале сразу после строчки "<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>", добавьте:
<?
// обработка данных страницы "Подробная информация о заказе"
if (CModule::IncludeModule('edost.delivery')) {
    $ar = $GLOBALS['APPLICATION']->IncludeComponent('edost:delivery', '', array(
        'MODE' => 'sale.personal.order.detail',
        'PARAM' => array(
//            'ico' => 'N', // 'N' - не выводить иконку тарифа
//            'anchor' => 'N', // 'N' - не добавлять к названию тарифа якорь ("shipment_10", 10 - id отгрузки) - используется для перехода к отгрузке из списка заказов в шапке сайта
//            'anchor_up' => 40, // на сколько пикселей прокрутить вверх после перехода по якорю (по умолчанию: 20)
//            'loading' => 'loading_small_f2.gif', // иконка загрузки детальной информации по статусам заказа
        ),
        'RESULT' => $arResult,
    ), null, array('HIDE_ICONS' => 'Y'));
    if (!empty($ar)) $arResult = $ar;
}
?>
Интеграция в шаблон "Мои заказы (bitrix:sale.personal.order.list)"
bitrix/templates/шаблон магазина/components/bitrix/sale.personal.order.list/шаблон компоненты/template.php
В начале сразу после строчки "<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>", добавьте:
// обработка данных страницы "Мои заказы"
if (CModule::IncludeModule('edost.delivery')) {
    $ar = $GLOBALS['APPLICATION']->IncludeComponent('edost:delivery', '', array('MODE' => 'sale.personal.order.list', 'RESULT' => $arResult), null, array('HIDE_ICONS' => 'Y'));
    if (!empty($ar)) $arResult = $ar;
}
Доработка шаблонов
Удалить код выделенный красным, и добавить выделенный зеленым:
echo htmlspecialcharsbx($property["VALUE"]);
echo $property["VALUE"];
<? if (strlen($shipment["DELIVERY_NAME"])) {
    ?>
    <div class="sale-order-detail-payment-options-methods-shipment-list-item">
        <?=Loc::getMessage('SPOD_ORDER_DELIVERY')?>: <?=htmlspecialcharsbx($shipment["DELIVERY_NAME"])?>
        <?=Loc::getMessage('SPOD_ORDER_DELIVERY')?>: <?=$shipment["DELIVERY_NAME"]?>
    </div>
    <?
} ?>

<div class="sale-order-detail-payment-options-methods-shipment-list-item">
    <?= Loc::getMessage('SPOD_ORDER_SHIPMENT_STATUS')?>:
    <?= htmlspecialcharsbx($shipment['STATUS_NAME'])?>
</div>

<? if (!empty($shipment['TRACKING_STATUS'])) { ?>
<div class="sale-order-detail-payment-options-methods-shipment-list-item">
    <?=$shipment['TRACKING_STATUS_HEAD']?>:
    <div style="padding: 5px 0 0 20px;"><?=$shipment['TRACKING_STATUS']?></div>
</div>
<? } ?>
14. Разработчикам
В коде модуля прописаны события, используя которые можно модифицировать входные параметры заказа и результаты расчета (например, заблокировать модуль в городе магазина, или заменить рассчитанную стоимость доставки своим значением).
Предупреждение!!!
Если у Вас нет опыта программирования и знаний по внутренней работе bitrix, тогда не рекомендуем самостоятельно вносить какие-либо изменения (иначе можно получить непредсказуемый результат!).
Подключение:
в файле с константами модуля: bitrix/modules/edost.delivery/classes/general/edost_const.php
установите: define('DELIVERY_EDOST_FUNCTION', 'Y');

Файл с функциями событий:
bitrix/modules/edost.delivery/classes/general/edost_function.php

События:
BeforeCalculate(&$order, &$config) вызывается перед расчетом доставки
BeforeCalculateRequest(&$order, &$config) вызывается после обработки параметров заказа и перед запросом на сервер eDost
AfterCalculate($order, $config, &$result) вызывается после расчета доставки
BeforeGetOffice($order, &$company) вызывается перед загрузкой данных по пунктам выдачи
AfterGetOffice($order, &$result) вызывается после загрузки данных по пунктам выдачи
AfterGetOrderOffice($order, &$office) вызывается после загрузки данных по пункту выдачи сохраненному в заказе
используется при выводе данных в админке и личном кабинете покупателя при просмотре данных по оформленным заказам
info@edost.ru

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