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>

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>

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.