- public function get($sku, $editMode = false, $storeId = null, $forceReload = false)
- {
- $cacheKey = $this->getCacheKey([$editMode, $storeId]);
- if (!isset($this->instances[$sku][$cacheKey]) || $forceReload) {
- $product = $this->productFactory->create();
-
- $productId = $this->resourceModel->getIdBySku($sku);
- if (!$productId) {
- throw new NoSuchEntityException(__('Requested product doesn\'t exist'));
- }
- if ($editMode) {
- $product->setData('_edit_mode', true);
- }
- if ($storeId !== null) {
- $product->setData('store_id', $storeId);
- }
- $product->load($productId);
- $this->instances[$sku][$cacheKey] = $product;
- $this->instancesById[$product->getId()][$cacheKey] = $product;
- }
- return $this->instances[$sku][$cacheKey];