2012-12-27 10 views
8

Ich passe das moderne Thema an, um ein neues Thema zu erstellen. Ich bin relativ neu in Magento, aber ich finde es eine großartige Plattform für E-Commerce. Hier ist mein Problem:Holen Sie sich alle Produkte im Warenkorb statt der letzten

Ich muss alle die Produkte im Warenkorb anzeigen. Ich habe diesen Code und derzeit zeigt es nur bis zu drei Elemente. Gibt es einen anderen Befehl, den ich anstelle von getRecentItems() verwenden kann, um alle Artikel in ihrem Warenkorb anzuzeigen? Ich habe versucht mit getAllItems(), aber das scheint nichts zu tun.

<?php $items = $this->getRecentItems();?> 
     <?php if(count($items)): ?> 
      <ol id="cart-header" class="mini-products-list"> 
       <?php foreach($items as $item): ?> 
        <?php echo $this->getItemHtml($item) ?> 
       <?php endforeach; ?> 
      </ol> 
     <?php else: ?> 
      <?php echo $this->__('There are no items in your shopping Basket.') ?> 
     <?php endif ?> 

Irgendwelche Ideen?

+0

Große Frage, versuchen Sie, mit etwas zu verknüpfen, das ein ähnliches Ergebnis von dem hat, was Sie versuchen, obwohl zu tun. –

Antwort

17

Check in System > Configuration > Checkout > Shopping Cart Side Bar

Es gibt eine Einstellung, die Anzahl der Produkte zu setzen, die in dem Mini-Warenkorb sichtbar sein können.

Maximale Anzeige Kürzlich hinzugefügte Artikel ist standardmäßig 3. Erhöhen Sie es auf das, was Sie möchten, oder eher eine hohe Zahl, um immer alle Produkte im Warenkorb anzuzeigen.

EDIT: Um das Magento-Standardverhalten basierend auf Ihren Kommentaren zu überschreiben, können Sie Folgendes verwenden.

<?php 
    $session= Mage::getSingleton('checkout/session'); 
    $items = $session->getQuote()->getAllItems(); 
?> 
     <?php if(count($items)): ?> 
      <ol id="cart-header" class="mini-products-list"> 
       <?php foreach($items as $item): ?> 
        <?php echo $this->getItemHtml($item) ?> 
       <?php endforeach; ?> 
      </ol> 
     <?php else: ?> 
      <?php echo $this->__('There are no items in your shopping Basket.') ?> 
     <?php endif ?> 
+0

Danke! Weißt du auf jeden Fall, dass ich dies mit einem PHP-Befehl tun kann, da dies ein Thema sein wird, wird es für Admins frustrierend sein, wenn sie die Konfiguration ändern müssen, damit sie richtig funktioniert? – George

+0

Bearbeitete meine Antwort oben. Lass mich wissen ob es funktioniert. –

+0

Es funktioniert super! Danke für Ihre Hilfe :) – George

0

Ich stimme dem Dienstprogramm zu. Und danke, dass du es auf dem Einkaufswagen-Sidebar-Teil geteilt hast. Ich hatte ein Modul, das die Artikel auf der Checkout-Seite auflistet. Hier ist mein Code für Ihre Referenz.

$quoteObject = $this->getQuote(); 
foreach($quoteObject->getAllItems() as $item) 
{ 
    //do what you want here. 
} 

Hoffe, das hilft.

1

Die Methode Mage_Checkout_Block_Cart_Sidebar getRecentItems() akzeptiert count param, rufen Sie es einfach auf diese Weise, um die vollständigen Artikel des Einkaufswagens abzurufen.

<?php $items = $this->getRecentItems(10000);?>