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(); }