Magento 2.3 добавляет код купона на пользовательскую страницу оплаты

У меня есть пользовательская страница оплаты (пользователь не видит страницу корзины, он переходит непосредственно на пользовательскую страницу оплаты), и я хочу добавить поле купона на страницу, но не могу понять, как это сделать.

В моем файле payment.php функция выполняется, когда товары добавляются в корзину:

  public function execute()
  {
   .
   .
   .
    $this->cart->truncate();
    $quote = $this->cart->getQuote();
    $item = $this->addPricingPlanToCart($pricingPlan, $product->getId());

    $quote = $this->cart->getQuote();
    $this->quoteRepository->save($quote);
    $logger->info("Final ".print_r($this->cart->getQuote()->getGrandTotal(),true));
  .
  .
  .
  }

Спасибо за любую помощь! Пожалуйста, дайте мне знать, если потребуется дополнительная информация.


person Tom    schedule 24.03.2020    source источник


Ответы (1)


Попробуйте так. Ссылка [github: crankycyclops]

public function __construct(
\Magento\Checkout\Model\Session $checkoutSession,
...
$this->checkoutSession = $checkoutSession;
}
...

$quote = $this->checkoutSession->getQuote();
$quote->setCouponCode($coupon);
$this->quoteRepository->save($quote->collectTotals());

person rangerz    schedule 25.03.2020