I have the same problem as described here: Mini-Cart displaying Parent Product Image instead of Product Image. However, I cannot get the accepted solution to work. The problem is that when I add a product to my cart via AJAX the parent product image is shown. Only when I refresh the page is the correct simple product image shown. What am I missing?!?
Layout
app/design/frontend/mymodule/mytheme/layout/mymodule_ajax.xml
<?xml version="1.0"?>
<layout>
<ajax_checkout_minicart>
<block type="checkout/cart_sidebar" name="root" output="toHtml" template="checkout/minicart.phtml">
<action method="addItemRender"><type>simple</type><block>checkout/cart_item_renderer</block><template>checkout/minicart/item/default.phtml</template></action>
<action method="addItemRender"><type>grouped</type><block>checkout/cart_item_renderer_grouped</block><template>checkout/minicart/item/default.phtml</template></action>
<action method="addItemRender"><type>configurable</type><block>checkout/cart_item_renderer_configurable</block><template>checkout/minicart/item/default.phtml</template></action>
</block>
</ajax_checkout_minicart>
</layout>
Controller
app/code/local/MyModule/Ajax/controllers/CheckoutController.php
class MyModule_Ajax_CheckoutController extends Mage_Core_Controller_Front_Action
{
public function miniCartAction() {
$layout = $this->getLayout();
$update = $layout->getUpdate();
$update->load('ajax_checkout_minicart'); //load the layout
$layout->generateXml();
$layout->generateBlocks();
$html = $layout->getOutput();
return $html;
}
}
Templates
app/design/frontend/mymodule/mytheme/template/checkout/minicart.phtml
<?
$_items = $this->getRecentItems();
$_cartItemsCount = $this->getSummaryCount();
?>
<ul id="minicart">
<? foreach ($_items as $item) : ?>
<?= $this->getItemHtml($item) ?>
<? endforeach; ?>
</ul>
app/design/frontend/mymodule/mytheme/template/checkout/minicart/item/default.phtml
<?
$_templateHelper = Mage::helper('templates');
$_item = $this->getItem();
?>
<li>
<a href="<?= $this->getProductUrl() ?>">
<img src="<?= $this->getProductThumbnail()->resize(100); ?>">
</a>
</li>