Magento

Criando um cliente no Magento programaticamente

Código necessário para criar um cliente no Magento programaticamente, cadastrando também os endereços de entrega e cobrança.

Vamos ao código!

Primeiro passo, vamos carregar o model dos clientes “customers”.

$customer = Mage::getModel("customer/customer");

Setando os principais atributos.

$customer->setWebsiteId($websiteId)
 ->setStore($store)
 ->setGroupId(1)
 ->setFirstname($first_name)
 ->setLastname($last_name)
 ->setEmail($email)
 ->setDob($dob)
 ->setPassword($password);

Detalhamento sobre os campos

GrouId: Grupo do usuário, número 1 é grupo “comum”.

Dob: Data de nascimento (formato: yyyy-mm-dd)

Website: Relaciona o cadastro com um website.

Store: Relaciona o cadastro com uma loja.

Você consegue saber qual é a loja / website que está sendo utilizando usando:

$websiteId = Mage::app()->getWebsite()->getId();

$storeId = Mage::app()->getStore();

Os demais campos são auto-explicativos.

Caso você tenha adicionado (ou exista) um campo personalizado no cadastro do cliente, basta utilizar “setNomedocampo()”, sendo o “set” minusculo e a primeira letra do campo maiúscula.

Salvando o cliente

Para salvar o cadastro utilize o código abaixo:

$customer->save();

Para verificar se o e-mail do cliente já está cadastrado utilize

$websiteId = Mage::app()->getWebsite()->getId();

$customer = Mage::getModel("customer/customer");

$customer->setWebsiteId($websiteId);
$customer->loadByEmail($email);

if ($customer->getId()) {
   echo "Email já cadastrado!";
}

É importante fazer essa verificação, evitando mensagens de erro genéricas na sua integração.

Cadastrando um endereço

Primeiro, carregamos o model do endereço “address”.

$address = Mage::getModel("customer/address");

Definindo os principais campos.

$address->setCustomerId($customer->getId())
        ->setFirstname($customer->getFirstname())
        ->setLastname($customer->getLastname())
        ->setCountryId('BR')
 ->setRegionId('50')
        ->setPostcode('31000')
        ->setCity('São Paulo')
        ->setTelephone('00 0000-0000')
        ->setStreet('Rua');

CountryId: ID do pais, no nosso caso “BR”.

RegionId: ID do estado.

Use código abaixo para descobrir qual é o RegionId de um estado pelo sigla:

 $regionCollection = Mage::getModel('directory/region_api')->items("BR");      
 $UF = "SP";
     
 foreach($regionCollection as $region) {  
   if( $region['code'] == $UF ){
   $regionId = $region['region_id'];
   break;
   }
 } 
 
 var_dump(  $regionId  );

Código acima é só uma maneira de fazer isso, aconselho a utilização do array_column ou array_column (PHP 5.5).

Endereço padrão de cobrança e entrega

Para definir este endereço como padrão para entrega, utilize:

$address->setIsDefaultShipping('1');

Como endereço padrão de cobrança:

$address->setIsDefaultBilling('1');

Adicionar a cadastros de endereços do cliente:

$address->setSaveInAddressBook('1');  

Salvando o endereço.

Para salvar o endereço utilize:

 $address->save();

 

Resumo
Nome do Artigo
Cadastrando cliente no Magento
Descrição
Post ensinando a cadastrar um cliente no Magento pelo código (programaticamente)
Autor
Editor
Roger Mauricio Takemiya
Logo do Editor

Post Recentes

CNPJ alfanumérico Magento 2: módulo grátis com máscara e validação

Módulo gratuito Roger_CnpjAlfanumerico que aplica máscara e validação do novo CNPJ alfanumérico no checkout e formulários do Magento 2 e…

4 dias atrás

CNPJ alfanumérico no WooCommerce: plugin grátis de máscara e validação

A partir de 06/07/2026 a Receita passa a emitir CNPJ alfanumérico. Conheça o plugin grátis que aplica máscara e validação…

4 dias atrás

Como remover um modulo do Magento 2

Para remover um módulo do Magento 2, siga os passos abaixo: 1. Desabilitar o módulo Primeiro, desabilite o módulo usando…

1 ano atrás

Criar um memorando de crédito (cancelar) invoice no Magento 2

Para cancelar 100% do pedido e criar um crédito para todos os itens através da API REST do Magento 2,…

2 anos atrás

Consultando no banco quantidade disponivel para Venda (estoque)

No Magento 2, a quantidade "reservada" na "Salable Quantity" é gerenciada principalmente pelos módulos MSI (Multi-Source Inventory). A "Salable Quantity"…

2 anos atrás

Admin do Magento 2 não acessa

Como corrigir o erro ao acessar o Admin do Magento 2. Mesmo após fazer o login, permanece na tela de…

2 anos atrás