Bloco de produtos em promoção e produtos randômicos do Magento

O template para os produtos em promocão fica localizado em appcodecoreMageCatalogBlockProductListPromotion.php. Para utilizar, acrescente ou crie um atributo promotion, de escopo global, input type yes/no,  e adicione ao set de atributos que você utiliza.

Para exibir os produtos em promoção utilize no xml de gerenciamento da sua página o código:

<block type="catalog/product_list_promotion"
       name="product_promotion"
       template="catalog/product/list.phtml"/>

ou insira pelo CMS:

{{block type='catalog/product_list_promotion'
        template='catalog/product/list.phtml'}}

O template do bloco de itens randômicos estão localizados em appcodecoreMageCatalogBlockProductListRandom.php, para chamar no xml de gerenciamento da sua página utilize:

<block type="catalog/product_list_random"
       name="product_random"
       template="catalog/product/list.phtml"/>

 

Configurando as páginas de erro do magento

Na instalação padrão, quando ocorre algum erro no Magento, ele mostra ao usuário uma tela baseada no layout padrão mostrando o código do Error Log. Isso é extremamente desagradável ao usuário por não entender o que aquilo significa.

Para personalizar as suas páginas de erro e ainda exibir um formulário de contato com o cliente que chegou na página de erro, procure na sua instalação a pasta errors/default/ e copie com o nome do seu template, ou seja error/meutemplate/

Renomeie o arquivo local.xml.sample que está dentro da pasta error/ para local.xml e abra para edição.

Altere os valores das tags de acordo com o desejado

  • <skin> – nome do template ao qual pertence a página de erro, ex.: meutemplate;
  • <action> – gerencia qual ação será tomada
    • print: para colocar o erro na tela. Ideal para usar no seu servidor de testes.
    • email: para enviar o erro por email.
  • <subject> – assunto do email
  • <email_address> – para qual email deverá ser enviado o erro.
  • <trash> – gerencia o que fazer com o erro.
    • leave: para gravar o erro no banco
    • delete: para limpar

Personalize os arquivos que copiou da pasta default, sendo os arquivos:

  • page.phtml: para emoldurar a página com o seu template
  • 404.phtml: para configurar a página com o erro de página não encontrada.
  • 503.phtml: para configurar a página com o erro de serviço indisponível.
  • report.phtml: para configurar a página que te enviará o relatório de erros por email.

Tente usar o mínimo de requisições ao core do Magento, pois se o erro ocorrer devido a falhas no core, o usuário não visualizará a página de erro.

Criação de Blocos de página no Magento

Um dos grandes problemas ao se trabalhar com o magento é a sua parte burocrática para a implementação de códigos. Para mudar simplesmente um menu de posição, será necessário um esforço muito maior do que temos hoje para executar o mesmo processo em um sistema Joomla ou WordPress.

Se por um lado é um sacrifício ter que passar por estas etapas, por outro, de acordo com a Varien, isso dá mais segurança.

Então para implementarmos um bloco de código, não é somente inserir um include, require ou implantar o código diretamente no template. Para exemplificar, farei a descrição das etapas para chamar um bloco de código que faça a exibição do menu principal da página. Proceda então da seguinte forma:

Crie o seu arquivo phtml dentro do caminho app/design/frontend/default/seu_tema/template/page/html/, neste caso nomeei como menuprincipal.phtml.

Abra o arquivo page.xml que está dentro de app/design/frontend/default/seu_tema/layout/

Como eu quero que o menu apareça dentro do bloco header, insiro a linha a seguir dentro do trecho de código xml que gerencia este bloco.

<block type="page/html_header" name="header" as="header">
    <block
     type="core/template"
     name="menuprincipal"
     as="menuprincipal"
     template="page/html/menuprincipal.phtml" />
</block>

Então temos quatro variáveis a serem preenchidas para a exibição correta do nosso bloco: type, name, as e template.

  • type identifica o tipo do bloco, você verá outros tipos na própria página page.xml
  • name é o nome do seu bloco;
  • as é o atalho que você usará para chamar este bloco e
  • template é o caminho para se chegar até o seu arquivo phtml.

Para finalizar, vá até o seu template do header que fica em app/design/frontend/default/seu_tema/template/page/html/ e insira o código que fará a chamada do seu bloco.

<?php echo $this->getChildHtml('menuprincipal') ?>

Você pode usar estes blocos para subdividir e gerenciar melhor o seu layout.

Referências

http://inchoo.net/ecommerce/magento/custom-reference-structural-block/

http://www.exploremagento.com/magento/simple-custom-module.php

Acessando servidor via SSH

O FTP é uma ferramenta muito útil para o tráfego de arquivos, entretanto dependendo da quantidade que se tenha para transferir, o processo fica muito lento devido a verificação de cada arquivo enviado.

Para estes casos, é possível compactar o arquivo, enviar via SSH e extrair diretamente no servidor. Um bom exemplo disso são os arquivos do Magento. A pasta compactada tem cerca de 15MB e para enviar estes arquivos via FTP com uma ótima conexão, não leva menos de duas horas. Via SSH em poucos minutos o temos o arquivo disponível.

Para acessar o servidor via SSH, utilize um programa como o Putty do Windows ou acesse via Terminal do MAC ou do Linux.

Insira o seguinte comando:

ssh usuario_ftp@seu_dominio.com.br

Será solicitado a sua senha. Insira e aparecerá o console para que você possa a partir dos comandos do Linux copiar, excluir, mover, descompactar, fazer downloads diretamente em sua hospedagem.

Os principais comandos para você usar via SSH são

ls - listar arquivos (ex.: ls -la)
cp - copiar arquivos (ex.: cp file.txt pasta/filecopied.txt)
mv - mover arquivos (ex.: mv file.txt pasta/filemoved.txt)
rm - deletar arquivos ou diretrórios (ex.: rm -Rf dir)
wget - fazer o download de arquivos
tar - descompactar arquivos compactados com a extensão .tar.gz (ex.: tar -xfz arquivo.tar.gz)

Instalação do Magento

A instalação do magento é bem fácil de executar, exceto por algumas particularidades que podem acarretar dificuldades no processo e são essas particularidades que pretendo focar nesta anotação.

Faça do download da versão Full Release mais recente em http://www.magentocommerce.com/download, neste momento a mais recente é a 1.4.1.1.

Descompacte e faça o upload dos arquivos para o seu servidor ou para a pasta que será usada no seu localhost.

Enquanto o processo de descompactação e transferência é executado, acesse o seu phpmyadmin e crie uma base de dados, neste momento não precisa se preocupar com o collation pois a própria instalação do Magento toma conta de fazer o setup correto.

Acesse a pasta onde copiou os arquivos do Magento e dê permissão de leitura e escrita (chmod 777) para as seguintes pastas e arquivos:

  • app/etc
  • media e subpastas
  • var
  • var/.htaccess
  • .htaccess

Após copiado todos os arquivos e criada a base de dados acesse pelo seu browser o endereço em que copiou os arquivos de instalação do Magento, algo como http://www.seusite.com.br/magento ou http://localhost/magento e aparecerá a tela inicial da instalação.

Aceite o contrato e clique em continue.

Selecione o País (Locale), Fuso (Time Zone) e Moeda (Default Currency). Caso não tenha feito a ajuste de permissões corretamente, o magento não guardará as opções selecionadas, mas se quiser pode deixar as opções padrão e posteriormente configurar no menu administrativo do Magento. Clique em continue.

Preencha o campo Host. Normalmente usa-se localhost, entretanto alguns provedores utilizam bases de dados com endereços ou números de IP fixo, preencha o campo com esses dados sem o http:// e sem a última barra do endereço.

No campo database digite o nome do banco de dados criado no início do processo, seguido dos campos Username (login) e Password (senha) do banco de dados utilizado. Em Table Prefix pode deixar em branco, mas para efeito de organização da sua base de dados, você pode utilizar um prefixo para as tabelas do Magento como mag_  assim todas as 310 tabelas do magento iniciarão com este prefixo facilitando a visualização do grupo de tabelas.

Na tela seguinte entre com as suas informações pessoais e atente para o endereço de email pois caso perca a sua senha será com ele que poderá recuperá-la. Cadastre o seu Username e Senha mas não utilize o mesmo da base de dados para termos mais segurança no projeto. Confirme a senha  e no campo Encription Key, digite alguma frase ou sequência de caracteres alfanuméricos. Esse campo será usado para as chaves de segurança do Magento. Clique em continue.

Se tudo foi efetuado corretamente você verá a tela de finalização da instalação. Copie e guarde o seu Encryption Key e clique nos botões Go to frontend para ver a sua loja padrão funcionando ou clique em Go to Backend para fazer o login no módulo administrativo.

Neste ponto verifiquei que as instalações em localhost geram alguns problemas como não efetuar o login recarregando a página sem nenhuma mensagem de erro.

Algumas das soluções que encontrei foi:

  • Usar http://127.0.0.1 no lugar de http://localhost/
  • Editar o arquivo app/etc/local.xml alterando a linha

    para

    
    
  • Ou editar o arquivo do core app/code/core/Mage/Core/Model/Session/Abstract/varien.php e comentar o seguinte trecho:
    // session cookie params
    $cookieParams = array(
      'lifetime' = $cookie->getLifetime(),
      'path'     = $cookie->getPath()/*,
      'domain'   = $cookie->getConfigDomain(),
      'secure'   = $cookie->isSecure(),
      'httponly' = $cookie->getHttponly()*/
    );
    

Com isso acredito já ser possível iniciar os trabalhos com a sua instalação do Magento.

Modo multiloja no Magento

A utilização do Magento para a confecção de lojas virtuais, já é indiscutivelmente a melhor opção para se ter um e-commerce robusto, personalizado, seguro e funcional.
Uma dentre as várias opções disponíveis no Magento é o modo multiloja que permite que você tenha lojas diferentes e gerencie pelo mesmo backend, possibilitando fazer o tráfego de produtos entre uma loja e outra.

Em que isso pode ajudar no seu e-commerce? Imagine que você tenha produtos antigos no seu site e queira fazer uma queima de estoque. Ao invés de encher o seu site com banners com promoções e descontos, você pode criar uma versão outlet do seu site, transferindo para ele os produtos que já não são do seu interesse manter em estoque. Ou então para que não se misturem produtos distintos como venda de livros e sapatos na mesma loja.

Isso auxilia, de certa forma, no rankeamento do seu site vendo que ao serem procurados em sites de busca o seu link é visto como relevante.

Interessou? Então vou reproduzir abaixo uma das formas que utilizei para habilitar o modo multiloja e que acredito ser a menos complexa.

Vamos supor que queira criar a versão outlet do seu site com o Magento instalado e configurado.

  1. Acesse a pasta onde o Magento está instalado (onde você encontra as pastas app, var, entre outras).
  2. Crie a pasta outlet (ou com o nome correspondente a nova loja).
  3. Copie para esta pasta os arquivos index.php e .htaccess encontrados no mesmo nível onde criou a pasta outlet.
  4. Abra o arquivo index.php e edite a linha 45, onde está escrito $mageFilename = ‘app/Mage.php’; altere para $mageFilename = ‘../app/Mage.php’; para corresponder ao arquivo que se encontra dento da pasta app da sua instalação do Magento.
  5. Edite também a linha 75, onde está escrito $mageRunCode = isset($_SERVER[‘MAGE_RUN_CODE’]) ? $_SERVER[‘MAGE_RUN_CODE’] : ”; coloque um nome de identificação da sua loja, como $mageRunCode = isset($_SERVER[‘MAGE_RUN_CODE’]) ? $_SERVER[‘MAGE_RUN_CODE’] : ‘outlet.
  6. Acesse o painel de controle do Magento, vá em Manage Categories, crie uma nova categoria Root e nomeie significativamente, como Root Outlet. Você pode aproveitar este momento para criar as novas subcategorias do Root da sua loja.
  7. Acesse o menu System / Manage Stores.
  8. Clique em Create Website. Dê um nome significativo e em code, coloque o mesmo nome de identificação da loja registrado no item 5, neste caso, outlet e clique em salvar.
  9. Clique em Create Store. Selecione o Website criado no item anterior, nomeie significativamente e selecione a Categoria Root criada no item 6 e clique em salvar.
  10. Por fim, clique em Create Store View, selecione a loja criada no item anterior, nomeie significativamente, em code insira o nome de identificação registrado no item 5, e selecione no status Enable e clique em salvar.

Agora acesse o endereço principal do seu site /nome de identificação da sua loja, neste caso /outlet. Você deve encontrar o site com o design global mas sem nenhum produto registrado. Para inserir produtos nessa loja o procedimento é o padrão, exceto que na guia para categorizar você deve escolher as categorias que estão abaixo do Root correspondente ao seu site.

Para configurar os sites separadamente utilize o dropbox no canto superior esquerdo para selecionar a view da sua loja ao invés da opção padrão que é Default Config. Ainda em outras partes do backend do site podem ser selecionados opções para utilização global ou em determinada loja.

Ainda existem outras formas de configurar o multiloja, por exemplo utilizando subdomínios, que são um pouco mais complexas, mas nada que se diferencie completamente destes parâmetros iniciais.