Personalização dos formulários de clientes
Atender o mercado de módulos para Magento oferecendo melhorias e um excelente suporte
Para obter o devido suporte Clique aqui, relatando o motivo da ocorrência o mais detalhado possível e anexe o print da tela para nosso entendimento
-
Montagem de formulário personalizado
-
Suporte a máscaras
-
Suporte a validadores
-
Preenchimento do endereço pelo CEP
-
Checagem de documento "CPF" ou "CNPJ" impedindo registro duplicado
Para obter o devido suporte Clique aqui, relatando o motivo da ocorrência o mais detalhado possível e anexe o print da tela para nosso entendimento
Gostaria de apresentar o aplicativo que disponibilizei para a plataforma Heroku
Com apenas 1 clique, o aplicativo cria sua loja virtual usando a plataforma de comércio eletrônico Magento e instala os módulos da MOZG
https://github.com/mozgbrasil/heroku-magento#descrição
--
Sugiro "printar" as telas com todos os procedimentos executados
Envie para nós as imagens das telas na eventualidade de quaisquer dificuldades
--
Este módulo destina-se a ser instalado usando o Composer
Execute o seguinte comando no terminal, para visualizar a existencia do Composer e sua versão
composer --version
Caso não tenha o Composer em seu ambiente, sugiro ler o seguinte artigo Clique aqui
--
É necessário que o servidor tenha o suporte a extensão ionCube PHP Loader
Para visualizar a existência da extensão nesse ambiente denominado PHP CLI, execute o seguinte comando no terminal
php -v
Para visualizar se essa extensão está ativa em seu servidor no ambiente denominado PHP WEB
Certique se da presença do arquivo phpinfo.php na raiz do seu projeto
<?php phpinfo(); ?>
Caso não exista o arquivo phpinfo.php na raiz do projeto Magento, crie o mesmo adicionado o conteúdo acima
Acesse o arquivo pelo browser
Em seguida pesquise pelo termo "ionCube PHP Loader"
Caso o seu servidor não tenha o suporte a extensão, entre em contato com sua empresa de hospedagem e peça para que eles ativem a extensão
Caso tenha a permissão e queira ativar a extensão, Clique aqui
Em "Loader Downloads API", efetue download do pacote compatível com o seu servidor
Descompacte o pacote e faça upload do arquivo "loader-wizard.php" para seu servidor, onde será demonstrado o passo a passo para a ativação da extensão
Clique aqui para ver os processos executados
--
Na presença do "ionCube PHP Loader" efetue o download do seguinte arquivo e coloque na raiz do seu servidor e acesse, se funcionar quer dizer que o "ionCube" está lendo esse tipo de encriptação
--
Para utilizar o(s) módulo(s) da MOZG é necessário aceitar o Acordo de licença do usuário final
--
Sugiro manter um ambiente de testes para efeito de testes e somente após os devidos testes aplicar os devidos procedimento no ambiente de produção
--
Sugiro efetuar backup da plataforma Magento e do banco de dados
--
Antes de efetuar qualquer atualização no Magento sempre mantenha o Compiler e o Cache desativado
--
Certique se da presença do arquivo composer.json na raiz do seu projeto Magento e que o mesmo tenha os parâmetros semelhantes ao modelo JSON abaixo
{
"minimum-stability": "dev",
"prefer-stable": true,
"license": [
"proprietary"
],
"repositories": [
{
"type": "composer",
"url": "https://packages.firegento.com"
}
],
"extra": {
"magento-root-dir": "./",
"magento-deploystrategy": "copy",
"magento-force": true
}
}
Caso não exista o arquivo composer.json na raiz do projeto Magento, crie o mesmo adicionado o conteúdo acima
Para instalar o módulo execute o comando a seguir no terminal do seu servidor no diretório do seu projeto
composer require mozgbrasil/magento-customer-php_71:dev-master
Você pode verificar se o módulo está instalado, indo ao backend em:
STORES -> Configuration -> ADVANCED/Advanced -> Disable Modules Output
--
Para atualizar o módulo execute o comando a seguir no terminal do seu servidor no diretório do seu projeto
Antes de efetuar qualquer processo que envolva atualização no Magento é recomendado manter o Compiler e Cache desativado
composer update
Na ocorrência de erro, renomeie a pasta /vendor/mozgbrasil e execute novamente
Para checar a data do módulo execute o seguinte comando
grep -ri --include=*.json 'time": "' ./vendor/mozgbrasil
--
Para desinstalar o módulo execute o comando a seguir no terminal do seu servidor no diretório do seu projeto
composer remove mozgbrasil/magento-customer-php_71
--
-
Antes de efetuar qualquer processo que envolva atualização sobre o Magento é necessário manter o Compiler e Cache desativado
-
Caso queira desativar os módulos da MOZG renomeie a seguinte pasta app/code/local/Mozg
A desativação do módulo pode ser usado para detectar se determinada ocorrência tem relação com o módulo
--
Para configurar o método, acesse no backend em:
∞ MOZG ∞ -> Cadastro de Clientes -> Cadastro de Clientes - (powered by MOZG)
Você terá os campos a seguir
Exibe os devidos campos relativo ao endereço
Ao ativar o recurso deve ser utilizado o template presente no módulo, podemos visualizar que no template temos:
-
Mascara aos campos: zip "cep", telephone, fax, taxvat "geralmente usado para armazenar o cpf ou cnpj", cpf "modelo de possível novo atributo", cnpj "modelo de possível novo atributo"
-
Validador aos campos: zip, street_1, cpf, cnpj, taxvat
-
Preenchimento do endereço pelo CEP
-
Preenchimento automático para testes
-
Reordenação de campos
O procedimento de separar o número do endereço do campo "street1" não é uma prática nativa do Magento
Quando instalado o Magento com banco de dados demonstrativo não vemos no registro de clientes essa pratica de separar o número do endereço
Vemos preenchido para o campo "street1" da seguinte forma
10441 Jefferson Blvd, Suite 200
Representando o logradouro o numero e nesse caso também o complemento, ambas informações armazenada no atributo "street1"
Na forma nativa do Magento
É feito o armazenamento da seguinte forma
logradouro_com_numero_complemento = getStreet(1)
bairro = getStreet(2)
complemento/referencia = getStreet(3)
complemento/referencia = getStreet(4)
Para projetos que tem o número do endereço armazenado no campo street2
Pode ser usado o recurso presente no módulo de usar a opção "armazenamento separado"
Nesse caso o nosso módulo deve ler os armazenamentos da seguinte forma
logradouro = getStreet(1)
numero = getStreet(2)
complemento/referencia = getStreet(3)
bairro = getStreet(4)
Conheço 1 projeto que adota o armazenamento alternativo como é o caso do módulo "Inovarti_Onestepcheckout"
É feito o armazenamento da seguinte forma
logradouro = getStreet(1)
numero = getStreet(2)
complemento/referencia = getStreet(3)
bairro = getStreet(4)
Conforme
https://github.com/deivisonarthur/OSC-Magento-Brasil-6-Pro#tutoriais-e-observações
Armazena nos 2 campos nativos com os seguintes rótulos:
- Para o primeiro campo nativo *
endereço, numero, complemento
- Embora seja criado exibido 3 campos fictícios o armazenamento é feito no primeiro campo nativo de endereço no Magento
- Para o segundo campo nativo
bairro
No uso dessa opção, acesse no backend em:
Sistema -> Configuração -> Clientes -> Configuração -> Opções de Nome e Endereço
Altere para o campo "Número de linhas em um endereço de rua" para 4
Armazena nos 4 campos nativos com os seguintes rótulos:
- Para o primeiro campo nativo
endereço
- Para o segundo campo nativo
numero
- Para o terceiro campo nativo
complemento
- Para o quarto campo nativo
bairro
Para o retorno dos dados do endereço através do CEP
É feito requisição ao serviço http://republicavirtual.com.br
Se não houver retorno é feito requisição ao método "consultaCEP" do Correios
No Magento o atributo "taxvat" é geralmente usado para armazenar documentos como CPF/CNPJ
Nosso módulo faz o uso desse atributo para os formularios de registros !
**
Deve ser editado o arquivo CSS do template adicionando os seguintes itens
#li-billing-country_id { display:none }
#li-shipping-country_id { display:none }
**
Vemos que pelo módulo da MOZG é disponibilizado o seguinte arquivo, que se encontra vazio
/skin/frontend/base/default/css/mozg_base/style.css
**
Para o template RWD, deve ser criado o seguinte arquivo, com devido conteudo
/skin/frontend/rwd/default/css/mozg_base/style.css
**
Para o template PORTO, deve ser criado o seguinte arquivo, com devido conteudo
/skin/frontend/smartwave/porto/css/mozg_base/style.css
**
E assim sucessivamente
**
Pode ser utilizado qualquer módulo de terceiros para a criação de atributos de clientes
Caso queira utilize esse que está nessa lista como 1 dos mais relevantes nesse quesito
https://www.magentocommerce.com/magento-connect/manage-customer-attributes-1.html
composer require connect20/clarion_customerattribute
No uso do módulo CustomerAttribute
Podemos acessar o recurso pelo menu no backend do Magento: Clientes -> Gerenciar atributos
Tenha cautela no uso desse recurso
Recomendo o uso apenas para a criação de novos atributos
Como os módulos de gerenciamento de atributos "free" não oferece de forma gratuita o recurso de salvar os atributos no /checkout/ o nosso módulo contem recurso para essa necessidade
Para aplicar o suporte do novo atributo ao formulário
Deve ser inserido no formulário o campo tendo o mesmo identificador usado na criação do atributo
Para a exibição de algum atributo contendo algum tipo de condição sempre será necessário escrever a devida programação, nessa necessidade me informe sua necessidade
Deve ser ativado o Debug nativo do Magento a fim de ser exibido o caminho do arquivo phtml
Caso tenha o módulo CustomerAttribute, edite na configuração do módulo para desativar, pois esse módulo aplicado o suporte aos formulários
Nunca devemos editar o arquivo disponibilizado pelo módulo, pois quando houver uma atualização o mesmo será sobrescrito
Devemos criar a mesma estrutura de diretório para o nosso template
Você deve levar em consideração o caminho exibido no debug do seu projeto
Como o debug ativo em meu projeto exibiu o seguinte caminho
frontend/base/default/template/mozg_customer/customer/form/register.phtml
Nessa pasta temos o arquivo modelo que iremos usar como base
E o template nativo está localizado em
/app/design/frontend/rwd/default/template
Então devo ter a seguinte estrutura
/app/design/frontend/rwd/default/template/mozg_customer/customer/form/register.phtml
Deve ser ativado o Debug nativo do Magento a fim de ser exibido o caminho do arquivo phtml
Caso tenha o módulo CustomerAttribute, edite na configuração do módulo para desativar, pois esse módulo aplicado o suporte aos formulários
Nunca devemos editar o arquivo disponibilizado pelo módulo, pois quando houver uma atualização o mesmo será sobreescrevido
Devemos criar a mesma estrutura de diretório para o nosso template
Você deve levar em consideração o caminho exibido no debug do seu projeto
Como o debug ativo em meu projeto exibiu o seguinte caminho
frontend/base/default/template/mozg_customer/customer/form/edit.phtml
Nessa pasta temos o arquivo modelo que iremos usar como base
E o template nativo está localizado em
/app/design/frontend/rwd/default/template
Então devo ter a seguinte estrutura
/app/design/frontend/rwd/default/template/mozg_customer/customer/form/edit.phtml
Deve ser ativado o Debug nativo do Magento a fim de ser exibido o caminho do arquivo phtml
Caso tenha o módulo CustomerAttribute, edite na configuração do módulo para desativar, pois esse módulo aplicado o suporte aos formulários
Nunca devemos editar o arquivo disponibilizado pelo módulo, pois quando houver uma atualização o mesmo será sobreescrevido
Devemos criar a mesma estrutura de diretório para o nosso template
Você deve levar em consideração o caminho exibido no debug do seu projeto
Como o debug ativo em meu projeto exibiu o seguinte caminho
frontend/base/default/template/mozg_customer/persistent/checkout/onepage/billing.phtml
Nessa pasta temos o arquivo modelo que iremos usar como base
E o template nativo está localizado em
/app/design/frontend/rwd/default/template
Então devo ter a seguinte estrutura
/app/design/frontend/rwd/default/template/mozg_customer/persistent/checkout/onepage/billing.phtml
Como o debug ativo em meu projeto exibiu o seguinte caminho
frontend/base/default/template/mozg_customer/checkout/onepage/shipping.phtml
Nessa pasta temos o arquivo modelo que iremos usar como base
E o template nativo está localizado em
/app/design/frontend/rwd/default/template
Então devo ter a seguinte estrutura
/app/design/frontend/rwd/default/template/mozg_customer/checkout/onepage/shipping.phtml
Acesse
https://github.com/mozgbrasil/magento-iwd-opc#mozgiwd_opc
Caso queira alterar a tradução de algum campo utilize a ferramenta nativa do Magento "tradução em linha" indo ao backend em:
STORES -> Configuration -> ADVANCED/Developer -> Translate Inline
Cada módulo tem o seu arquivo de tradução com a mesma nomenclatura do módulo
Os arquivos de tradução para português do Brasil no Magento é armazenado no diretório
/app/locale/pt_BR/
Recomendo não editar os arquivos nesse diretório pois em uma nova atualização de módulo esse arquivo deve ser atualizado com as informações do módulo
Na necessidade de trocar algum item
Edite o arquivo translate.csv presente no diretório do seu template para ser exibido um novo resultado
/app/design/frontend/default/default/locale/pt_BR/translate.csv
Caso não exista a estrutura "/locale/pt_BR/translate.csv" em seu template apenas crie o arquivo nessa estrutura de diretório
Obs.
No Windows ou Mac sugiro usar o programa UltraEdit para edição do arquivo, dessa forma será mantido a codificação do arquivo em UTF-8
Informo que tem alguns item no pacote de tradução do MarioSam que está equivocado em
/app/locale/pt_BR/Mage_Api2.csv:"Company","Profissão"
/app/locale/pt_BR/Mage_Customer.csv:"Company","Profissão"
/app/locale/pt_BR/Mage_Checkout.csv:"Company","Profissão"
Edite os arquivos e atualize "Profissão" para "Empresa"
O nosso módulo contem a separação dos dados de endereço
Mas o armazenamento é feito no padrão nativo do Magento
Armazenando da seguinte forma
Para o atributo de endereço de clientes
"street_1" = logradouro com número e/ou complemento
"street_2" = Bairro
Quando utilizado o banco de dados demonstrativo ou "sample_data"
Vemos preenchido para o campo "street_1"
10441 Jefferson Blvd, Suite 200
Representando o número o logradouro e nesse caso também o complemento, ambas informações armazenada no atributo "street_1"
Eu não recomendo o procedimento que seria separar o número do endereço para o atributo "street_2" pois pode gerar problemas de formatação e em integrações
Equipe Mozg
🐈