Как я могу найти экземпляр, вызывающий метод другого объекта Magento из этого объекта? - PullRequest
1 голос
/ 23 января 2012

Клиент попросил меня уменьшить сложность …/template/checkout/cart/shipping.phtml Magento, чтобы он запрашивал только (США) Почтовый индекс , минуя Страна и Регион и, кроме того, предполагает первый вариант доставки. (Порядок определяется клиентом в админке). Для этого мне нужно переопределить метод estimatePostAction из …/Mage/Checkout/controllers/CartController.php, чтобы он принимал результат от estimateUpdatePostAction (из того же класса).

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

У меня проблема в том, что действительные значения доставки вычисляются в шаблоне shipping.phtml с помощью цикла над $this->getEstimateRates(). Как я могу получить объект, который представлен $this из моего переопределенного класса CartController, чтобы вычислить варианты доставки?

Примечание: это Magento EE ver. 1.11.2.0

Если вы обнаружите вышеупомянутое tl; dr, вот краткое изложение того, что я пытаюсь сделать:

  • Переопределить оформление заказа / корзину / шаблон доставки, чтобы оно:
    • Только просит Почтовый индекс
    • Автоматически выбирает первую доступную действительную опцию доставки без запроса

Ответы [ 2 ]

2 голосов
/ 23 января 2012

В /Mage/Checkout/controllers/CartController.php вы можете получить доступ к значениям доставки, которые у вас есть в /template/checkout/cart/shipping.phtml ($this->getEstimateRates()), следующим образом:

Mage::getSingleton('checkout/session')->getQuote()->getShippingAddress()->getGroupedAllShippingRates();

1 голос
/ 23 января 2012

$this->getQuote()->getShippingAddress()->getGroupedAllShippingRates() вернет вам коллекцию стоимости доставки. Хотя сам не пробовал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...