【问题标题】:Show Quantity Sold On Product Page for Configurable - Magento在可配置的产品页面上显示已售数量 - Magento
【发布时间】:2015-06-15 13:41:42
【问题描述】:

我想在前端显示可配置产品的销售数量。我已经有了这个代码,它非常适合简单的产品。但对于可配置产品,总是显示 0。

我如何更新,使其既简单又可配置。销售量为0时隐藏起来也很酷。

     <?php
     $sku = nl2br($_product->getSku());
     $product = Mage::getResourceModel('reports/product_collection')
     ->addOrderedQty()
     ->addAttributeToFilter('sku', $sku)
    ->setOrder('ordered_qty', 'desc')
    ->getFirstItem();

     echo 'Already Bought '.(int)$product->ordered_qty; ?>

【问题讨论】:

    标签: php magento magento-1.9.1 configurable-product


    【解决方案1】:

    您可能会遇到问题,因为产品选项可能会更改报价/订单中某件商品的特定 SKU。请尝试仅查找产品 ID。

    类似的东西(我还没有尝试过这段代码来测试它):

    <?php
         $product = Mage::getResourceModel('reports/product_collection')
             ->addOrderedQty()
             ->addAttributeToFilter('id',$_product->getID())
             ->setOrder('ordered_qty', 'desc')
             ->getFirstItem();
         $sold = (int)$product->ordered_qty;
    ?>
    

    然后在任何你想显示的地方:

    <?php
        if ($sold > 0) {
             echo "Already sold $sold times.";
        }
    ?>
    

    或者你想怎么显示它。

    在下面编辑

    为了保持一致性,我将保留上述内容,但你是对的,它对我造成了同样的错误:

    致命错误:在第 816 行的 ~app/code/core/Mage/Eav/Model/Entity/Abstract.php 中调用非对象的成员函数 getBackend()

    这让我很恼火,所以我挖了进去,这次没有偷懒,实际上写了一些工作示例代码。在此期间我也学到了一些重要的东西 - 请确保您始终拥有addOrderedQty() 之前 addIdFilter(),否则您的收藏将完全忽略该过滤器。谢谢,Magento。

    不管怎样,这个独立的小例子会得到 Ordered Quantity 并用产品 ID 打印出来,应该很清楚里面发生了什么。

    <?php
    require_once '<path_to_magento_root>/app/Mage.php';
    Mage::app('default');
    
    $p = Mage::getResourceModel('reports/product_collection')
      ->addOrderedQty()
      ->addIdFilter($argv[1])
      ->getFirstItem();
    
    echo $p->getId().": ".$p->ordered_qty.PHP_EOL;
    

    ?>

    像这样运行它:

    php test.php 131
    

    你会得到这样的输出:

    131: 103.0000
    

    希望这比我的第一次尝试有所帮助。

    【讨论】:

    • 感谢您的输入,我已经尝试过了,但我得到了这个错误:致命错误:调用 ~app/code/core/Mage 中的非对象上的成员函数 getBackend() /Eav/Model/Entity/Abstract.php 第 816 行
    • 你说得对,我的快速头脑中的例子不是很好。真是个惊喜。这次我已经编辑了我的答案以提供实际的工作代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-08
    • 2012-09-28
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 2015-05-12
    • 1970-01-01
    相关资源
    最近更新 更多