你可能有問題,因爲產品的選擇可以改變特定的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.";
}
?>
但是還是要顯示它。
編輯下面
我將離開上述一致性,但你說得對,就引起了我同樣的錯誤:
Fatal error: Call to a member function getBackend() on a non-object in ~app/code/core/Mage/Eav/Model/Entity/Abstract.php on line 816
這惹惱了我,所以我在挖這次並沒有懶惰,而且實際上寫了一些工作示例代碼。我在這裏學到的東西也很重要 - 確保你總是有addOrderedQty()
前addIdFilter()
,或者您的收藏會忽略該過濾器完全。謝謝,Magento。
無論如何,這一點自包含的例子將獲得訂購數量與產品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
希望這有助於比我第一次嘗試多一點。
感謝您的輸入,我試過,但我得到這個錯誤: 致命的錯誤:調用成員函數getBackend()在〜app/code/core/Mage/Eav/Model中的非對象/Entity/Abstract.php on line 816 –
你說得對,我頭腦快捷的例子並不好。真是一個驚喜。我編輯了我的答案,這次給出實際的工作代碼。 – Mike