2014-03-03 103 views
4

我想在下面的查詢 我不知道什麼是屬性查詢請幫我找出這個SQL Magento的銷售報表查詢

$form = Start Date 
$to = End Date 
$this->_reset(); 
$this->getSelect()   
    ->joinInner(array(
      'i' => $this->getTable('sales/order_item')), 
      'i.order_id = main_table.entity_id' 
    ) 
    ->where('i.parent_item_id is null') 
    ->where("i.created_at BETWEEN '".$from."' AND '".$to."'") 
    ->where('main_table.state = \'complete\'') 
    ->columns(array('ordered_qty' => 'count(distinct `main_table`.`entity_id`)')); 
添加喜歡的顏色,大小等多屬性的屬性

enter image description here

感謝 Jitendra

+0

Jitendra,可以請把孔模塊... –

+0

這裏網站http://www.summasolutions.net/blogposts/custom-reports-magento –

+0

任何一個幫助這個 –

回答

0

銷售訂單項目表沒有商店出售的每一個產品的每一個屬性。因此,您必須決定是否在創建銷售訂單時將這些屬性添加到銷售訂單項目表中 - 或者 - 如果您只想在產品目錄中查找它們。

採取第一種方法的問題是,您將無法獲取迄今爲止所做訂單的數據,只是從現在開始的訂單。

第二種方法的問題是,如果您更改或刪除主目錄中的產品,則報表中將不再包含該數據。如果你永遠不會改變你的產品,這可能不是問題,但是爲什麼要冒這個風險呢?還有另一個問題 - 性能。對於每個訂單項,您的報告都必須在產品目錄上運行查詢以獲取屬性值,但這會帶來相當大的性能損失,直到您獲得大量訂單時纔會顯而易見。

如果我們採取第一種方法,那麼修改原始Magento提供的報告並沒有太多的意義。你也可以爲它編寫你自己的模塊。

在本模塊中,您將需要一個設置腳本將您需要的列添加到您的銷售訂單商品表中。

您還需要事件觀察員在結帳時將屬性移入銷售報價和銷售訂單對象。如果沒有這個,你的屬性數據可能不會進入報告。

您可以通過Magento選項值ID保存屬性值,但是,您可能會在某個階段更改屬性選項,因此無法查找這些屬性值。因此,而不是存儲ID,例如'412'您需要存儲標籤,例如'紅'。通過這種方式,報告將在明年的這個時候起作用,並具有有意義的價值。

您還需要一個管理員網格,它使用簡單的產品而不是「銷售訂單商品」表中的「可見」(即包括可配置)行項目進行收集。

如果因爲不希望表格變得太大而不想將額外的列添加到銷售訂單項目表中,可以將屬性值添加到序列化數據中,Magento用於存儲超參數選項選項和編寫自己的自定義列渲染器來提取數據並將其顯示在報告中。

有相當多的編碼來獲取您想要的報告,並且可以根據對目錄/屬性選項值的更改進行後續修改。所有必需的步驟可以一次解決一件事,一旦你有一個確切的說明你想要你的報告是什麼樣的。