Увеличьте цену доставки и / или добавьте позицию за дополнительную плату. - PullRequest
0 голосов
/ 30 сентября 2011

Я реализую специальное интеграционное решение FedEx для сайта Magento. Часть этого состоит в том, чтобы добавить флажок требования подписи в одностраничном оформлении заказа, и добавить 3 $, если это проверено. К сожалению, похоже, что веб-служба тарифов FedEx не принимает никаких параметров, касающихся требований к подписи, поэтому я должен вручную добавить эту стоимость в заказ.

Я думал о том, чтобы выбрать один из этих двух подходов, но я не уверен, что будет лучше, и я не уверен, как на самом деле это сделать:

  1. Добавьте 3 доллара к любой цене, которую возвращает FedEx
  2. Создать новую позицию для этого

Если предположить, что у меня есть дескриптор порядка $, какое решение будет лучшим и как мне это сделать?

Редактировать: Код должен выполняться внутри метода наблюдателя, который вызывается событием checkout_controller_onepage_save_shipping_method, которое запускается сразу после $this->getOnepage()->saveShippingMethod($data);. Это означает, что я не могу добавить $ 3, когда API FedEx возвращает результат, так как я не буду знать, установлен ли флажок до тех пор, пока не будет.

Заранее спасибо!

1 Ответ

0 голосов
/ 02 ноября 2011

Я придумал решение;это не лучший вариант, но он прекрасно работает для меня:

  1. Magento запускает событие при сохранении информации о доставке.Я беру данные POST и сохраняю их в БД, а также в объекте адреса.
  2. Если флажок был изменен, он должен перезагрузить эту же вкладку вместо перехода на шаг оплаты.В предложении доставки проверьте адрес объекта для значения флажка.Если установлено, добавьте определенную сумму к результату котировки.
...