1111use Magento \Framework \View \Element \AbstractBlock ;
1212use Magento \Framework \View \Element \Message \InterpretationStrategyInterface ;
1313use Magento \Quote \Model \Quote \Item \AbstractItem ;
14+ use Magento \Framework \App \ObjectManager ;
15+ use Magento \Catalog \Model \Product \Configuration \Item \ItemResolverInterface ;
1416
1517/**
1618 * Shopping cart item render block
2123 * @method \Magento\Checkout\Block\Cart\Item\Renderer setProductName(string)
2224 * @method \Magento\Checkout\Block\Cart\Item\Renderer setDeleteUrl(string)
2325 * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
26+ * @SuppressWarnings(PHPMD.ExcessiveClassComplexity)
2427 */
2528class Renderer extends \Magento \Framework \View \Element \Template implements
2629 \Magento \Framework \DataObject \IdentityInterface
@@ -91,6 +94,9 @@ class Renderer extends \Magento\Framework\View\Element\Template implements
9194 */
9295 private $ messageInterpretationStrategy ;
9396
97+ /** @var ItemResolverInterface */
98+ private $ itemResolver ;
99+
94100 /**
95101 * @param \Magento\Framework\View\Element\Template\Context $context
96102 * @param \Magento\Catalog\Helper\Product\Configuration $productConfig
@@ -102,6 +108,7 @@ class Renderer extends \Magento\Framework\View\Element\Template implements
102108 * @param \Magento\Framework\Module\Manager $moduleManager
103109 * @param InterpretationStrategyInterface $messageInterpretationStrategy
104110 * @param array $data
111+ * @param ItemResolverInterface|null $itemResolver
105112 * @SuppressWarnings(PHPMD.ExcessiveParameterList)
106113 * @codeCoverageIgnore
107114 */
@@ -115,7 +122,8 @@ public function __construct(
115122 PriceCurrencyInterface $ priceCurrency ,
116123 \Magento \Framework \Module \Manager $ moduleManager ,
117124 InterpretationStrategyInterface $ messageInterpretationStrategy ,
118- array $ data = []
125+ array $ data = [],
126+ ItemResolverInterface $ itemResolver = null
119127 ) {
120128 $ this ->priceCurrency = $ priceCurrency ;
121129 $ this ->imageBuilder = $ imageBuilder ;
@@ -127,6 +135,7 @@ public function __construct(
127135 $ this ->_isScopePrivate = true ;
128136 $ this ->moduleManager = $ moduleManager ;
129137 $ this ->messageInterpretationStrategy = $ messageInterpretationStrategy ;
138+ $ this ->itemResolver = $ itemResolver ?: ObjectManager::getInstance ()->get (ItemResolverInterface::class);
130139 }
131140
132141 /**
@@ -172,7 +181,7 @@ public function getProduct()
172181 */
173182 public function getProductForThumbnail ()
174183 {
175- return $ this ->getProduct ( );
184+ return $ this ->itemResolver -> getFinalProduct ( $ this -> getItem () );
176185 }
177186
178187 /**
0 commit comments