Framework é uma palavra utilizada tanto por profissionais de negócios quanto pelos de tecnologia. Ela descreve os recursos capazes de servir de base confiável para o desenvolvimento de uma determinada atividade, reduzindo o esforço estrutural, aquele relacionado a estabelecer condições para que uma atividade seja realizada com sucesso, como o framework que utilizei para escrever este artigo. O computador, o software Pages, o tema e o formato do texto – esses componentes formam o framework que me permite focar em desenvolver o texto sem me preocupar com como registrar o texto ou onde está meu “errorex”, por exemplo.
Em e-commerce, coexistem frameworks de práticas de negócio e de desenvolvimento de software. Há, também, uma terceira classe de frameworks que dão suporte para as duas áreas, capazes de proporcionar uma maior proximidade e velocidade em um processo de realização conjunta. É nessa classe de frameworks que o Magento se destaca.
O Magento proporciona, desde o momento de sua instalação, os recursos de desenvolvimento capazes de dar suporte para as decisões de negócio em ambientes de mudança e agilidade, indo de lojas de um só produto a catálogos de milhões de SKUs.
Uma das características técnicas do Magento de que mais gosto é sua implementação “event-driven”. Por meio da implementação de observers, permite que ações sejam anexadas a eventos que ocorrem inclusive na interface web.
Um exemplo do core do Magento é este método, que atualiza o estoque de um produto quando ele é adicionado ao Order.
public function createOrderItem($observer) { $item = $observer->getEvent()->getItem(); $children = $item->getChildrenItems(); if (!$item->getId() && empty($children)) { Mage::getSingleton('cataloginventory/stock')->registerItemSale($item); } return $this; }
Com a utilização de observers, fica fácil estender o Magento e, por exemplo, monitorar as palavras mais buscadas no seu site para conseguir descobrir novas oportunidades de negócio, comunicar o Centro de Distribuição (CD) sobre um novo pedido no momento em que ele é pago e, assim, reduzir o tempo de atendimento, ou ainda criar mecanismos que demandem automaticamente os fornecedores quando o estoque atingir o limite mínimo.
São mais de 400 gatilhos de eventos oficialmente distribuídos pelo framework e que permitem esse tipo de desenvolvimento, mas caso você precisar de um novo, a plataforma permite que você o crie de uma maneira rápida e segura, seguindo três passos: configuração do XML, criação da classe que implementa o recurso e a adição da trigger no código, como no exemplo:
Mage::dispatchEvent([label_do_evento], [array de dados]);
Um outro recurso disponível no Magento é o Business Rule Engine – BRE, que aparece com o nome de Rule Conditions. BREs tornam maleáveis os pontos do software onde elas são utilizadas, constituindo uma ferramenta comum em ambientes com ritmo de mudança muito acelerado, exatamente como é o e-commerce, com sua necessidade de resposta rápida para mudanças no mercado.
A composição de campanhas de marketing através de BREs permite compor cenários complexos com muita velocidade, colocá-los em teste e realizar aprimoramentos a partir do conhecimento surgido da experimentação, sem a necessidade inicial de desenvolvimento.
No exemplo abaixo, está configurada uma ação de upselling. Quando o modelo de um produto é 2610, o Magento irá sugerir o produto modelo w810i.
É possível compor uma campanha que oferece 10% de desconto para um grupo de clientes na compra de determinados produtos, para um método de pagamento específico, desde a instalação do Magento. Se houver novos parâmetros que você deseja utilizar para compor o conjunto de regras da BRE, isso pode ser feito com segurança por um programador Magento.
Além dos recursos que já citei, o Magento oferece suporte para localização do site, utilização de mais temas para o front-end e centenas de extensões, muitas delas gratuitas e mantidas pela comunidade.
Atualmente são três as versões de Magento disponíveis no mercado: Community, Enterprise e a GO (SaaS), rodando o code base na versão 1.9. Paralelo a isso, está em desenvolvimento a versão 2.0, que atualiza práticas de programação e promete aumentar ainda mais a produtividade dos desenvolvedores envolvidos com e-commerce.
***
Artigo publicado na Revista iMasters. Você pode assinar a Revista e receber as edições impressas em casa, saiba mais.