Zerar Tabela de Clientes

Quando instalamos o Magento e iniciamos nossos testes é comum criarmos alguns clientes de testes para efetuar os pedidos e testar a navegabilidade do cliente logado.

Também pode acontecer de você realizar testes de importação/migração de clientes para sua loja.

E uma vez que você finaliza a bateria de testes, você quer zerar estas tabelas, limpar os registros e reiniciar os cadastros.

Solução de backend

Ao acessar o painel de controle do Magento, acessando:

Clientes -> Gerenciar Clientes

Podemos selecionar os clientes que desejamos excluir do sistema, inclusive selecionar todos eles.

Depois basta marcar no campo Ações a opção “Excluir“, e clicar em Enviar.

magento-imagem-tabelas-01

Com isso você consegue excluir os clientes do sistema, o problema aqui é que ele não reinicia as tabelas.

Então se você tinha 300 clientes cadastrados, depois que excluir estes clientes e limpar a base, o próximo cliente que você cadastrar vai ter o ID=301.

Se isso não é problema pra você, essa solução do sistema já serve.

A solução SQL

A solução em sql eu considero sempre mais agressiva.

Pois vai direto na fonte, e qualquer erro pode causar sérios danos ao sistema.

Aparentemente as tabelas referentes ao controle de clientes não sofreram grandes modificações nas atualizações do Magento, por isso o código abaixo vai funcionar em qualquer versão do sistema:

SET FOREIGN_KEY_CHECKS=0;
TRUNCATE `customer_address_entity`;
TRUNCATE `customer_address_entity_datetime`;
TRUNCATE `customer_address_entity_decimal`;
TRUNCATE `customer_address_entity_int`;
TRUNCATE `customer_address_entity_text`;
TRUNCATE `customer_address_entity_varchar`;
TRUNCATE `customer_entity`;
TRUNCATE `customer_entity_datetime`;
TRUNCATE `customer_entity_decimal`;
TRUNCATE `customer_entity_int`;
TRUNCATE `customer_entity_text`;
TRUNCATE `customer_entity_varchar`;
ALTER TABLE `customer_address_entity` AUTO_INCREMENT=1;
ALTER TABLE `customer_address_entity_datetime` AUTO_INCREMENT=1;
ALTER TABLE `customer_address_entity_decimal` AUTO_INCREMENT=1;
ALTER TABLE `customer_address_entity_int` AUTO_INCREMENT=1;
ALTER TABLE `customer_address_entity_text` AUTO_INCREMENT=1;
ALTER TABLE `customer_address_entity_varchar` AUTO_INCREMENT=1;
ALTER TABLE `customer_entity` AUTO_INCREMENT=1;
ALTER TABLE `customer_entity_datetime` AUTO_INCREMENT=1;
ALTER TABLE `customer_entity_decimal` AUTO_INCREMENT=1;
ALTER TABLE `customer_entity_int` AUTO_INCREMENT=1;
ALTER TABLE `customer_entity_text` AUTO_INCREMENT=1;
ALTER TABLE `customer_entity_varchar` AUTO_INCREMENT=1;
SET FOREIGN_KEY_CHECKS=1;

Nessa solução não podemos usar filtros (cláusula where), então TODOS os clientes serão excluídos das tabelas pelo comando TRUNCATE.

E na sequência utilizamos o comando ALTER TABLE para reiniciar a contagem dos ID’s nos cadastros – zerando assim as tabelas de clientes.

Outras informações

Se você inspecionar as tabelas do sistema, provavelmente vai encontrar outras tabelas referentes aos clientes que não estão em nosso script, como:

customer_eav_attribute
customer_eav_attribute_website
customer_form_attribute
customer_group

Essas tabelas não devem ser zeradas, pois possuem informações de configuração para o sistema.

Para executar o script acima você deve abrir um SGBD como Sequel Pro ou phpMyAdmin, colar o código no campo Query (ou SQL), e mandar executar.

magento-imagem-tabelas-02

É recomendável reindexar os índices das tabelas após executar scripts SQL direto no banco de dados.

Caso deseje fazer o mesmo com as tabelas de vendas, leia o post Zerar Tabela de Vendas.

Em caso de dúvidas, use o fórum da Escola Magento.

Sucesso!

2017-01-24T20:26:16+00:00

RECEBA DICAS VALIOSAS NO SEU EMAIL

x