升级到magento的1.9.1 EE之后我们遇到了问题.在自定义脚本上,我们通过这种方式与另一个表进行连接,并且它始终工作正常.
$collection->joinTable('sales_flat_order_item','order_id=entity_id', array('sku', 'qty_ordered', 'qty_invoiced', 'udropship_vendor') , 'sales_flat_order_item.udropship_vendor="'.$this->vendorid.'"', 'right');
$collection->groupByAttribute(array('entity_id'));
Run Code Online (Sandbox Code Playgroud)
但升级后我们收到错误消息:致命错误:调用未定义的方法Mage_Sales_Model_Mysql4_Order_Collection :: joinTable().
有谁知道该怎么办?
订单集合现在由一个平面表表示。因此,您可以通过此集合的标准 Varien_Db_Select 属性添加过滤器:
$select = $collection->getSelect();
$select->join(
array('o_item' => 'sales_flat_order_item'),
'o_item.order_id = main_table.entity_id AND o_item.udropship_vendor = "' . $this->vendorid . '"',
array('sku', 'qty_ordered', 'qty_invoiced', 'udropship_vendor')
)
->group('main_table.entity_id');
Run Code Online (Sandbox Code Playgroud)
这是这个问题的答案。
但是,另外我应该指出代码片段中的一些问题,您在问题中给出了: