Расчет стоимости доставки, который зависит от индекса Принято

2

Явный древний баг, из-за которого невозможно в нормальном порядке произвести стоимость доставки, которая должна зависеть от указанного индекса.

Окружение кейсов:

1. Одностраничное оформление

2. Последние версии Wa, SS.

3.

shippingPlugin::requestedAddressFields() -> array(
    'zip' => array(
         'cost' => true,
         'required' => true
    )
)

4. Настройки оформления заказа:

Сразу хочу отметить, что использовать функцию "Запрашивать индекс вместе с названием населенного пункта" - вроде бы рабочее решение, но ужасное для клиента, поскольку тогда поле "Индекс" становится обязательным только ради расчета моим плагином, другие плагинам это поле не нужно, клиента нельзя обязывать вводить то, что ему не понадобится. Именно поэтому я хочу запрашивать индекс отдельным полем уже после выбора своего способа доставки.

5. Наш способ доставки - плагин "Тарификация Почта России", вид доставки - Почта.

---

Теперь перейдем к тесту самого кейса, вот какой алгоритм действий мы имеем:

1. Начинаем оформлять заказ, вводим страну, регион и город, получаем способы доставки.

2. Появляется наш способ доставки в блоке "Почта", без стоимостей и сроков. Ок, мы еще не знаем стоимость, так как нет во входных данных индекса. Хотя здесь тоже можно и хотелось бы выводить "хоть что-то", без вызова calculate чтобы плагин мог вернуть "приблизительную стоимость и сроки доставки", которые отображались бы здесь.

3. Кликаем по почте, у нас появляется наше поле для ввода индекса. Круто, то, что надо.

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

Произошел запрос calculate, плагин доставки произвел расчет стоимости.

Но нашего поля для ввода индекса нет. А где оно? Правильно, оно не показывается потому что блок "Почта" теперь не выбран. И вот здесь первая проблема, почему бы снова не выбрать блок, который был выбран до обновления доставки?

5. Ну ок, допустим, выберем снова "Почта".

А где введенный индекс? Все, пропал. То есть мы сейчас даже не понимает а для какого индекса рассчиталась стоимость доставки, и более того, мы не можем продолжить оформление заказа в этом случае, так как вариант доставки не выбран, надо снова вводить индекс!

6. Устанавливаем индекс

Снова происходит запрос calculate, плагин доставки производит расчет стоимости.

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

А по итогу что мы имеем - 2 идентичных запроса к плагину доставки и поведение формы оформления заказа, которое явно можно именовать как "баганутое", пользователь 2 раза должен ввести свой индекс.

1 комментарий

Добавить комментарий

Чтобы добавить комментарий, зарегистрируйтесь или войдите