Skip to main content

Adicionando Botão Google+1 (Plus One)

Seguindo a tendência de compartilhamento de conteúdo, como o twitter e o like do facebook, o google lançou o projeto plus one (Google+1). Para que você compartilhe com sua rede de relacionamento as páginas que você gosta e recomenda.

Muito provável que isso também influencie no seu posicionamento nos mecanismos de pesquisa do google. E é de graça, então não custa nada colocarmos no site, vai que…

Ah! Você ainda não sabe o que é esse tal de Google+1??? Então veja no site: www.google.com/+1/button

Vou mostrar apenas UMA das inúmeras formas de inserir esse widget no Magento. Primeiro você deve entrar no google webmaster para escolher a configuração do seu botão, coisas como tamanho e idioma: www.google.com/intl/pt-BR/webmasters/+1/button/index.html

google+1 configurações

Veja que a medida que você vai alterando as configurações, o código disponível para copiar vai mudando.  Mas basicamente são dois blocos de código a serem usados. Um import no javascript. E a tag que exibe o botão na página, bem simples.

Então copiamos o código que importa o javascript:

[js]<!– Inclua esta tag na seção head ou logo antes da tag de fechamento da seção body –>
<script type=”text/javascript” src=”https://apis.google.com/js/plusone.js”>
{lang: ‘pt-BR’}
</script>[/js]

Abra o backend do Magento e vá em: Sistema -> Configuração -> Template e na guia Rodapé cole o trecho de código no campo “Outros códigos HTML“. E não esqueça de salvar no alto da tela.

Pronto. Com isso você já “instalou” o Google+1 na sua loja. Agora é só escolher onde você quer adicionar o botão, no seu template. Copie o código disponibilizado pelo google:

[js]<!– Inclua esta tag onde desejar que o botão +1 seja exibido –>
<g:plusone size=”tall”></g:plusone>[/js]

Para efeito de exemplo, eu irei adicionar em qualquer lugar. Vou abrir uma página CMS do Magento, como a página “Quem Somos” e no menu Conteúdo vou adicionar a tag do google, salvar, e ver o resultado no frontend.

adicionando tag google+1 no magento

E está feita a mágica. Bem simples não é!? Você pode decidir adicionar esse botão apenas nas páginas de produtos ou em todo site, basta escolher o local conforme seu template/tema permite.

 

google+1 no site magento

Se você quer adicionar diretamente no seu código html, basta abrir o phtml responsável pelo bloco da página. Para isso use o debug do Magento, não tem erro, você vai alterar exatamente a página que precisa, e vai encontrar o diretório exato da página. Se não sabe usar o debug, leia o post aqui do blog.

Sucesso e Bons Negócios!

Performance Magento – As Dicas

Vou tentar fazer aqui uma síntese das dicas e possibilidades de otimização e performance que você pode aplicar ao seu sistema Magento para ter um melhor aproveitamento da ferramenta.

Só para entedermos melhor os conceitos, a performance é melhorada quando otimizamos nossos recursos para que sejam melhor aproveitados. E otimizar um recurso não é criar nada novo, apenas usar o que já temos em mãos da melhor forma possível, ou seja, aplicando boas práticas de uso podemos otimizar esse ou qualquer sistema.

Primeiro ponto, que considero de alta importância, pois o Magento parte dele antes mesmo de ser instalado. É o local de instalação, ou seja, o servidor de hospedagem. Inclusive isso já foi tema aqui no blog em Performance Magento – Hospedagem.

Em geral as pessoas costumam começar com qualquer hospedagem barata que aceite Magento. Mas os planos básicos são muito limitados em recursos e flexibilidade. Um plano do tipo VPN VPS sempre vai ser melhor do que um compartilhado. Assim como um IP Dedicado sempre vai ser melhor que um VPS. E um plano de Cloud Computing dizem que é o futuro.

Então temos: Compartilhado -> VPS -> Dedicado -> Cloud.

Segundo ponto, tem relação direta ao primeiro sobre hospedagem. É o uso de um acelerador de cache PHP por parte do servidor. A Magento em seu site mesmo indica o uso de APC ou XCache como sistema de acelerador de cache.

Você provavelmente não vai encontrar nenhuma hospedagem compartilhada que ofereça esse recurso. Acredito que isso possa ser encontrado a partir de hospedagens do tipo VPN pra cima.

Terceiro ponto, configuração de memória do PHP e do MySQL. Seu servidor possui um arquivo chamado php.ini que contém diversas informações de execução das suas aplicações. Esse arquivo já vem pré-configurado pelo seu servidor, então se você tiver acesso a esse arquivo pode otimizar os valores de memória e tempo de execução. Para mais informações leia o manual do PHP (sessão core ini) em www.php.net.

Para o MySQL a mesma coisa, dê uma lida no manual do MySQL em dev.mysql.com.

Quarto ponto, compressão de saída gzip. Usado pela maioria dos navegadores modernos para acelerar a renderização de páginas. Você precisa configurar no seu servidor para que ele gere saídas de páginas comprimidas em gzip para que possam ser usadas pelos navegadores nesse processo. Outra vez vai depender da escolha de uma boa hospedagem para contar com este recurso.

Quinto ponto, agora sim entrando nas configurações do próprio Magento. Muitos aqui já devem saber que o Magento conta com um sistema de gerenciamento de cache interno, que deve ser desligado sempre que você estiver desenvolvendo ou alterando recursos visuais ou do sistema como já foi falado aqui no blog em Cache Quando e Por que!

Quando tiver sua loja pronta e funcionando, deixe o controle de cache interno ligado para otimizar os recursos do sistema.

Sexto ponto, o Magento também conta com recurso de indexação. Essa é uma forma de encontrar com maior segurança e agilidade as informações armazenadas pelo sistema. Procure manter sempre as informações indexadas no seu Gerenciador de Índices.

Sétimo ponto, habilite apenas o que vai usar. Em alguns pontos do sistema o Magento vem pré configurado de fábrica, como por exemplo no uso de moedas pelo sistema. Se você vai usar apenas a moeda Real Brasileiro, não tem por que carregar centenas de moedas na inicialização da variável moedas.

Pode parecer apenas um detalhe irrelevante o carregamento de uma variável do sistema. Mas como eu disse no início, otimizar é isso, saber fazer bom proveito dos recursos. Se você juntar pequenos detalhes, no final terá a soma de um resultado bem mais satisfatório.

Veja o exemplo das moedas no post Cotação Dólar x Real. Navegue pelas configurações do sistema a procura de outros valores que não precisam ser carregados.

Oitavo ponto, seguindo a mesma idéia das variáveis acima, podemos fazer o mesmo para os módulos do sistema. O Magento é composto por uma série de módulos, é módulo de cálculo de frete, módulo de pagamentos, módulo de envio de email, módulo de produtos, de categorias, de estoque, de promoções, de tags, etc, etc, etc.

E por padrão todos os módulos são inicializados, mesmo que você não utilize, ele está lá, carregado, esperando pra ser usado.

Mas se você não vai usar, ou não precisa usar, desligue. Se você não vai usar os recursos de enquete no seu site, desligue o módulo de Polls do sistema. Também já falamos sobre isso aqui no blog em Desligar Notificações da Administração.

Nono ponto, entenda os conceitos e padrões de desenvolvimento para saber qual deles você deve usar na sua loja. Estou me referindo as tabelas do tipo EAV e Flat que manipulam os dados de maneiras diferentes na sua loja, prefira o modelo Flat. Para entender melhor leia o post Performance Magento – Produtos e Categorias.

Décimo ponto, novos templates e módulos. É muito comum o pessoal sair atrás de templates “irados”, com visual mais clean ou sofisticado. Importante lembrar que, um bom designer talvez não seja um bom programador visual. Talvez ele não saiba utilizar bem os recursos do Magento e acabe fazendo da maneira que ele entende, ou seja, o suficiente para aplicar o design dele ao sistema.

Sim, uma boa “tradução” da arte para o código faz diferença. O uso de técnicas SEO, tableless, xHtml, scripts bem escritos. Isso tudo pesa na balança. Da mesma forma como os módulos personalizados, vejo “barbaridades” sendo feitas por aí, com o único objetivo de funcionar. O simples fato de escrever um módulo que utilize recursos da sessão ao invés de solicitar uma nova instância do objeto, pode fazer diferença, principalmente se for um módulo muito utilizado pelo sistema.

No blog você encontra algumas referências sobre como trabalhar com temas ou usar recursos da sessão.

Décimo Primeiro ponto. Esse é meu favorito, o efeito placebo! Dê a seus clientes algo diferente, que pareça bom, e eles vão acreditar que faz efeito. Um exemplo disso é o uso de Ajax no código, como por exemplo carregar os valores do frete na tela sem precisar atualizar a página após digitar os valores no campo CEP.

Mesmo que leve o mesmo tempo de recarregar a página, a impressão do cliente será melhor, pois o efeito visual passa essa sensação. Da mesma forma que a usabilidade do seu site, quanto mais fácil for para o cliente achar o que procura, mais rápido o site vai parecer funcionar para ele.

Então a facilidade com que ele encontra as informações, os botões, os produtos bem dispostos na tela, banners bem feitos, fontes, cores, etc. Tudo isso influência na experiência do usuário, e com certeza ajuda na otimização, mesmo que seja apenas na sensação.

Décimo Segundo ponto. Otimizar o sistema de busca da sua loja, esse assunto já foi abordado aqui no blog em Otimize sua busca usando sinônimos. Além de ser uma boa prática SEO, quanto mais fácil for para seu cliente encontrar o que procura, mais rápido ele concretiza a venda. O Magento também permite que você configure o funcionamento da busca, alterando o número de palavras no critério de busca, o tipo de combinação das palavras digitadas, tamanho máximo, etc.

Além do que, você ainda pode configurar alguns atributos dos produtos para que sejam facilmente filtráveis por um menu navegável que fica ao lado do catálogo. Esse recurso é importantíssimo para facilitar a busca de seus clientes quando você possui um catálogo com muitas opções de produtos. E claro, pequenos detalhes como a opção de organizar a lista de resultados por nome ou preço.

Décimo Terceiro ponto. Os agendamentos cron, as rotinas de atualização a qual o sistema foi configurado. É provável que você tenha algumas rotinas pré agendadas no seu sistema, como o envio automático de emails, a cotação de moedas, publicação de feeds, controle de logs, geração de backups, sitemaps, etc.

Todas essas atividades vão utilizar recursos do sistema e do servidor para serem executadas. Então evite executar as ações em horários de pico ou grande movimento no site, pois isso gera concorrência de recursos e pode apresentar lentidão em diversos momentos, dependendo da tarefa que está sendo executada e do número de visitantes do seu site.

Se você não sabe qual o melhor horário para agendar suas rotinas, procura analisar as estatísticas do seu site com o Google Analytics, e veja quais os melhores horários para as tarefas.

Chega! Acho que abordamos diversos assuntos relevantes, mesmo que sendo de forma resumida, podemos ver que não caberia explorar tudo em apenas um post. Se você tiver outras dicas, me deixe saber, compartilhe seus conhecimentos.

Se você usa um servidor em nuvens (cloud computing) veja as dicas (em inglês) para otimizar sua aplicação em servidores cloud no site da optaros.

Sucesso!

Criando Extensão no Magento Connect

Como a maioria deve saber o Magento é uma ferramenta de código fonte aberta (open-source), e isso possibilita que desenvolvedores criem extensões para o sistema. Seja para melhorar algum recurso nativo ou para disponibilizar novas funcionalidades.

Por conta disso a Varien (empresa que criou o Magento) disponibilizou uma área online para organizar e disponibilizar estes recursos, chamado de Magento Connect. Então se você criou uma extensão e deseja disponibilizar a toda comunidade, seja na forma gratuita ou paga, você pode fazê-lo de duas maneiras.

A forma mais completa seria pelo backend da sua loja, em Sistema -> Magento Connect -> Criar Extensão. Diversas opções de configuração estarão disponíveis nesse quadro.

Outra forma seria pelo próprio site do Magento usando sua conta de membro, no alto da página ao fazer o login seu nome de usuário apresenta um menu com a opção “My Account“.

Ao clicar ali você terá um menu de opções, dentre eles a opção Magento Connect -> Add new extension e Manage extensions caso você já tenha enviado alguma extensão.

criar ou gerenciar extensões

Primeiro passo é informar o tipo de extensão que você deseja enviar, se será comunitária (grátis) ou paga. Você pode futuramente converter sua extensão free para paga editando as informações de extensão.

informações de extensão

Informe um título que identifique sua extensão, o nome será sugerido com base no título que você informou. Lembrando que a palavra-chave “Magento” não poderá ser usada.

configurando extensão

Dando continuidade as informações da sua extensão, informe o tipo de licença, a compatibilidade de versões, as palavras-chaves que identificam sua extensão, a que categoria pertence e em que idioma ela estará disponível.

E por fim, anexe o pacote zipado para upload dos arquivos.

salvando extensão

No final da página você ainda pode ter um preview de como será exibida a sua extensão depois de aprovada. Clique em salvar e aguarde a aprovação da equipe do Magento.

Dica: Ao salvar, o Magento gera um arquivo xml com informações da sua extensão, caso falte alguma informação ou se verifique alguma inconsistência e/ou incompatibilidade, um erro de package.xml será exibido.

Esse assunto não se resume nesse post, ainda há muito a ser falado sobre a criação de extensões para Magento.

Sucesso!

Pesquisa de Satisfação com eBit

Você provavelmente já ouviu falar na empresa e-Bit que atualmente faz parte do grupo Buscapé! Esse post não é uma propaganda da empresa, por isso não irei falar muito sobre a empresa e suas vantagens.

Mas se você é daquelas pessoas que gostam de pesquisas de satisfação, a eBit oferece esse recurso a seus clientes, além de você colocar no seu site um selo eBit que pode mudar dependendo das avaliações dos clientes, que por consequência pode atrair mais visitantes e gerar maior confiança no site.

Então, se você ainda não possui uma conta, acesse o link www.ebit.com.br/convenio_lojas/html/convenio_lojas.asp e faça o cadastro da sua empresa e espere aprovação.

Depois de aprovado você pode usar os selos disponíveis no site da eBit na sua loja.

Na página de pedido realizado com sucesso, você pode adicionar o bloco de código fornecido pelo eBit para que seus clientes iniciem a pesquisa de satisfação, para isso abra o arquivo success.phtml que fica em app -> design -> frontend -> base -> default -> template -> checkout e insira o código como no exemplo abaixo:

De preferência logo abaixo da mensagem de sucesso. O valor XXXXXX é o código da sua loja informado pela e-bit.

pesquisa satisfação ebit

Outra forma de incentivar seus clientes a responder as pesquisas é inserindo o código também nos emails de transação, como por exemplo o email de pedido realizado com sucesso. Leia mais sobre emails de transação aqui no blog.

Dica: Se você usa o Pagamento Digital da empresa Buscapé! como forma de pagamento, então pode integrar o e-Bit com seu ckeckout nas configurações do Pagamento Digital -> Ferramentas -> eBit e inserir seu código de associado.

Sucesso!

Status de Pedido Personalizado

Uma ação que achei interessante depois de ver algumas pessoas procurando, é a opção de alterar o status do pedido para um valor personalizado. Isso é interessante se você deseja ter um controle maior dos processos ou até se você possui ações personalizadas.

No caso você poderia querer alterar o status do seu pedido para “Em Desenvolvimento“, ou “Aguardando Estoque“, “Em Trânsito“, “Em Produção“, “Aguardando Retirada“, enfim, inúmeras as possibilidades de status. Vejamos então como ativar este recurso na sua loja.

Atenção: Os procedimentos abaixo envolvem programação e alteração de arquivos do Core do sistema. Faça backup dos arquivos antes de executar qualquer alteração, e faça as alterações em um ambiente de testes antes de aplicar na loja em produção.

Neste exemplo iremos alterar 4 arquivos. Os testes foram feitos na versão 1.4.0.1 do Magento, podendo haver pequenas diferenças em outras versões.

Para começar vamos alterar o arquivo Grid.php que fica em app -> code -> core -> Mage -> Adminhtml -> Block -> Sales -> Order, responsável por carregar as opções de status na tela de Pedidos.

Dentro da função _prepareMassaction() lá pela linha 215 você deve ver um código comentado com //. Apenas retire as barras:

[php]$statuses = Mage::getSingleton(‘sales/order_config’)->getStatuses();
array_unshift($statuses, array(‘value’=>”, ‘label’=>”));
$this->getMassactionBlock()->addItem(‘change_status’, array(
‘label’=> Mage::helper(‘sales’)->__(‘Change Status’),
‘url’ => $this->getUrl(‘*/*/massStatus’),
‘additional’ => array(
‘visibility’ => array(
‘name’ => ‘status’,
‘type’ => ‘select’,
‘class’ => ‘required-entry’,
‘label’ => Mage::helper(‘sales’)->__(‘New Status’),
‘values’ => $statuses
)
)
));[/php]

Veja que no código acima ele carrega os status do arquivo config: Mage::getSingleton(‘sales/order_config’)->getStatuses();

Então vamos abrir este arquivo config.xml que fica em app -> code -> core -> Mage -> Sales -> etc, para inserirmos os status personalizados. Lá pela linha 544 você deve encontrar as tags <order><statuses> e dentro deste bloco todos os status personalizados disponíveis.

Incluiremos aqui a linha <transito translate=”label”><label>Em Transito</label></transito> ficando o bloco assim:

[xml]





[/xml]Inclua quantos status desejar, sempre cuidando para que sua tag tenha um valor único. Logo abaixo temos a tag <states> com os blocos identificados acima. Vamos inserir nosso bloco personalizado aqui também (logo abaixo de holded como no bloco anterior).

[xml]

[/xml]Lembra do código que descomentamos agora a pouco? Eu realmente espero que você lembre, senão você está com algum problema. :D

Depois de carregar a lista de status, ele chama uma função $this->getMassactionBlock() que fica no arquivo OrderController.php em app -> code -> core -> Mage -> Adminhtml -> controllers -> Sale. Procure pela função que deve estar lá pela linha 395.

Para nossa surpresa o método está em branco, ou seja, ele não faz nada. Será que a equipe do Magento esqueceu de descomentar aquele código e criar as rotinas? Nunca saberemos. hehe. Bom, então vamos colocar nosso próprio código ali dentro, ficando assim:

[php]public function massStatusAction() {
$pedidosIds = $this->getRequest()->getPost(‘order_ids’, array());
$i=0;

foreach ( $pedidosIds as $pedidoId ) {
$order = Mage::getModel(‘sales/order’)->load( $pedidoId );
$order->setNovoStatus( $this->getRequest()->getPost(‘status’) )->save();
$i++;
}

if ( $i>0 ) {
$this->_getSession()->addSuccess( $this->__( ‘%s pedidos(s) com status atualizado(s)’, $i ) );
} else {
$this->_getSession()->addError( $this->__( ‘Nenhum status de pedido foi atualizado’ ) );
}

$this->_redirect(‘*/*/’);
}[/php]

Veja que para cada pedido selecionado eu chamo uma função setNovoStatus passando o valor selecionado na tela por você. Para que isso funcione precisamos criar esse método no arquivo Order.php que fica em app -> code -> core -> Mage -> Sales -> Model, lá pela linha 1157 você deve encontrar um comentário como este:

[php]/*********************** STATUSES ***************************/[/php]

Abaixo dele adicione o seguinte código:

[php]/**
* Altera o status do pedido
*
* @param string $valor
* @return Mage_Sales_Model_Order
*/
public function setNovoStatus( $valor=” ) {
$this->setState( $valor, true );

return $this;
}[/php]

E está pronto! Agora vamos aos testes. No seu backend vá em Vendas -> Pedidos para listar todos seus pedidos. Em seguida selecione os pedidos que deseja alterar o status e na combobox Ações selecione a opção Alterar Status. Uma nova combobox deve aparecer com as opções disponíveis, selecione o status e clique em Executar.

novos status

Os pedidos terão seus status alterados, e você poderá usar o filtro para visualizar apenas os status relacionados.

Sucesso!

Restaurando Backup SQL via SSH

Após ficar alguns dias fora do ar migrando os dados de servidor, precisei restaurar alguns backups SQL dos bancos de dados. E já precisei fazer isso outras vezes para o Magento também.

Como já vimos aqui no blog, é possível fazer backup dos dados da sua loja Magento de forma simples e rápida. Já para restaurar esse backup as coisas podem se complicar um pouco.

Primeiro porque na administração do Magento não existe um botão do tipo “clique aqui e restaure suas tabelas“. Claro que, se você tiver uma base espelhada (recomendável para grandes empresas) então você poderia usar o Database Repair Tool já comentado aqui no blog.

O ideal para recuperar seu backup, seria acessar sua base MySQL, talvez pelo sistema do phpMyAdmin e usar a opção de importação, onde você apenas aponta o arquivo e ele faz todo o trabalho sujo pra você.

Acontece que a maioria dos servidores possuem restrições de tamanho e limite de tempo, em sua maioria bem reduzidos. E os arquivos de backup SQL geralmente ultrapassam em muito esses limites. Então como fazer?

Talvez o suporte da sua hospedagem solicite que você envie o arquivo SQL para que eles rodem direto no servidor. Mas se você tem um arquivo acima de 60 mega e quer fazer por conta própria, então vai precisar se conectar remotamente a sua base de dados MySQL e rodar o script de backup SQL.

Uma das formas de se conectar remotamente é usando SSH, que veremos nesse exemplo, você também poderia usar uma IDE (outros programas) que fazem conexão remota com banco de dados.

Dica: Em alguns servidores para conseguir acesso remoto usando IDE’s você precisa liberar o IP da sua máquina nas configurações do servidor.

Para deixar o processo mais simples, eu enviei o arquivo SQL por FTP para meu servidor de hospedagem, diretamente na pasta raiz (root), antes de executar os comandos abaixo.

Abra seu terminal SSH e digite o seguinte (aqui testado no terminal de um Mac Os X):

[html]ssh meulogin@ftp.meudominio.com[/html]

Se for seu primeiro acesso, ele vai dar um aviso de segurança e solicitar uma confirmação do tipo (yes/no). Em seguida ele solicita sua senha de conexão do FTP. Assim que você informar a senha corretamente, estará conectado remotamente ao seu servidor e pode enfim executar o comando de restauração do banco. Para isso digite:

[sql]mysql –user=usuariodobanco –password=senhadobanco –host=mysql.seudominio.com nomedodatabase < nomedoarquivo.sql[/sql]

Dica: Estes dados você precisou fornecer durante a instalação do Magento, se não lembra, entre em contato com suporte da sua hospedagem ou dê uma lida em re-editando configurações de instalação.

Basta digitar os dados acima corretamente e aguardar. Quanto menor o arquivo mais rápido ele vai terminar, óbvio. Aguarde o prompt de comando ficar disponível novamente, não tem mensagem de sucesso ao finalizar.

Para saber se deu certo, faça um teste, acesse seu banco de dados, veja no phpMyAdmin.

Para fechar a conexão do SSH digite: exit;

Sucesso!

Taxas e Impostos

O Magento possui uma complexa estrutura de taxas e impostos. Aparentemente um recurso pouco utilizado aqui no Brasil, mas uma prática comum em países da Europa, onde eles descriminam valor do produto e valor do produto com imposto.

Mas as configurações do Magento permitem que você crie taxas visíveis ou não aos clientes. Além de criar taxas para grupos específicos de clientes ou de produtos. Opção de aplicar sobre descontos ou fretes, enfim, é tanta opção de configuração que um post pra falar apenas das configurações de impostos ficaria enorme.

Vejamos então um pequeno exemplo, onde iremos taxar os produtos com um imposto de 10% sobre o valor do produto.

Quando você vai em Clientes -> Grupo de Clientes você pode ver que cada grupo possui uma classe de imposto associada.

classe de clientes

Dessa forma você pode informar que cada grupo possui uma taxa diferenciada, para isso basta criar uma classe de imposto para clientes em Vendas -> Taxas e Impostos -> Classe de Clientes. Você poderia por exemplo aplicar a taxa de imposto deste exemplo apenas para clientes não cadastrados no sistema “NOT LOGGED IN“.

Já para os produtos que estão em Catálogo -> Gerenciar Produtos, quando você seleciona um produto, e vai na guia “Preços” você pode selecionar a classe de imposto associada.

classe de produtos

Da mesma forma você pode criar um classe e setar para determinados produtos, para isso vá em Vendas -> Taxas e Impostos -> Classe de Produtos. Você poderia por exemplo criar uma taxa para produtos eletrônicos, outra taxa para produtos de vestuário, outra taxa para produtos perecíveis, etc.

Agora você precisa criar o valor de cálculo para o imposto, ou seja, a taxa a ser aplicada nos produtos ou frete. Para isso vá em Vendas -> Taxas e Impostos -> Cálculos de Impostos e crie um novo cálculo informando o valor percentual a ser aplicado nos itens (nesse exemplo 10).

calculo da taxa de imposto

Na última etapa, o pulo do gato. Com os clientes e produtos já associados as classes e com o cálculo criado, basta juntar tudo em uma regra de imposto. Para isso vá em Vendas -> Taxas e Impostos -> Regras de Impostos e clique em Criar Imposto.

regra de calculo de imposto

Informe um nome para sua regra e selecione as classes que terão efeito sobre o imposto criado. Agora basta salvar tudo e ver o valor aplicado no frontend (para aqueles produtos que utilizam a classe de imposto!).

Como eu falei no início do post, ainda tem muita coisa a ser falado sobre impostos. Você pode por exemplo ainda importar/exportar taxas de impostos em Vendas -> Taxas e Impostos -> Importar/Exportar Impostos.

Em Sistema -> Configuração -> Vendas [Taxas e Impostos] você tem diversas opções de configuração sobre como o Magento deve aplicar os impostos no sistema. Faça alguns testes alterando os valores da configuração e veja o resultado que cada item tem sobre o sistema.

Sucesso!

WebServices – Compartilhando Recursos

Um recurso avançado e poderoso do Magento é a possibilidade de se trabalhar com WebServices, ou seja, compartilhar recursos do sistema através de API‘s que geram saídas em XML, geralmente utilizando a tecnologia de comunicação SOAP.

Eu sei, uma sopa de letrinhas de confundir qualquer um. Mas leia com atenção para entender do que se trata, pois vale a pena conhecer este recurso avançado da ferramenta.

Imagine que você precise ler informações da sua loja em outro sistema, por exemplo um software de ERP, CRM, SAP, CMS ou até mesmo uma aplicação personalizada criada sob medida para você.

Nestes casos o Magento Ecommerce oferece algumas API’s prontas para dividir informações com outros sistemas. Como informações de clientes, pedidos, endereços, grupos, categorias, produtos, etc, etc, etc. Nos casos em que não existirem você pode criar uma API personalizada também, mas isso é uma outra história.

Vejamos um exemplo simples e rápido de como recuperar uma lista de email dos clientes cadastrados na sua loja usando um “programinha” escrito em php.

Dica: Aqui foi usado PHP, mas na verdade poderia ser em qualquer linguagem que tenha por exemplo suporte a SOAP (todas?!).

Primeiro passo, vá em Sistema -> Compartilhar Recursos -> Nível de Acesso e crie um nível de permissão de acesso, por exemplo, escolhendo apenas API de clientes, assim o sistema externo poderá acessar apenas as informações dos clientes.

criar nivel de acesso

Nota: Quando eu digo acesso, quero dizer “controle total”, ou seja, incluir, alterar, apagar e pesquisar. Mas isso também pode ser configurado.

Depois de criar um nível de acesso, vá em Sistema -> Compartilhar Recursos -> Usuários e crie um usuário para acessar as informações do seu sistema via webservice.

usuario webservice

Basicamente você vai informar o grupo de permissões a que esse usuário tem acesso, informar um login de acesso e a chave de API que na verdade é a senha de acesso.

Essa foi a parte difícil. Agora basta criar no seu sistema uma comunicação do tipo SOAP para acessar os dados do sistema. Veja o exemplo do arquivo abaixo, chamado de teste.php:

[php]<?php
$proxy = new SoapClient(‘http://localhost/magento/api/soap/?wsdl’);
$sessionId = $proxy->login(‘mariosam’, ‘senha123′);

$result = $proxy->call($sessionId, ‘customer.list’, array(‘filters’, ‘*’));

foreach ( $result as $obj ) {
echo $obj[“email”];
}
?>[/php]

Veja como é simples, primeiro você cria a conexão SOAP com seu sistema, logo em seguida informa o login e senha. Depois faz uma consulta na lista de clientes e por último exibe os resultados encontrados.

A url informada em “new SoapClient” deve ser a URL da sua loja, algo como www.seu-site.com.br/api/soap/?wsdl, basta digitar isso no seu navegador, se aparecer um arquivo XML válido então a URL está correta.

O arquivo teste.php deve estar em um servidor web válido, se você colocar no seu diretório root, então vai acessar digitando: www.seu-site.com.br/teste.php

E está feito a conexão, uma lista de emails deve aparecer na tela. Agora use as informações com moderação.

Veja mais informações sobre webservices-api na documentação oficial do Magento em www.magentocommerce.com/wiki/doc/webservices-api/api