Beispiel #1
0
 private function initializeQuote()
 {
     $this->quote = $this->quoteFactory->create();
     $this->quote->setCheckoutMethod($this->proxyOrder->getCheckoutMethod());
     $this->quote->setStore($this->proxyOrder->getStore());
     $this->quote->getStore()->setData('current_currency', $this->quote->getStore()->getBaseCurrency());
     $this->quote->save();
     $this->checkoutSession->replaceQuote($this->quote);
 }
 /**
  * Save quote
  *
  * @param Quote $quote
  * @return void
  */
 public function save(Quote $quote)
 {
     $quote->save();
     unset($this->quotesById[$quote->getId()]);
     unset($this->quotesByCustomerId[$quote->getCustomerId()]);
 }
 /**
  * Create currency rates and set rate on quote
  *
  * @param $ratesData
  * @param \Magento\Quote\Model\Quote $quote
  */
 protected function createCurrencyRate($ratesData, \Magento\Quote\Model\Quote $quote)
 {
     $baseCurrencyCode = $ratesData['base_currency_code'];
     $quoteCurrencyCode = $ratesData['quote_currency_code'];
     $currencyConversionRate = $ratesData['currency_conversion_rate'];
     $newRate = [$baseCurrencyCode => [$quoteCurrencyCode => $currencyConversionRate]];
     /** @var \Magento\Directory\Model\Currency $currency */
     $currency = $this->objectManager->get('Magento\\Directory\\Model\\Currency');
     $currency->saveRates($newRate);
     // Set the currency code on the store so that the \Magento\Quote\Model\Quote::beforeSave() method sets the
     // quote_currency_code to the appropriate value
     $quote->getStore()->getCurrentCurrency()->setData('currency_code', $quoteCurrencyCode);
     // Save the quote to register the quote_currency_code
     $quote->save();
 }