Criando um Script Fora do Magento, mas Utilizando as Classes do Próprio Magento

Para se criar um script fora da estrutura do Magento é simples, porém deve ser feito com cautela.
Quando criamos um script externo pode acontecer de pensarmos, principalmente quem está iniciando em Magento, que não há uma forma de se utilizar as classes e métodos do Magento, como por exemplo a classe Mage.

Na verdade é possível sim utilizarmos tais classes e para isso precisamos primeiramente no arquivo dar um include do arquivo mais importante do Magento, também conhecido como Bootstrap: app/Mage.php.

Então é só fazer isso e já posso sair codificando meu script nos padrões Magento de qualidade? A resposta é não. Este é apenas o primeiro passeo.

Por motivos internos do Magento é preciso que se instancie uma session do ‘frontend’ ou ‘backend’. A partir daí tudo funciona nos padrões Magento, como se você estivesse criando seus códigos dentro de um Model, por exemplo.

No exemplo abaixo eu demonstro como criar o seu script de uma forma que funcione perfeitamente:

<?php

require_once '../app/Mage.php';

Mage::app();
Mage::getSingleton('core/session', array('name' => 'frontend'));

$orders = Mage::getModel('sales/orders')->addFieldToFilter('created_at', array(
 'from' => '2012-10-01 00:00:00',
 'to' => '2012-10-31 23:59:59',
 'datetime' => true
 )
);

/* Aqui é implementada o restante da lógica... */
if($orders->count() > 0) {
 foreach($orders as $order)
 {
 ...
 }
}

...

?>

Isto é muito útil quando temos scripts que devem ser rodados ocasionalmente e não precisamos necessariamente criar um módulo para tal ação.

Porém eu aconselho, sempre antes de tomar a decisão de criar um script externo no Magento, validar se realmente não é necessário que seja desenvolvido um módulo para resolver o problema.
Existem vários benefícios de se utilizar um módulo customizado ao invés de um script externo, porém este assunto fica para um post futuro.

Espero que esta dica seja de bom uso.

Um abraço e até a próxima!

2014-08-29T14:37:36+00:00

RECEBA DICAS VALIOSAS NO SEU EMAIL

x