12.04.2013

Расчет доставки для сайта «newcom.ru»

На сайт newcom.ru - внедрен расчет стоимости доставки в регионы России.

Такой расчет стал возможен благодаря сервису edost.ru.
Данный сервис принимает запросы с информацией о весе, стоимости и размерах товаров, находящихся в корзине пользователя (данные параметры берутся из свойств товара), а так же о городе назначения и расчитывает стоимость доставки с использованием одной или нескольких транспортных компаний.



Сервис edost даже имеет модуль для bitrix, позволяющий использовать готовую реализацию протокола обмена информацие с сервисом. Однако в модуле жестко заданы коды свойств в которых хранятся размеры товара. Каждый размер (ширина, высота, длина) должны хранится в отдельном свойстве, однако на сайте компании НьюКом для размеров было единое свойство-строка в котором указаны все 3 размера. Чтобы не редактировать всю товарную базу было принято решение модифицировать код модуля, который получает значение габаритов товара. Благодаря понятной структуре модуля, сделать это было не сложно.

Однако появилась ещё одна задача: сделать в карточке товара калькулятор стоимости доставки. Такой модуль + компонент тоже существует, однако задание было сложнее, нужно было не просто расчитать стоимость доставки данного товара, но и дать возможность пользователю прикинуть, сколько будет стоить доставка с учетом ужен находящихся в корзине товаров и без них. Такого функционала не было и снова пришлось модифицировать код. Мы оставили готовый протокол обмена информацией с сервисом edost, но весь код компонента, который собирает инфрмацию о товарах перед отправкой запроса был переписан для того, чтобы можно было формировать гибкие запросы - как для одного товара, так и для товаров находящихся в данный момент в корзине.
Шаблон вывода компонента соответственно тоже был полностью переделан в соответствии с отрисованными макетами и логикой работы нового функиционала.