Универсальный модуль доставки с закачкой данных по API от Dalli и IML, общим списком курьерской доставки и общей картой ПВЗ

Переезжаем с другой CMS. Там у нас был свой модуль доставки допиленный за время использования до ума и главное работающий автономно от API сервисов служб доставки.
Посмотрел разные модули что есть для CS-CART и как они выглядят на сайте для клиента… честно не могу воспринимать это серьезно, они убоги по определению, особенно когда надо совместить несколько разных логистов.
Может возьмется кто то сделать мне нормальный модуль для CS-CART под мои хотелки, примерное ТЗ накидаю по тому как делали на старом сайте, но в деталях можете сами определяться.

Старый сайт тут: https://bonkids.ru/dostavka-i-oplata
Сейчас там отображаются одновременно доставки прописанные руками + IML + Dalli-Service (причем так как последние интеграторы в сторону СДЭК, PickPoint и Boxberry, то видим доставки и по ним тоже(в столицах PickPoint отключен)

Общий алгоритм решения следующий:
Загружаем по расписанию (обычно раз в сутки) все варианты доставки (курьерской и ПВЗ) в таблицы базы CMS, используя совпадающие идентификаторы или dadata.ru сервис унифицируем справочники населенных пунктов всех подключенных логистов к единому используемому dadata.
Если при загрузке возникают нестандартные ситуации не предусмотренные ранее алгоритмом обработки или ошибки, то сообщаем об этом администратору, для принятия решений или правок. Через тот же сервис dadata.ru получаем от клиента его населенный пункт, и выводим ему все возможные курьерские доставки для этого пункта + возможность выбрать ПВЗ в общем списке или на карте сразу от всех логистов.
На карте есть фильтр ПВЗ по службам (также есть отключенный сейчас фильтр по услугам (типа оплата картами, наличными, примерка).
Клиент выбирает нужный вариант курьерки или ПВЗ и они добавляются в заказ.
Вес, габариты конкретных товаров пока не учитываем - считаем по средне установленному для всех заказов. Учет страховки и комиссии логиста по нашему желанию как настройка.

Вот примерно тоже самое надо сделать в CS-CART: универсальные таблицы под данные по доставке внутри базы CMS, универсальный модуль отображения курьерской доставки списком и ПВЗ для всех логистов на одной карте или списком (также с фильтрами по компаниям и услугам и конечно с версткой под все варианты устройств) и 2 модуля загрузки по расписанию данных по API от Dalli и от IML

PHP и js код от нашего старого сайта (https://bonkids.ru/dostavka-i-oplata) можно спокойно использовать, но там он грязноватый конечно, может и проще все с нуля переписать.

Плюс дополнительно экспорт в Excel передаваемых в доставку заказов. Т.е. выбираем все заказы передаваемые сегодня в Dalli или IML и на основании данных в выбранных заказах заполняем Excel файлик нужного формата (свой для каждого логиста, форматы табличек предоставлю).

Все коды ессно открытые, позже может сам буду что то допиливать если потребуется.

Напишите в личку в какую сумму оцениваете разработку модуля и сопровождение его хотя бы на 3 месяца, ну и сроки.

1 лайк

Отправили Вам личное сообщение.

С уважением,
Alt-team.

Подскажите, а откуда вы загружаете все способы доставки для всех городов и любого габарита товара?

Я работаю с IML и Dalli-Service (а через них с СДЭК, Boxberry, PickPoint) и соответственно с северов IML и DS все и загружаю. Но как выше написано у меня упрощенный вариант реализован: вес, габариты конкретных товаров не учитываем - считаем по среднему чеку (т.е. я запрашиваю от них тариф до каждого населенного пункта на условно средний заказ и этот тариф сохраняю у себя). Далее уже варианты: либо показываем его всем так, либо считаем сами на своей стороне от среднего по фактическим габаритам и весу конкретного заказа.

Если же нужно рассчитывать по весу-габариту вот в точности до копейки, то тут никуда без онлайн запроса к API служб доставки непосредственно в момент оформления заказа не денешься. Но это чревато адскими тормозами, а также периодической полной или частичной неработоспособностью этого самого оформления по причине зависания/отвала API того или иного логиста. ИМХО я лучше чуть в тарифе ошибусь, чем вообще заказ потеряю.
У нас просто заказы более менее однородные, поэтому можно особо не заморачиваться и показывать все по среднему с небольшой дотацией с нашей стороны.

В конце концов если клиент набирает очень много товара (большой вес и объем), то это значит очень большой чек и прибыль с заказа - грех ему на доставку побольше скидку не сделать.

Но если у вас товары не однородны совсем, условно гвозди и пух, то такой вариант не пойдет :slight_smile:

Все что написано выше касается ПВЗ, т.к их список есть и он конечен. И его мы просто перезагружаем раз в сутки. Что касается курьерки, то тут сложнее. Ее запрашиваем онлайн через API в момент заказа, но… небольшой лайфхак, кешируем на своей стороне ответы на запрос по каждому городу в отдельной таблице на заданный период. И в течение этого периода при повторном запросе в тот же город берем из своей таблицы, без обращения к API. Т.е. условно запрос на расчет курьерской доставки в Екатеринбург или Краснодар будет всего один в сутки (или реже). И второй момент - если вдруг API в момент запроса не отвечает, а в кеше есть старые данные (пусть даже просроченные), то показываем их.
Таким образом у нас оформление доставки работает даже когда сервера любого из логистов лежат наглухо :slight_smile:
Лайфхак 2 - запрос на курьерскую доставку в Москву или Питер вообще никогда никуда не посылается, это 80% заказов и можно для них все условия прописать руками просто, чего там считать то, когда ничего не меняется годами.

Ну, я поэтому и спросил. А вообще, довольно элегантно можно сделать, если городов доставки немного. Запросить на 5, 10, 15 кг и самому среднее считать. У гдепосылки есть АПИ по многим перевозчикам и вроде бы бесплатный порог по запросам, но там без гарантий безотказности.
Очень заманчиво бесплатно считать доставку в количествах.
У нас едост сейчас и ничего не отваливается, всё быстро считает. Сбой был только когда превысили тариф. Но в таком случае показывается отдельный способ доставки “Стоимость доставки будет предоставлена позже” и можно оформить заказ.

Платить за расчет доставки ? ИМХО проще ее бесплатной сделать и получить вагон клиентов, чем кормить кого то типа edost. Особенно когда список логистов на их сайте не соответствует тому, что есть в их модуле. С IML они например почему то не работают, хотя на сайте заявлены. Про Dalli-Service не знают.
ИМХО не гоже когда мне какой то калькулятор будет диктовать условия с кем работать по доставке.

Городов не может быть немного, т.к. мы доставляем в любой населенный пункт страны. Даже если его нет ни у одного логиста, то всегда остается почта рф. И там тариф фиксированный (с оговоркой про регионы крайнего сервера и ДВ - тут расчет руками при оформлении заказа)

Это всё хорошо работает, если вы включаете доставку в счёт. У нас другая ситуация: покупатель сам оплачивает при получении, плюс при продаже оптом наценку большую не сделать, чтобы покрывало с запасом доставку. И не каждый захочет себе обороты по юрлицу завышать на стоимости доставки.
Конечно, стоит подумать, может быть для пробы предложим фиксированный тариф на доставку, денег от себя докинем. Если бы не дальние регионы, вообще бы всё красиво было.

У нас покупатель в 90% случаев также сам оплачивает при получении и за товар, и за доставку, часть заказов вообще с товаром на выбор идет, т.к. одежда у нас, но он оплачивает за доставку столько сколько магазин написал при согласовании заказа, а не по реальному тарифу логиста.
Взаиморасчет же с логистом по факту - это уже наша внутренняя кухня, клиента она не касается.

Дальние регионы это не проблема вообще. В подавляющем большинстве магазинов, даже с самой бесплатной доставкой по всей стране, есть обычно сноска про регионы Крайнего Севера и Дальнего Востока - посмотрите она там даже обычно одна и таже фраза у всех. И жители этих регионов давным давно это все знают и воспринимают адекватно, когда на сайте в тарифах видят одни цифры, а потом по факту оформления заказа им перезванивают и называют другие… потому что смотри сноску про Дальние Регионы, ну и потом - вот сколько реально заказов то с этих дальних регионов - полпроцента, одна десятая процента, было бы о чем вообще говорить то :slight_smile: