私は製品の売り上げを数えるための拡張機能を書きました-目標はベストセラーを獲得することです。
すべての製品の新しい静的属性を作成しました(つまり、catalog_product_entityテーブルに列を追加しました)items_sold
sales_order_save_before
イベントに参加します
public function salesOrderSaveBefore(Varien_Event_Observer $observer)
{
/* @var $order Mage_Sales_Model_Order */
$order = $observer->getOrder();
// if the order will be created and has no id yet
if(!$order->getId()) {
$productIds = array();
foreach($order->getAllItems() as $item) {
/* @var $item Mage_Sales_Model_Order_Item */
$productIds[] = $item->getProductId();
}
}
// what to do here :-)
}
今私は2つの方法を見ます:
- 商品コレクションを読み込み、すべての商品をループし、items_sold(+1)を上げて、すべての商品を保存します
- 私は次のようなクエリを起動します
UPDATE catalog_product_entity SET items_sold = items_sold + 1 WHERE entity_id IN $productIds
助言がありますか?