2013-08-10 4 views
2

Я работаю над созданием сетки элементов заказа клиента в Magento 1.7. Для этого я создал новое подменю в меню «Продажи» для администратора. В таблице параметров заказа будет отображаться каждый продукт, заказанный в новой строке. Следовательно, в сетке может присутствовать несколько OrderIds. Мой запрос в классе сетки является:Создание элемента Item Item в Magento

$collection = Mage::getResourceModel('sales/order_collection') 
     ->join(
      'sales/order_item', 
      '`sales/order_item`.order_id=`main_table`.entity_id', 
      array(
       'skus' => `sales/order_item`.`sku`, 
       'names' => `sales/order_item`.`name`, 
       'order_incharge' => `sales/order_item`.`order_incharge` , 
       'proptions' => `sales/order_item`.`product_options` , 

      )); 

У меня нет какой-либо пункт GroupBy. Когда я печатаю этот запрос в журнале, он выглядит как:

SELECT `main_table`.* FROM `sales_flat_order` AS `main_table` INNER JOIN `sales_flat_order_item` AS `sales/order_item` ON `sales/order_item`.order_id=`main_table`.entity_id 

У меня есть 2 заказа в моей базе данных. Идентификатор заказа = 24 имеет два продукта Идентификатор заказа 25 имеет один продукт Таким образом, приведенный выше запрос при запуске в базе данных правильно отображает 3 записи. Однако это не отображается на сетке. Я получаю следующее сообщение об ошибке при попытке отобразить в сетке:

Item (Mage_Sales_Model_Order) with the same id "24" already exist";i:1;s:4274:"#0 C:\wamp\www\bakery\lib\Varien\Data\Collection\Db.php(576): Varien_Data_Collection->addItem(Object(Mage_Sales_Model_Order)) 

Как решить эту проблему, так что тот же самый идентификатор заказа может быть добавлен в коллекцию?

Спасибо, Неет

ответ

1

Вы должны получить sales/order_item_collection, а затем присоединиться к sales/order таблицу вместо.

Ваша проблема в том, что вы показываете информацию о заказе за элемент заказа. Вместо этого вы должны получать информацию о деталях и смешивать информацию о заказе с помощью соединения.

В зависимости от того, что вы хотите, вам может даже не понадобиться присоединиться к столу sales/order - вам может понадобиться только коллекция sales/order_item.

+2

Это не дает ответа на вопрос. Чтобы критиковать или просить разъяснения у автора, оставьте комментарий ниже их сообщения. – Tala

+0

Это ответ. Это просто сказано. –

+0

Привет, Маршалл, Спасибо за ваш совет. Он отлично работал, получив sales/order_item_collection. – neetw