Wagen Seitenleiste an der Kasse Ladedynamik

7

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>
JGeer
quelle
Kannst du bitte deinen Code zeigen?
Amit Bera
@AmitBera Bearbeiten Sie meine Frage
JGeer

Antworten:

1

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:

<checkout_onepage_index>
    <reference name="checkout.progress"> <!--change the right to checkout.progress -->
        .....
        </block>
    </reference>
</checkout_onepage_index>

Und echo $this->getChildHtml('cart_sidebar_checkout') Code hinzufügen bei checkout/onepage/progress.phtml.

Wenn die Prozessleiste funktioniert, die Cartsidebar jedoch nicht gerendert wird , müssen Sie XML-Code hinzufügen, checkout.xmlwie in der rechten Referenz des checkout_onepage_indexHandlers angegeben. Magento hat alle untergeordneten Blöcke mit folgenden Optionen deaktiviert :

 <action method="unsetChildren"></action>

Rufen Sie diese Kasse auch beim checkout_onepage_progressHandler an.

<checkout_onepage_progress>
    <reference name="root">
        <block type="checkout/cart_sidebar" name="cart_sidebar_checkout" template="checkout/cart/minicart/items.phtml" >
            <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_progress>
Amit Bera
quelle
Vielen Dank! Bearbeiten Sie den Code wie beschrieben. Die Prozessleiste funktioniert und der Warenkorb wird in der Prozessleiste angezeigt. Der Warenkorb wird jedoch nicht bei jedem Schritt aktualisiert. Es wird immer noch nur beim Aktualisieren aktualisiert. Ich habe auch die Aktionsmethode auf unsetChilderen gesetzt.
JGeer
Antwort Update .. keine Notwendigkeit hinzuzufügen <action method = "unsetChildren"> </ action>
Amit Bera
Ich habe die Aktionsmethode unsetChilderen entfernt, sie wird jedoch immer noch nicht aktualisiert.
JGeer
Innerhalb des rwd-Themas sehe ich auch keine <reference name = "checkout.progress"> in der checkout.xml-Datei
JGeer
lass mich nachsehen ...
Amit Bera