Skip to content

Commit

Permalink
FIX for issue#14869 - Wrong price at backend after update A previous …
Browse files Browse the repository at this point in the history
…commit 9d3be73 changed the default behaviour of \Magento\Quote\Model\ResourceModel\Quote\Item\Collection::getStoreId() using the store coming from the current session instead of using the one from quote. The previous commit was made to fix an error while using getItems() without setting a quote. The current fix restore the previous behaviour and adds a check if the quote is not specified.
  • Loading branch information
phoenix128 authored and mage2pratik committed Jul 17, 2018
1 parent 1d469f8 commit 49926d7
Showing 1 changed file with 15 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,11 @@ class Collection extends \Magento\Framework\Model\ResourceModel\Db\VersionContro
*/
protected $_quoteConfig;

/**
* @var \Magento\Store\Model\StoreManagerInterface|null
*/
private $storeManager;

/**
* @param \Magento\Framework\Data\Collection\EntityFactory $entityFactory
* @param \Psr\Log\LoggerInterface $logger
Expand All @@ -54,6 +59,7 @@ class Collection extends \Magento\Framework\Model\ResourceModel\Db\VersionContro
* @param Option\CollectionFactory $itemOptionCollectionFactory
* @param \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory
* @param \Magento\Quote\Model\Quote\Config $quoteConfig
* @param \Magento\Store\Model\StoreManagerInterface|null $storeManager
* @param \Magento\Framework\DB\Adapter\AdapterInterface $connection
* @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
Expand All @@ -67,6 +73,7 @@ public function __construct(
\Magento\Quote\Model\ResourceModel\Quote\Item\Option\CollectionFactory $itemOptionCollectionFactory,
\Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory,
\Magento\Quote\Model\Quote\Config $quoteConfig,
\Magento\Store\Model\StoreManagerInterface $storeManager = null,
\Magento\Framework\DB\Adapter\AdapterInterface $connection = null,
\Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null
) {
Expand All @@ -82,6 +89,10 @@ public function __construct(
$this->_itemOptionCollectionFactory = $itemOptionCollectionFactory;
$this->_productCollectionFactory = $productCollectionFactory;
$this->_quoteConfig = $quoteConfig;

// Backward compatibility constructor parameters
$this->storeManager = $storeManager ?:
\Magento\Framework\App\ObjectManager::getInstance()->get(\Magento\Store\Model\StoreManagerInterface::class);
}

/**
Expand All @@ -101,7 +112,10 @@ protected function _construct()
*/
public function getStoreId()
{
return (int)$this->_productCollectionFactory->create()->getStoreId();
// Fallback to current storeId if no quote is provided
// (see https://github.com/magento/magento2/commit/9d3be732a88884a66d667b443b3dc1655ddd0721)
return $this->_quote === null ?
(int) $this->storeManager->getStore()->getId() : (int) $this->_quote->getStoreId();
}

/**
Expand Down

0 comments on commit 49926d7

Please sign in to comment.