Como obter uma lista de pedidos “collection” gerados em um intervalo de datas no Magento 2
<?php
use Magento\Framework\App\Bootstrap;
require __DIR__ . '/app/bootstrap.php';
$params = $_SERVER;
$bootstrap = Bootstrap::create(BP, $params);
$objectManager = $bootstrap->getObjectManager();
$state = $objectManager->get('Magento\Framework\App\State');
$state->setAreaCode('frontend');
$now = new \DateTime();
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$OrderFactory = $objectManager->create('Magento\Sales\Model\ResourceModel\Order\CollectionFactory');
$orderCollection = $OrderFactory->create()->addFieldToSelect(array('*'));
$orderCollection->addFieldToFilter('created_at', ['lteq' => $now->format('Y-m-d H:i:s')])->addFieldToFilter('created_at', ['gteq' => $now->format('2018-05-01 H:i:s')]);
echo "<pre>"; print_r($orderCollection->getData());
?>
Segundo exemplo:
Você precisa alterar o namespace, o nome da classe e o nome da função conforme sua necessidade:
<?php
namespace 'NAME_SPACE\OF\YOURCLASS';
class YOURCALSS extends \Magento\Framework\App\Action\Action
{
protected $_orderCollectionFactory;
public function __construct(
Magento\Framework\App\Action\Context $context,
\Magento\Sales\Model\ResourceModel\Order\CollectionFactory $orderCollectionFactory
) {
$this->_orderCollectionFactory = $orderCollectionFactory;
parent::__construct($context);
}
}
public function YOURFUNCTION()
{
$collection = $this->_orderCollectionFactory->create()->addAttributeToSelect('*');
// You Can filter collection as
$this->orderCollectionFactory
->addFieldToFilter('created_at', array('gteq' => $fromDate))
->addFieldToFilter('created_at', array('lteq' => $toDate));
}
}
}