1С-Битрикс: инструкция по подключению модуля
Расчет доставки (Почта, СДЭК, ПЭК, Энергия и др.)
Предупреждение!!!
1. Для работы модуля интернет-магазин необходимо подключить к системе eDost.
2. Чтобы рассчиталась доставка, у всех товаров в корзине должен быть задан вес.
3. Чтобы в расчете доставки учитывались габариты посылки, у каждого товара должны быть прописаны его размеры (длина, ширина, высота).
4. Обязательно задайте компании, через которые будет производиться расчет доставки
личном кабинете eDost в настройках магазина).
5. Магазин кэширует результаты расчетов, поэтому, после изменения настроек в личном кабинете, для пересчета доставки в магазине необходимо сбросить кэш.
6. Модуль поддерживает только стандартный компонент оформления заказа (sale.order.ajax).
7. Обязательно укажите шаблон, на котором работает оформление заказа, в админке в настройках модуля eDost (или отключите, если не используете ни один из поддерживаемых шаблонов).
8. Чтобы на карте с пунктами выдачи работал поиск по адресу, необходимо прописать api ключ для Яндекс карты в настройках модуля "Управление структурой" (админка > Настройки > Настройки продукта > Настройки модулей).
1. Установка модуля eDost
2. Настройка модуля eDost
3. Загрузка списка местоположений
Для корректной работы калькулятора доставки рекомендуется установить список местоположений, соответствующий стандарту eDost.

При необходимости можно использовать стандартный список местоположений Битрикса, только доставка при этом будет рассчитываться не во все местоположения и не по всем тарифам (хотя в подавляющем большинстве расчет работать будет).
Новый список местоположений заменяет уже существующий, поэтому в старых заказах и в личных данных зарегистрированных покупателей местоположения могут сброситься.
Удаление старого списка местоположений
если требуется удалить все старые списки, тогда вместо ручного удаления, можно на странице импорта поставить галочку "удалить все существующие местоположения"
Импорт нового списка местоположений
файлы с местоположениями eDost: bitrix_city.zip
После импорта местоположений необходимо сбросить кэш магазина
4. Учет габаритов
Для точного расчета доставки у товаров должны быть заданы габаритные размеры (длина, ширина, высота).
Предупреждение!!!
1. Без учета габаритов стоимость доставки может получиться намного МЕНЬШЕ реальной!
2. Если габариты не заданы, тогда доставка рассчитывается только по весу.
3. Если в магазине представлены мелкие товары (например, парфюмерия), тогда габариты у них можно не указывать.
4. Чтобы габариты учитывались в расчетах, необходимо в личном кабинете eDost у магазина в разделе настройки поставить галочку учитывать в расчетах габариты груза, и выбрать единицу измерения габаритов миллиметры (или другую, если в магазине используется нестандартная размерность).
5. Шаблон eDost
Шаблон eDost - это улучшенное оформление заказа с уникальным функционалом и множеством вариантов настроек.
Предупреждение!!!
1. НЕ рекомендуем дорабатывать шаблон eDost, потому что это сложная система, в которую входят модуль, компонент, события, языковые файлы, стили и js скрипты (это десятки тысяч строк кода), поэтому даже незначительные изменения могут потребовать больших затрат времени и средств. И главное, после доработок не будут доступны штатные обновления, соответственно не будет исправлений, улучшений и нового функционала.
2. Если требуется доработать шаблон, тогда необходимо сделать его копию (папка с доработанным шаблоном НЕ должна называться "edost" или "edost_2019") и все работы проводить на этой копии (иначе после обновления модуля eDost все правки сбросятся).
3. Простые правки можно производить без доработки шаблона через внешние стили (стили можно добавить в код страницы оформления заказа в файл "index.php" или в общие стили сайта).
4. В шаблоне eDost реализована сложная схема адаптации, поэтому вносить изменения в шаблон, особенно связанные с добавлением, удалением, размерами и видимостью блоков, необходимо очень осторожно с обязательным тестированием при различных тарифах, на различных устройствах, положении экрана и т.д. (иначе на компьютере разработчика все будет выглядеть нормально, а у покупателя, например, на телефоне с вертикальным расположением экрана верстка "поплывет" и он не сможет оформить заказ).
Пример отображения шаблона eDost
Подключение шаблона eDost
Включение gzip сжатия
Для ускорения работы страницы оформления заказа рекомендуется включить сжатие.

По вопросу включения сжатия вам необходимо обращаться к системному администратору вашего сайта. А если сервер магазина поддерживает такую функцию, тогда достаточно будет скопировать в папку страницы оформления заказа (по умолчанию /personal/order/make/) файл .htaccess из архива.
Сжатие требует больше ресурсов, поэтому на слабых серверах может приводить к сбою.
показать старый шаблон eDost/Visual
7. Наложенный платеж
Система наложенного платежа eDost позволяет учитывать наценки и ограничения, действующие при оплате за заказ при получении.
Предупреждение!!!
1. Оплата за заказ при получении физически возможна НЕ во всех городах, НЕ во всех пунктах выдачи, и НЕ на любую сумму (причина в ограничениях служб доставки). Система наложенного платежа eDost все это учитывает, поэтому если ваш магазин отправляет заказы с оплатой при получении, тогда рекомендуется использовать именно систему eDost.
2. Учет наложенного платежа реализован только для стандартного оформления заказа (sale.order.ajax).
3. Необходимо включить наложенный платеж в личном кабинете eDost у магазина в разделе "наложка".
4. В магазине должна быть только одна платежная система с обработчиком "edostpaycod".
5. В админке магазина НЕ нужно врунчую привязывать наложенный платеж к способам доставки.
6. В настройках страницы оформления заказа должна быть установлена последовательность оформления "Доставка > Оплата".
7. После любых изменений в настройках платежных систем, необходимо пересохранять привязки к оплате в настройках модуля (админка Битрикса > Магазин > eDost > Привязка к оплате).
Добавление платежной системы
Пример отображения оплаты при получении в заказе
Стоимость доставки увеличится на - это наценка на доставку при наложенном платеже (включается в заказ - прибавляется к стоимости доставки).
+ доплатить при получении за денежный перевод - это сумма, которую оплачивает получатель на почте в момент вручения за перевод денежных средств, ОТДЕЛЬНО от стоимости заказа, указанной в бланке наложенного платежа (в заказ НЕ включается, выводится только для информации).
Пример:
1. Цена товара: 1 000 руб.
2. Цена доставки: 200 руб.
3. Наценка на доставку при наложенном платеже: 100 руб.
Итоговая стоимость заказа: 1 300 руб.

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

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

Служба доставки:
1. Берет с покупателя 1 492 руб.
2. Возвращает продавцу полностью всю стоимость заказа 1 300 руб.
3. Оставляет себе за услугу перевода 192 руб.
8. Постаматы и пункты выдачи
В модуле eDost реализована возможность выбора покупателем постамата, почтового отделения, пункта выдачи или терминала доставки. Данные по выбранной покупателем точке выдачи сохраняются в адресном поле заказа.
Пример сохраненного в заказе пункта выдачи:
Пункт выдачи СДЭК: проспект Мира, д. 25, телефон: +7-905-941-32-82, часы работы: пн.-пт. с 10:00 до 20:00, сб.-вс. с 10:00 до 18:00, код филиала: OMS7/7486/1_1-36/17-Y

Код филиала содержит системные данные по выбранной точке:
OMS7 - код в системе службы доставки
7486 - идентификатор в системе eDost
1_1-36 - тип _ тип 2 - опции
17-Y - ID доставки Битрикса - Y (наложка)

Преобразовать адрес из строки в массив можно используя функцию из класса модуля:
$office = edost_class::ParseOfficeAddress($address);
Предупреждение!!!
1. В админке Битрикса > Магазин > Настройки > Свойства заказа > Список свойств - должно быть поле Адрес доставки с параметрами:
- мнемонический код ADDRESS
- тип Строка [STRING]
- включен параметр Входит в профиль
- отчистить Значение по умолчанию (должна быть пустая ячейка)
- привязка свойства не выбрано ни одной привязки
2. Выбор почтовых отделений на карте включается в настройках модуля (админка Битрикса > Магазин > eDost > Настройки).
3. У Яндекс Доставки код сокращенный - только 6 последних символов от оригинального кода (все сокращенные коды уникальны, поэтому их можно использовать для идентификации).
4. У MagicTrans код технический, т.к. в системе самой службы доставки кодировки терминалов не предусмотрено.
5. У почтовых отделений код нестандартный вида: zip/101000/1_1/3 (zip - маркер, 101000 - почтовый индекс отделения)
6. У собственных пунктов выдачи магазина (созданных в личном кабинете eDost), если не задан код, тогда вместо него подписывается буква S - например: S/123456A123456/3_3-5/69
7. Отключить сохранение телефона пункта выдачи можно в настройках модуля (админка Битрикса > Магазин > eDost > Настройки).
9. Расчет по индексу
Если в магазине нет доставки Почтой и курьером boxberry, тогда индекс лучше не настраивать, т.к. он будет только мешать покупателям при оформлении заказа.
Если в заказе указан не существующий индекс (или индекс не принадлежит выбранному региону), тогда расчет не производится и калькулятор выдает соответствующее предупреждение.
Настройка почтового индекса
1. В админке Битрикса > Магазин > eDost > Настройки - поставить галочку Использовать в расчете почтовый индекс
2. В админке Битрикса > Магазин > Настройки > Свойства заказа > Список свойств - включить (если нет, добавить) поле Индекс:
- мнемонический код: ZIP
- тип: Строка [STRING]
- включен параметр Входит в профиль
- отчистить Значение по умолчанию (должна быть пустая ячейка)
- включен параметр Использовать как почтовый индекс
- привязка свойства: не выбрано ни одной привязки
10. Оформление доставки
Функция оформления доставки позволяет зарегистрировать заказ в системе службы доставки с присвоением идентификатора отправления и печатью бланков.
Предупреждение!!!
1. Неообходимо заполнить данные доступа в личном кабинете eDost в разделе контроль заказов или в админке магазина в профиле организаций (админка Битрикса > Магазин > eDost > Оформление доставки - там справа вверху кнопка "показать настройки" и дальше кнопка "Профили организаций").
2. При оформлении доставки списывается 1 купленный заказ в системе контроля/оформления eDost. После передачи заказа в службу доставки и начала движения заказ переходит на контроль и списывается еще 1 купленный заказ в системе контроля/оформления eDost. Если контроль не нужен, тогда его можно отключить в личном кабинете eDost в разделе контроль заказов - там необходимо снять галочку "автоматически ставить на контроль после оформления доставки".
3. Если после нажатия кнопки "распечатать" ничего не происходит, значит в вашем браузере заблокированы всплывающие окна (наобходимо зайти в настройки браузера и задать там соответствующее разрешение).
4. Для хранения веса, габаритов и опций доставки модуль eDost использует поле Параметры упаковки (PACKAGE). В настройках модуля есть кнопка для автоматического добавления данного свойства (админка Битрикса > Магазин > eDost > Настройки). При необходимости поле можно добавить вручную в админке Битрикса > Магазин > Настройки > Свойства заказа > Список свойств: название: Параметры упаковки, мнемонический код: PACKAGE, тип: Строка [STRING], включен параметр "Служебное", привязка свойства: не выбрано ни одной привязки.
5. В настройках магазина можно автоматически разрешать доставку после оплаты заказа: админка Битрикса > Настройки > Настройки продукта > Настройки модулей > Интернет-магазин - там в закладке "Автоматизация процессов" параметр "Разрешать доставку при оплате заказа".
6. Для оформления доставки с наложкой должен быть настроен наложенный платеж.
Печать без оформления
- доступно только для почтовых отправлений (наземная посылка и посылка 1-го класса)
- не нужно указывать вес и габариты (заполняются оператором при приеме отправления)
- не нужен договор с почтой и регистрация на сайте почты
- идентификатор присваивается после сдачи отправления в почтовом отделении

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

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

Модифицированный файл может быть заменен новой версией при обновлении шаблона магазина, тогда все правки сбросятся!
13. Личный кабинет покупателя
Интеграция в личный кабинет покупателя открывает дополнительный функционал:
1. Корректный вывод названий тарифов доставки (с иконками, без названия модуля и лишних скобок).
2. Вывод пунктов выдачи со ссылкой на карту (с подробным описанием), форматирование адреса доставки, скрытие служебных полей (примерный почтовый индекс, и т.п.).
3. При использовании функции контроля, вывод текущего статуса заказа и подробной информации по доставке.
Интеграция в шаблон "Подробная информация о заказе":
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/
Базовый шаблон может быть заменен новой версией при обновлении магазина!
Чтобы этого избежать, рекомендуется создать на основе базового шаблона новый, а уже его редактировать и использовать в магазине.
3. Для просмотра подробной информации о заказе по ссылке без авторизациии, в настройках модуля интернет-магазин в разделе Настройки показа карточки заказа в публичной части необходимо поставить галочку Разрешить просмотр заказа по ключу без авторизации, установить статусы и шаблон (подробнее...).
Добавить в начало файла, сразу после строчки:
<?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(
            'GUEST_MODE' => (!empty($arParams['GUEST_MODE']) ? $arParams['GUEST_MODE'] : ''), // режим гостя (когда в настройках битрикса разрешен просмотр заказа по ссылке без автризации)
//            '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/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/modules/edost.delivery/classes/general/edost_const.php

define('DELIVERY_EDOST_WEIGHT_PROPERTY_NAME', 'WEIGHT'); // название свойства (PROPERTY) товара, в котором хранится вес (заглавными буквами)

define('DELIVERY_EDOST_WEIGHT_PROPERTY_MEASURE', 'G'); // 'KG' или 'G' - единица измерения свойства (PROPERTY) товара, в котором хранится вес

// названия свойств (PROPERTY) товара, в которых хранятся габариты
// единица измерения габаритов задается в личном кабинете eDost у магазина в раздлеле "настройки"
define('DELIVERY_EDOST_LENGTH_PROPERTY_NAME', 'LENGTH');
define('DELIVERY_EDOST_WIDTH_PROPERTY_NAME', 'WIDTH');
define('DELIVERY_EDOST_HEIGHT_PROPERTY_NAME', 'HEIGHT');


Если требуется модифицировать входные параметры заказа и результаты расчета (например, заблокировать модуль в городе магазина, или заменить рассчитанную стоимость доставки своим значением), тогда можно сделать это через события модуля.
info@edost.ru

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