mar*_*mmy 2 php collections magento orders magento-1.4
我想选择Magento中所有订单的清单.
这是我在目前正在处理的另一个PHP应用程序中显示来自magento的所有订单的列表所必需的.
有些人也可以使用Magento惯例给我写代码 Mage::
我正在使用Magento 1.4.2版本.
谢谢,
马克
Jon*_*Day 10
此代码使用"Magento方式"并通过Model层访问数据,这使您可以隔离表结构中的更改(例如,平面与EAV).在Magento安装的根目录中创建一个包含此框架代码的新PHP文件(如果在其他地方更新了第一个require语句的路径).
这给出了一些如何向集合添加属性的示例,您应该能够按照示例添加更多(如果需要).它向您展示了如何按属性过滤,并按属性排序.回声示出您需要的字段的示例.
HTH,
JD
require_once 'app/Mage.php';
umask(0);
Mage::app('default');
$orders = Mage::getResourceModel('sales/order_collection')
->addAttributeToSelect('*')
->joinAttribute('billing_firstname', 'order_address/firstname', 'billing_address_id', null, 'left')
->joinAttribute('billing_lastname', 'order_address/lastname', 'billing_address_id', null, 'left')
->joinAttribute('billing_street', 'order_address/street', 'billing_address_id', null, 'left')
->joinAttribute('billing_company', 'order_address/company', 'billing_address_id', null, 'left')
->joinAttribute('billing_city', 'order_address/city', 'billing_address_id', null, 'left')
->joinAttribute('billing_region', 'order_address/region', 'billing_address_id', null, 'left')
->joinAttribute('billing_country', 'order_address/country_id', 'billing_address_id', null, 'left')
->joinAttribute('billing_postcode', 'order_address/postcode', 'billing_address_id', null, 'left')
->joinAttribute('billing_telephone', 'order_address/telephone', 'billing_address_id', null, 'left')
->joinAttribute('billing_fax', 'order_address/fax', 'billing_address_id', null, 'left')
->joinAttribute('shipping_firstname', 'order_address/firstname', 'shipping_address_id', null, 'left')
->joinAttribute('shipping_lastname', 'order_address/lastname', 'shipping_address_id', null, 'left')
->joinAttribute('shipping_street', 'order_address/street', 'shipping_address_id', null, 'left')
->joinAttribute('shipping_company', 'order_address/company', 'shipping_address_id', null, 'left')
->joinAttribute('shipping_city', 'order_address/city', 'shipping_address_id', null, 'left')
->joinAttribute('shipping_region', 'order_address/region', 'shipping_address_id', null, 'left')
->joinAttribute('shipping_country', 'order_address/country_id', 'shipping_address_id', null, 'left')
->joinAttribute('shipping_postcode', 'order_address/postcode', 'shipping_address_id', null, 'left')
->joinAttribute('shipping_telephone', 'order_address/telephone', 'shipping_address_id', null, 'left')
->joinAttribute('shipping_fax', 'order_address/fax', 'shipping_address_id', null, 'left')
->addFieldToFilter('status', array("in" => array(
'complete',
'closed')
))
->addAttributeToFilter('store_id', Mage::app()->getStore()->getId())
->addAttributeToSort('created_at', 'asc')
->load();
foreach($orders as $order):
echo $order->getIncrementId().'<br/>';
echo $order->getShippingTelephone().'<br/>';
endforeach;
Run Code Online (Sandbox Code Playgroud)
试试这个:
select * from sales_flat_order;
Run Code Online (Sandbox Code Playgroud)
这是标题级信息.如果您需要行项目信息/更深入的信息,您可以使用类似以下连接的内容:
select e.*,sfoi.* from sales_flat_order e
left join sales_flat_order_item sfoi on (e.entity_id=sfoi.order_id)
Run Code Online (Sandbox Code Playgroud)
现在,这将复制(笛卡尔积)所有标题信息以及行项信息.如果您需要更多信息,请告诉我,我是Magento EAV SQL的大师:)