Доработка плагина доставки на WP

Откликнуться
s
Заказчик
Отзывы фрилансеров: + 54 - 0
Зарегистрирован на сайте 12 лет и 4 месяца
Бюджет: 5 000 руб
63.92 $ — 54.29 €
1. Добавление метода GetAddressPoints 

Описание
У партнера может быть несколько складов, с которых мы забираем товар. Например, склад в Москве и Екатеринбурге. Со склада в Москве осуществляется отгрузку в города центральной части России; со склада В Екатеринбурге города за Уралом.

Перевозчик должен знать с какого склада какой заказ будет отгружен. Для этого в API добавлен метод GetAddressPoints. В ответ на его вызов возвращается список активных складов партнера и их адреса. Каждый склад имеет свой уникальный идентификатор ID_PartnerWarehouse.

Имеется 2 типа партнеров относительно способа передачи нам отправлений: мы забираем отправления и партнер сам привозит отправления на наш склад. 
Определить тип можно следующим образом:
1)Если мы забираем, то GetAddressPoints вернет хотя бы 1 склад. 
В таком случае во всех методах константой передаем параметр ID_Sklad =3 и ID_PartnerWarehouse.
2)Если партнер сам привозит на наш склад , то GetAddressPoints вернет ошибку “Для данного клиента нет адресов забора отправлений”.
В таком случае во всех методах передаем выбранный  ID_Sklad и отсутствует ID_PartnerWarehouse.
Подробнее в документации.

Задача
К текущему крону на обновление ПВЗ и зон доставки добавляем GetAddressPoints
Если в ответ приходит ошибка "Message":"Для данного клиента нет адресов забора отправлений", то ничего не делаем
Если в ответ приходит список ID_PartnerWarehouse, то сохраняем его БД
Проверяем наличие в БД наличие записей ID_PartnerWarehouse, которые не пришли в ответ на вызов метода. Такие записи делаем неактивыми
В настройке “Точка приема отправлений” переделываем отображение списка доступных пунктов отгрузки
Если у партнера имеется хотя бы один активный ID_PartnerWarehouse, то отображаем список из ID_PartnerWarehouse
Если у партнера отсутствуют ID_PartnerWarehouse, то отображаем список из всех ID_Sklad
Дополнительно склад “Родники, ул.Трудовая, д.10” переименовываем в “Курьер Л-Пост”. При его выборе передаем ID_Sklad=3 
“Курьер Л-Пост” должен быть первый в списке. Подставляем его по умолчанию
Во все вызовы методов GetServicesCalc, CreateOrders и UpdateOrders добавляем передачу параметра ID_PartnerWarehouse
Если выбран ID_PartnerWarehouse, то передаем его и константой ID_Sklad =3
Если Выбран ID_Sklad, то передаем выбранный ID_Sklad и ID_PartnerWarehouse не передаем

2. Настройка стоимости доставки по умолчанию

Описание:
Имеется потребность настраивать стоимость доставки по умолчанию. Например, для доставки по Москве курьером стоимость 500 руб. 

Задача:

В настройках модуля в настройках доставки добавляем поле “Расчет стоимости доставки”. 
Доступные варианты: “Статический” и “Динамический”.
При выборе “Статический” отображаем поле “Стоимость доставки по умолчанию”. В него даем ввести числовые значения от 0 до 10000
На странице оформления заказа и в админке при расчете стоимости доставки добавляем проверку на выбранный тип расчета
Если “Статический”, игнорируем стоимость от АПИ Л-Пост и по умолчанию отображаем “Стоимость доставки по умолчанию”
Если “Динамический”, то по умолчанию отображаем стоимость доставки от АПИ Л-Пост

3. Изменение расчета срока доставки
Описание:
Сейчас, в параметр DayLogistic в ответе метода GetServicesCalc заложено, буквально, следующее: "Срок доставки в днях от пункта приема отправлений до пункта доставки". Именно это заложено в тех документации и в методах.
Для Москвы в ответ на вызов метода GetServicesCalc возвращается параметр DayLogistic = 0. Данный параметр используется при расчете срока доставки. Как следствие, на интерфейсе отображается срок 0 дней (рис.2). Такой срок не возможен. 

Задача:
Необходимо переделать расчет срока доставки при выборе тарифа.

Срок доставки = DateClose от метода GetServicesCalc + DayLogistic 
Например, текущая дата 01.01.2022. Метод GetServicesCalc вернул DateClose = 03.01.2022 и DayLogistic = 3
Итого “Срок доставки” = (03.01.2022 – 01.01.2022) + 3 = 2 + 3 = 5

4. Изменить передачу интервалов доставки при создании заказа
Описание:
В настоящий момент в модуль заложено, что всегда доставки 5 интервалов доставки курьером и интервалы передаются параметром TypeIntervalDeliv
В действительности доступных интервалов может быть больше/меньше. Например, в Московской области у ряда городов по четвергам доступны только 2 интервала: 9-12 и 18-21. 
Для передачи доступных интервалов по API метод GetServicesCalc добавлен массив Intervals со списком доступных интервалов доставки для определенной даты. 
В методы CreateOrders, UpdateOrders добавлены параметры TimeFrom, TimeTo и удален параметр TypeIntervalDeliv.
Подробнее в документации 

Задача:

Добавить определение доступных интервалов доставки на массив Intervals метода GetServicesCalc.
В методы CreateOrders и UpdateOrders вместо TypeIntervalDeliv передавать параметры TimeFrom и TimeTo. 

5. Смена логотипов 

У нас поменялся логотип. Необходимо на маркетплейсе во всех местах в модуле обновить логотип и пины на карте.
Разделы:
Опубликован:
02.06.2022 | 12:47 [поднят: 02.06.2022 | 12:47]
Откликнуться

Выберите способ верификации:

Обновите страницу после прохождения верификации.

Посмотреть другие заказы Разместить заказ

Теги: нужен программист, ищу программиста, резюме программиста, требуется написание плагинов/сценариев/утилит

Наши партнеры
Сведения об ООО «Ваан» внесены в реестр аккредитованных организаций, осуществляющих деятельность в области информационных технологий. ООО «Ваан» осуществляет деятельность, связанную с использованием информационных технологий, по разработке компьютерного программного обеспечения, предоставлению доступа к программе для ЭВМ и является правообладателем программы для ЭВМ «Платформа FL.ru (версия 2.0)».