【问题标题】:how to show “Minimum Qty Allowed in Shopping Cart" in product listing page如何在产品列表页面中显示“购物车中允许的最小数量”
【发布时间】:2014-07-16 16:47:51
【问题描述】:

我正在使用 Magento 1.9。我想在 list.phtml 页面中显示“购物车中允许的最小数量”。例如,我在产品属性中设置了最小数量“6”,那么它应该在前端显示“6”。 我正在尝试编写此代码,但它引发了错误。也许我写错了代码。

 <?php 
$productQuantity = Mage::getModel("cataloginvetory/stock_item")->loadByProduct($_product->getId());
echo $productQuantity->getMinSaleQty(); ?>

我收到以下错误

致命错误:在 //list.phtml

中的非对象上调用成员函数 loadByProduct()

【问题讨论】:

    标签: php magento shopping-cart product


    【解决方案1】:

    这里有一些逻辑

    <?php                 
    $stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product);
                     echo $stockItem->getMinSaleQty() && $stockItem->getMinSaleQty() > 0 ? $stockItem->getMinSaleQty() * 1 : null;
     ?>
    

    【讨论】:

      【解决方案2】:

      Mage::getModel("cataloginvetory/stock_item") 没有返回对象。使用var_dump() 找出 Mage 的静态函数返回的内容。

      echo var_dump(Mage::getModel("cataloginvetory/stock_item"));
      

      我认为它会返回 NULL 或 false。如果是这种情况,getModel() 出现问题(可能参数不正确)

      【讨论】:

      • 是的,它返回“bool(false)”。那我该怎么办呢?
      • 查看 Magento 文档以了解 getModel() 返回 false 时的含义。根据我的阅读,我假设您作为参数传递的模块存在问题。也许stackoverflow.com/questions/17588748/… 可能会为您指明正确的方向。
      【解决方案3】:

      我一开始就发现了两个错误。

      首先,“cataloginvetory/stock_item”是一个错字。它应该是“cataloginventory/stock_item”。

      其次,loadByProduct 需要一个产品,而不是 productId。

      应该是这样的:

      <?php 
      $productQuantity = Mage::getModel("cataloginventory/stock_item")->loadByProduct($_product);
      echo $productQuantity->getMinSaleQty(); ?>
      

      我无法测试 getMinSaleQty() 函数,因为我的网站上没有启用该函数。

      【讨论】:

        猜你喜欢
        • 2016-05-30
        • 1970-01-01
        • 2020-09-27
        • 1970-01-01
        • 2014-10-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多