Получить все продукты в корзину вместо самых последних


Я адаптирую современную тему, чтобы создать новую тему для использования. Я относительно новичок в Magento, но я нахожу его отличной платформой для электронной коммерции. Вот моя проблема:

Мне нужно отобразить все продукты в корзине клиентов. У меня есть этот код, и в настоящее время он отображает только до трех элементов. Есть ли другая команда, которую я могу использовать вместо getRecentItems() для отображения всех предметов в корзине? Я пробовал использовать getAllItems() , но это, кажется, не работает что-нибудь.

 <?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 ?>

Есть Идеи ?

3 8

3 ответа:

Регистрация System > Configuration > Checkout > Shopping Cart Side Bar

Существует настройка для установки количества продуктов, которые могут быть видны в мини-корзине.

Максимальное отображение недавно добавленных элементов по умолчанию равно 3. Увеличьте его до того, что вы хотите, чтобы он был или, скорее, высокое число, чтобы всегда показывать все продукты в корзине.

EDIT: чтобы переопределить поведение magento по умолчанию, основанное на ваших комментариях, вы можете использовать следующее.

<?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 ?>

Метод Mage_Checkout_Block_Cart_Sidebar getRecentItems() принимаетcount param, просто вызовите его таким образом, чтобы получить полные элементы корзины.

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

Я согласен с полезностью. И спасибо за то, что поделились на стороне корзины барной частью. У меня был модуль, который перечислял товары из корзины на странице оформления заказа. Вот мой код для вашей справки.

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

Надеюсь, это поможет.