Техническое задание
- Подключить расчет СДЭКа в корзину
- Добавить стоимость доставки в заказ
- Скорректировать формулу расчета доставки, добавив в неё индивидуальные коэффициенты
- Обеспечить зависимость расчета от веса/размера товара
- Скорректировать поля в форме заказа при выборе варианта СДЭК-курьер
Подключение виджета СДЭКа к корзине
Поскольку корзина является виджетом и работает в браузере пользователя, то обмен по традиционному протоколу API между браузером и серовом СДЭКа не реализуем. Для разрешения этой ситуации был использован аналогичный браузерный виджет самого СДЭКа и настроен обмен между двумя виджетам на одной странице.
Предварительно владельцем сайта был установлен на странице виджет СДЭК и настроена его самостоятельная работа (без корзины) через уникальный ключ из личного кабинета. Обеспечена настройка данного плагина в режиме выпадающего окна. Подробнее о настройке видежта https://widget.cdek.ru/

Добавление стоимость доставки СДЭКа в форму заказ
После выбора пункта выдачи заказа и расчета двух вариантов стоимости доставки до него (курьером и самовывозом) корзина забирает стоимость и уточняющие данные и добавляет их в заказ. При этом подсчитывается итоговая сумма.

Изменение форму расчета доставки в виджете СДЭКа
В личном кабинете СДЭКа есть возможность скорректировать расчет за счет надбавок в процентах к изначально рассчитанной стоимости. В данном случае этого оказалось недостаточно и потребовалось в расчет стоимости добавить процент от стоимости самого заказа. Для этого изменению подверглась уже рассчитанная СДЭКом сумма в момент её передачи в корзину. А в самом виджете блоки с отображением стоимости доставки были скрыты.

Передача веса/размера в виджет СДЭКа
В личном кабинете корзины нет полей, специально предназначенных для хранения информации о габаритах позиции товара. Для этих целей было предложено использование поля “Примечание”. При изменении состава заказа в виджет СДЭКа передается информация о товарах, содержащихся в корзине и происходит расчет с учетом суммарного веса/габарита.
Поля в форме заказа при выборе варианта с курьером
Для рассчета стоимости доставки курьером в виджете СДЭКа не требуется указывать точный адрес, достаточно только указать населенный пункт. Однако, данная информация потребуется в самом заказе. Поэтому при выборе данного вида доставки в списке полей появляется дополнительное поле для ввода точного адреса доставки.