Magento - Как получить общее количество товаров в файле header.phtml - PullRequest
16 голосов
/ 19 января 2012

Я использую Magento eCommerce, и я изменил свой header.phtml через пустой шаблон. Код, это мой код, но он отображается пустым.

 <?php $cartQty = $this->getSummaryCount() ?>
    <?php if ($cartQty>0): ?>

            <?php if ($cartQty==1): ?>
                <?php echo $this->__('<a class="cartgo" href="%s">(1 ITEM)</a>', $this->getUrl('checkout/cart')) ?>
            <?php else: ?>
                <?php echo $this->__('<a class="cartgo" href="%s">(%s ITEMS)</a>', $this->getUrl('checkout/cart')) ?>
            <?php endif ?>


    <?php endif ?>

Ответы [ 7 ]

38 голосов
/ 19 января 2012

Был ответ на ссылку ранее кем-то по имени SUHUR. Я думаю, я собирался наградить его ответом, но, кажется, он удалил свой собственный пост?

Он связан с этим: http://nothingtopost.wordpress.com/tag/how-to-get-total-cart-item-in-magento/

Я изменил свой код, и теперь он работает с файлами .phtml.

<?php
      $count = $this->helper('checkout/cart')->getSummaryCount();  //get total items in cart
      $total = $this->helper('checkout/cart')->getQuote()->getGrandTotal(); //get total price
      if($count==0)
      {
        echo $this->__('<a href="/checkout/cart" class="cartgo">(0 ITEMS)</a>',$count);
      }
      if($count==1)
      {
        echo $this->__('<a href="/checkout/cart" class="cartgo">(1 ITEM)</a>',$count);
      }
      if($count>1)
      {
        echo $this->__('<a href="/checkout/cart" class="cartgo">(%s ITMES)</a>',$count);
      }
      echo $this->__('', $this->helper('core')->formatPrice($total, false));
    ?>
9 голосов
/ 12 августа 2013
<?php
    $cartTotal = $this->helper('checkout/cart')->getQuote()->getGrandTotal();
    $cartItemsCount = Mage::helper('checkout/cart')->getCart()->getItemsCount();
    $cartSuffix = ($cartItemsCount != 1) ? 's' : '';

    echo '<a class="cartgo" href="'.$this->getUrl('checkout/cart').'">
              <strong>'.$this->__('Your basket').'</strong><br />'.
              $this->__('(%s) Item%s', $cartItemsCount, $cartSuffix).
              '<span>[$'.$this->helper('core')->formatPrice($cartTotal, false).']</span>
          </a>';
?>

Выход:

Ваша корзина
3 предмета [$ 32,5]

5 голосов
/ 14 мая 2013

<?php $_cartQty = Mage::getSingleton('checkout/cart')->getItemsCount(); echo $_cartQty; ?>

это все, что вам нужно для 1.7, если вы уже используете приложение mage:, без которого вы ничего не сможете сделать.

, кроме того, здесь отображается только количество элементов, а не количество.

4 голосов
/ 05 января 2016

Вы можете найти свой шаблон корзины здесь:

YOURSITE/app/design/frontend/YOURTHEME/default/template/checkout/cart/minicart.phtml

В промежутке с классом .count вы увидите этот фрагмент:

<span class="count"><?php echo $_cartQty; ?></span>

Замените его на этот фрагмент, и вместо этого вы увидите итоговую сумму:

<?php echo $this->helper('checkout')->formatPrice(Mage::getSingleton('checkout/cart')->getQuote()->getGrandTotal()); ?>
3 голосов
/ 03 февраля 2015

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

1 голос
/ 02 ноября 2012

При ссылке на корзину вы действительно должны использовать Mage::helper('checkout/cart')->getCartUrl().Приведенный пример не будет работать, если ваш сайт размещен в поддомене.

0 голосов
/ 28 марта 2013
<?php
      $count = $this->helper('checkout/cart')->getSummaryCount();  //get total items in cart
      $total = $this->helper('checkout/cart')->getQuote()->getGrandTotal(); //get total price
      if($count==0)
      {
        echo $this->__('<a href="/checkout/cart" class="cartgo">(0 ITEMS)</a>',$count);
      }
      if($count==1)
      {
        echo $this->__('<a href="/checkout/cart" class="cartgo">(1 ITEM)</a>',$count);
      }
      if($count>1)
      {
        echo $this->__('<a href="/checkout/cart" class="cartgo">(%s ITMES)</a>',$count);
      }
      echo $this->__('', $this->helper('core')->formatPrice($total, false));
    ?>

это работает для меня, спасибо ...

...