, (*1)
Mozg\Customer
Sinopse
Personalização dos formulários de clientes, (*2)
Demonstração
, (*3)
Motivação
Atender o mercado de módulos para Magento oferecendo melhorias e um excelente suporte, (*4)
Suporte / Dúvidas
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, (*5)
Preço
Clique aqui, (*6)
Recursos
-
Montagem de formulário personalizado, (*7)
-
Suporte a máscaras, (*8)
-
Suporte a validadores, (*9)
-
Preenchimento do endereço pelo CEP, (*10)
-
Checagem de documento "CPF" ou "CNPJ" impedindo registro duplicado, (*11)
Suporte / Dúvidas
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, (*12)
Preço
Clique aqui, (*13)
Testando na Heroku
Gostaria de apresentar o aplicativo que disponibilizei para a plataforma Heroku, (*14)
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, (*15)
https://github.com/mozgbrasil/heroku-magento#descrição, (*16)
Instalação - Atualização - Desinstalação - Desativação
--, (*17)
Sugiro "printar" as telas com todos os procedimentos executados, (*18)
Envie para nós as imagens das telas na eventualidade de quaisquer dificuldades, (*19)
--, (*20)
Este módulo destina-se a ser instalado usando o Composer, (*21)
Execute o seguinte comando no terminal, para visualizar a existencia do Composer e sua versão, (*22)
composer --version
Caso não tenha o Composer em seu ambiente, sugiro ler o seguinte artigo Clique aqui, (*23)
--, (*24)
É necessário que o servidor tenha o suporte a extensão ionCube PHP Loader, (*25)
Para visualizar a existência da extensão nesse ambiente denominado PHP CLI, execute o seguinte comando no terminal, (*26)
php -v
Para visualizar se essa extensão está ativa em seu servidor no ambiente denominado PHP WEB, (*27)
Certique se da presença do arquivo phpinfo.php na raiz do seu projeto, (*28)
<?php phpinfo(); ?>
Caso não exista o arquivo phpinfo.php na raiz do projeto Magento, crie o mesmo adicionado o conteúdo acima, (*29)
Acesse o arquivo pelo browser, (*30)
Em seguida pesquise pelo termo "ionCube PHP Loader", (*31)
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, (*32)
Caso tenha a permissão e queira ativar a extensão, Clique aqui, (*33)
Em "Loader Downloads API", efetue download do pacote compatível com o seu servidor, (*34)
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, (*35)
Clique aqui para ver os processos executados, (*36)
--, (*37)
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, (*38)
https://raw.githubusercontent.com/mozgbrasil/heroku-magento/master/phpinfo-ioncube-encoder10-x86-64-php_56.php, (*39)
--, (*40)
Para utilizar o(s) módulo(s) da MOZG é necessário aceitar o Acordo de licença do usuário final, (*41)
--, (*42)
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, (*43)
--, (*44)
Sugiro efetuar backup da plataforma Magento e do banco de dados, (*45)
--, (*46)
Antes de efetuar qualquer atualização no Magento sempre mantenha o Compiler e o Cache desativado, (*47)
--, (*48)
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, (*49)
{
"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, (*50)
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_56:dev-master
Você pode verificar se o módulo está instalado, indo ao backend em:, (*51)
STORES -> Configuration -> ADVANCED/Advanced -> Disable Modules Output
--, (*52)
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, (*53)
composer update
Na ocorrência de erro, renomeie a pasta /vendor/mozgbrasil e execute novamente, (*54)
Para checar a data do módulo execute o seguinte comando, (*55)
grep -ri --include=*.json 'time": "' ./vendor/mozgbrasil
--, (*56)
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_56
--, (*57)
Para desativar o módulo
-
Antes de efetuar qualquer processo que envolva atualização sobre o Magento é necessário manter o Compiler e Cache desativado, (*58)
-
Caso queira desativar os módulos da MOZG renomeie a seguinte pasta app/code/local/Mozg, (*59)
A desativação do módulo pode ser usado para detectar se determinada ocorrência tem relação com o módulo, (*60)
--, (*61)
Como configurar o método
Para configurar o método, acesse no backend em:, (*62)
∞ MOZG ∞ -> Cadastro de Clientes -> Cadastro de Clientes - (powered by MOZG)
Você terá os campos a seguir, (*63)
• Ativar campos de endereço em /customer/account/create/
Exibe os devidos campos relativo ao endereço, (*64)
Ao ativar o recurso deve ser utilizado o template presente no módulo, podemos visualizar que no template temos:, (*65)
-
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", (*66)
-
Validador aos campos: zip, street_1, cpf, cnpj, taxvat, (*67)
-
Preenchimento do endereço pelo CEP, (*68)
-
Preenchimento automático para testes, (*69)
-
Reordenação de campos, (*70)
• Armazenamento do endereço
O procedimento de separar o número do endereço do campo "street1" não é uma prática nativa do Magento, (*71)
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, (*72)
Vemos preenchido para o campo "street1" da seguinte forma, (*73)
10441 Jefferson Blvd, Suite 200
Representando o logradouro o numero e nesse caso também o complemento, ambas informações armazenada no atributo "street1", (*74)
Na forma nativa do Magento, (*75)
É feito o armazenamento da seguinte forma, (*76)
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, (*77)
Pode ser usado o recurso presente no módulo de usar a opção "armazenamento separado", (*78)
Nesse caso o nosso módulo deve ler os armazenamentos da seguinte forma, (*79)
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", (*80)
É feito o armazenamento da seguinte forma, (*81)
logradouro = getStreet(1)
numero = getStreet(2)
complemento/referencia = getStreet(3)
bairro = getStreet(4)
Conforme, (*82)
https://github.com/deivisonarthur/OSC-Magento-Brasil-6-Pro#tutoriais-e-observações, (*83)
• A opção armazenamento padrão
Armazena nos 2 campos nativos com os seguintes rótulos:, (*84)
- Para o primeiro campo nativo *
endereço, numero, complemento, (*85)
-
Embora seja criado exibido 3 campos fictícios o armazenamento é feito no primeiro campo nativo de endereço no Magento, (*86)
-
Para o segundo campo nativo, (*87)
bairro, (*88)
• A opção armazenamento separado
No uso dessa opção, acesse no backend em:, (*89)
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, (*90)
Armazena nos 4 campos nativos com os seguintes rótulos:, (*91)
- Para o primeiro campo nativo
endereço, (*92)
- Para o segundo campo nativo
numero, (*93)
- Para o terceiro campo nativo
complemento, (*94)
- Para o quarto campo nativo
bairro, (*95)
Perguntas mais frequentes "FAQ"
Como funciona o preenchimento do endereço pelo CEP
Para o retorno dos dados do endereço através do CEP, (*96)
É feito requisição ao serviço http://republicavirtual.com.br, (*97)
Se não houver retorno é feito requisição ao método "consultaCEP" do Correios, (*98)
No Magento o atributo "taxvat" é geralmente usado para armazenar documentos como CPF/CNPJ, (*99)
Nosso módulo faz o uso desse atributo para os formularios de registros !, (*100)
Como ocultar o campo "País"
**, (*101)
Deve ser editado o arquivo CSS do template adicionando os seguintes itens, (*102)
#li-billing-country_id { display:none }
#li-shipping-country_id { display:none }
**, (*103)
Vemos que pelo módulo da MOZG é disponibilizado o seguinte arquivo, que se encontra vazio, (*104)
/skin/frontend/base/default/css/mozg_base/style.css, (*105)
**, (*106)
Para o template RWD, deve ser criado o seguinte arquivo, com devido conteudo, (*107)
/skin/frontend/rwd/default/css/mozg_base/style.css, (*108)
**, (*109)
Para o template PORTO, deve ser criado o seguinte arquivo, com devido conteudo, (*110)
/skin/frontend/smartwave/porto/css/mozg_base/style.css, (*111)
**, (*112)
E assim sucessivamente, (*113)
**, (*114)
1), (*115)
Pode ser utilizado qualquer módulo de terceiros para a criação de atributos de clientes, (*116)
https://www.magentocommerce.com/magento-connect/catalogsearch/result/?id=&s=7&pl=0&eb=0&hp=0&q=customer+attribute&t=1&p=1, (*117)
Caso queira utilize esse que está nessa lista como 1 dos mais relevantes nesse quesito, (*118)
https://www.magentocommerce.com/magento-connect/manage-customer-attributes-1.html, (*119)
composer require connect20/clarion_customerattribute
No uso do módulo CustomerAttribute, (*120)
Podemos acessar o recurso pelo menu no backend do Magento: Clientes -> Gerenciar atributos, (*121)
Tenha cautela no uso desse recurso, (*122)
Recomendo o uso apenas para a criação de novos atributos, (*123)
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, (*124)
2), (*125)
Para aplicar o suporte do novo atributo ao formulário, (*126)
Deve ser inserido no formulário o campo tendo o mesmo identificador usado na criação do atributo, (*127)
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, (*128)
, (*129)
Deve ser ativado o Debug nativo do Magento a fim de ser exibido o caminho do arquivo phtml, (*130)
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, (*131)
Nunca devemos editar o arquivo disponibilizado pelo módulo, pois quando houver uma atualização o mesmo será sobrescrito, (*132)
Devemos criar a mesma estrutura de diretório para o nosso template, (*133)
Você deve levar em consideração o caminho exibido no debug do seu projeto, (*134)
Como o debug ativo em meu projeto exibiu o seguinte caminho, (*135)
frontend/base/default/template/mozg_customer/customer/form/register.phtml, (*136)
Nessa pasta temos o arquivo modelo que iremos usar como base, (*137)
E o template nativo está localizado em, (*138)
/app/design/frontend/rwd/default/template, (*139)
Então devo ter a seguinte estrutura, (*140)
/app/design/frontend/rwd/default/template/mozg_customer/customer/form/register.phtml, (*141)
Deve ser ativado o Debug nativo do Magento a fim de ser exibido o caminho do arquivo phtml, (*142)
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, (*143)
Nunca devemos editar o arquivo disponibilizado pelo módulo, pois quando houver uma atualização o mesmo será sobreescrevido, (*144)
Devemos criar a mesma estrutura de diretório para o nosso template, (*145)
Você deve levar em consideração o caminho exibido no debug do seu projeto, (*146)
Como o debug ativo em meu projeto exibiu o seguinte caminho, (*147)
frontend/base/default/template/mozg_customer/customer/form/edit.phtml, (*148)
Nessa pasta temos o arquivo modelo que iremos usar como base, (*149)
E o template nativo está localizado em, (*150)
/app/design/frontend/rwd/default/template, (*151)
Então devo ter a seguinte estrutura, (*152)
/app/design/frontend/rwd/default/template/mozg_customer/customer/form/edit.phtml, (*153)
Deve ser ativado o Debug nativo do Magento a fim de ser exibido o caminho do arquivo phtml, (*154)
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, (*155)
Nunca devemos editar o arquivo disponibilizado pelo módulo, pois quando houver uma atualização o mesmo será sobreescrevido, (*156)
Devemos criar a mesma estrutura de diretório para o nosso template, (*157)
Você deve levar em consideração o caminho exibido no debug do seu projeto, (*158)
1., (*159)
Como o debug ativo em meu projeto exibiu o seguinte caminho, (*160)
frontend/base/default/template/mozg_customer/persistent/checkout/onepage/billing.phtml, (*161)
Nessa pasta temos o arquivo modelo que iremos usar como base, (*162)
E o template nativo está localizado em, (*163)
/app/design/frontend/rwd/default/template, (*164)
Então devo ter a seguinte estrutura, (*165)
/app/design/frontend/rwd/default/template/mozg_customer/persistent/checkout/onepage/billing.phtml, (*166)
2., (*167)
Como o debug ativo em meu projeto exibiu o seguinte caminho, (*168)
frontend/base/default/template/mozg_customer/checkout/onepage/shipping.phtml, (*169)
Nessa pasta temos o arquivo modelo que iremos usar como base, (*170)
E o template nativo está localizado em, (*171)
/app/design/frontend/rwd/default/template, (*172)
Então devo ter a seguinte estrutura, (*173)
/app/design/frontend/rwd/default/template/mozg_customer/checkout/onepage/shipping.phtml, (*174)
Como instalar o módulo de compra em 1 passo
Acesse, (*175)
https://github.com/mozgbrasil/magento-iwd-opc#mozgiwd_opc, (*176)
Como alterar a tradução de algum campo ?
Caso queira alterar a tradução de algum campo utilize a ferramenta nativa do Magento "tradução em linha" indo ao backend em:, (*177)
STORES -> Configuration -> ADVANCED/Developer -> Translate Inline
Modificando a tradução do módulo para o template
Cada módulo tem o seu arquivo de tradução com a mesma nomenclatura do módulo, (*178)
Os arquivos de tradução para português do Brasil no Magento é armazenado no diretório, (*179)
/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, (*180)
Na necessidade de trocar algum item, (*181)
Edite o arquivo translate.csv presente no diretório do seu template para ser exibido um novo resultado, (*182)
/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, (*183)
Obs., (*184)
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, (*185)
Sobre o campo "Profissão"
Informo que tem alguns item no pacote de tradução do MarioSam que está equivocado em, (*186)
/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", (*187)
Edite os arquivos e atualize "Profissão" para "Empresa", (*188)
Sobre separação e armazenamento dos dados de endereço
O nosso módulo contem a separação dos dados de endereço, (*189)
Mas o armazenamento é feito no padrão nativo do Magento, (*190)
Armazenando da seguinte forma, (*191)
Para o atributo de endereço de clientes, (*192)
"street_1" = logradouro com número e/ou complemento, (*193)
"street_2" = Bairro, (*194)
Quando utilizado o banco de dados demonstrativo ou "sample_data", (*195)
Vemos preenchido para o campo "street_1", (*196)
10441 Jefferson Blvd, Suite 200, (*197)
Representando o número o logradouro e nesse caso também o complemento, ambas informações armazenada no atributo "street_1", (*198)
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, (*199)
Contribuintes
Equipe Mozg, (*200)
License
Comercial License, (*201)
Badges
, (*202)
:cat2:, (*203)