Ich benutze einen Einkaufswagen in der Seitenleiste der einseitigen Kasse.
Hier werden die Produkte und der Gesamtpreis des Warenkorbs angezeigt.
Ich verwende aber auch einige zusätzliche Kosten für die Zahlung, sodass diese dynamisch geladen werden müssen, damit bei der Auswahl einer Zahlungsmethode mit zusätzlichen Kosten der Warenkorb direkt aktualisiert wird.
Derzeit wird der Warenkorb nur beim erneuten Laden der gesamten Kasse aktualisiert.
Wie kann ich das erreichen?
Code xml:
<checkout_onepage_index>
<reference name="right">
<block type="checkout/cart_sidebar"
name="cart_sidebar_checkout"
template="checkout/cart/minicart/items.phtml"
after="checkout-progress-wrapper">
<action method="addItemRender">
<type>simple</type>
<block>checkout/cart_item_renderer</block>
<template>checkout/cart/sidebar/default.phtml</template>
</action>
<action method="addItemRender">
<type>grouped</type>
<block>checkout/cart_item_renderer_grouped</block>
<template>checkout/cart/sidebar/default.phtml</template>
</action>
<action method="addItemRender">
<type>configurable</type>
<block>checkout/cart_item_renderer_configurable</block>
<template>checkout/cart/sidebar/default.phtml</template>
</action>
</block>
</reference>
</checkout_onepage_index>
Wagen:
<?php
$_cartQty = $this->getSummaryCount();
if (empty($_cartQty)) {
$_cartQty = 0;
}
?>
<div class="block block-progress opc-block-progress minicart-wrapper">
<div class="block-title-cartsidebar">WINKELMAND</div>
<?php $_items = $this->getRecentItems() ?>
<?php $countItems = count($_items); ?>
<?php if ($countItems): ?>
<div class="block-items-cartsidebar">
<ul id="cart-sidebar" class="mini-products-list awesome">
<?php foreach ($_items as $_item): ?>
<?php echo $this->getItemHtml($_item) ?>
<?php endforeach; ?>
<li class="subtotal-side-verzenden">
<span class="label-verzendkosten">Verzendkosten</span>
<span class="label-verzenkosten-price">Gratis</span>
</li>
<?php $cart = Mage::getModel('checkout/cart')->getQuote() ?>
<?php if ($cart->getFoomanSurchargeAmount() > 0) : ?>
<li class="subtotal-side-paymentcost">
<span
class="label-surcharge-description"><?php echo $cart->getFoomanSurchargeDescription() ?></span>
<span
class="label-verzenkosten-price"><?php echo Mage::helper('checkout')->formatPrice($cart->getFoomanSurchargeAmount()) ?></span>
</li>
<?php endif; ?>
<li class="subtotal-side">
<span class="label">
<?php echo $this->__('Totaal') ?><?php echo Mage::helper('checkout')->formatPrice($this->getQuote()->getGrandTotal()) ?>
<?php if ($_subtotalInclTax = $this->getSubtotalInclTax()): ?>
<br/>(<?php echo Mage::helper('checkout')->formatPrice($_subtotalInclTax) ?><?php echo Mage::helper('tax')->getIncExcText(true) ?>)
<?php endif; ?>
</li>
</ul>
</div>
<div class="block-wijzig-cartsidebar">
<a class="cart-link-head" href="<?php echo $this->getUrl('checkout/cart'); ?>">
<?php echo $this->__('Wijzig uw winkelmand'); ?>
</a>
</div>
<?php if ($_cartQty && $this->isPossibleOnepageCheckout()): ?>
<?php endif ?>
<?php else: ?>
<p class="empty"><?php echo $this->__('You have no items in your shopping cart.') ?></p>
<?php endif ?>
</div>
Antworten:
Wenn Sie Cart Siderbar Block als machen
Untergeordneter Block der Magento-Standardprozessleiste, der sich im RWD-Design befindet, wird dann bei jedem Schritt des Auscheckens von Onepage automatisch aktualisiert.
Sie müssen also den Referenznamen right (
<reference name="right">
) in checkout.progress ändern<reference name="checkout.progress">
Code:
Und
echo $this->getChildHtml('cart_sidebar_checkout')
Code hinzufügen beicheckout/onepage/progress.phtml
.Wenn die Prozessleiste funktioniert, die Cartsidebar jedoch nicht gerendert wird , müssen Sie XML-Code hinzufügen,
checkout.xml
wie in der rechten Referenz descheckout_onepage_index
Handlers angegeben. Magento hat alle untergeordneten Blöcke mit folgenden Optionen deaktiviert :Rufen Sie diese Kasse auch beim
checkout_onepage_progress
Handler an.quelle