Magento 2 – Export Orders

Posted on November 13, 2020 by jamie

<?php
require_once ("app/Mage.php");

class TradeOrders
{
    private static $headers = array('ORDER_ID', 'EMAIL', 'LAST_NAME', 'FIRST_NAME', 'PRODUCT_ID', 'PRODUCT_NAME');
    
    public static function get($from, $to) {
        
        // Fetch all UK Trade orders within specified date range
        Mage::app()->getStore()->setId(20);
        $orders = Mage::getModel('sales/order')
          ->getCollection()
          ->addAttributeToFilter('status', array('eq' => 'complete'))
          ->addAttributeToFilter('created_at', array('from' => $from, 'to' => $to,));
        
        // Prepare CSV file
        $f = fopen('/tmp/TradeOrders.csv', 'w+');
        fputcsv($f, self::$headers);
        foreach ($orders as $order) {
            $items = $order->getAllItems();
            
            // Build array of product SKUs within the order
            $skus = array();
            foreach ($items as $item) {
                $skus[] = $item->getSku();
            }
            
            // Remove duplicate SKU entries
            $skus = array_unique($skus);
            
            // Write record to CSV file
            foreach ($skus as $sku) {
		$data['order_id']     = $order->getId();
		$data['email']        = $order->getCustomerEmail();
		$data['last_name']    = $order->getCustomerLastname();
		$data['first_name']   = $order->getCustomerFirstname();
		$data['sku']          = $sku;
		$data['product_name'] = $item->getName();
                if ('dvnrth565@gmail.com' != $data['email']) {
                    fputcsv($f, $data);
                }
            }
        }
    }
}
$format = 'Y-m-d G:i:s';
$from   = date($format, strtotime('-90 days'));
$to     = date($format, strtotime('-4 hours'));
TradeOrders::get($from, $to);