Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

Suporte geral sobre problemas técnicos para OpenCart v2.x.
#71176
Olá pessoal,

Na minha loja 2.0.3.1 não existe os campos de número e complemento no cadastro co cliente, nesse caso eu criei através do admin na seção "Personalizar cadastro". Bem funciona perfeito na loja quando é pagamento direto em conta, o problema é quando o cliente paga pelo pagseguro lightbox que capta o endereço que o cliente cadastrou na loja e não capta esses dois campos por não ser nativo da loja e nesse caso a etiqueta para envio sai incompleta tendo que estar completando a caneta.

No script do módulo do pagseguro informa que não existe esses dois campos no Opencart e por isso não capta.

Alguém sabe dar uma dica de como alterar o script para captar esses dois campos? mesmo que tenha que ser feito a unha fora do admin.
Editado pela última vez por Smagicas em 02 Dez 2016, 12:24, em um total de 2 vezes.
#71177
Trecho do script do módulo do pagseguro lightbox:
Código: Selecionar todos
// Endereço para entrega		
			$paymentRequest->setShippingAddress(  
				Array(  
					'postalCode'=> preg_replace ("/[^0-9]/", '', $order_info['shipping_postcode']),
					'street' 	=> $order_info['shipping_address_1'],     
					'number' 	=> 'numero', // Não há este campo no OpenCart
					'complement'=> '', // Não há este campo no OpenCart
					'district' 	=> $order_info['shipping_address_2'],         
					'city' 		=> $order_info['shipping_city'],        
					'state' 	=> (isset($zone['code'])) ? $zone['code'] : '',       
					'country' 	=> $order_info['shipping_iso_code_3']
				)  
			);
		}
		else{
			$zone = $this->model_localisation_zone->getZone($order_info['payment_zone_id']);
			
			// Endereço para entrega		
			$paymentRequest->setShippingAddress(  
				Array(  
					'postalCode'=> preg_replace ("/[^0-9]/", '', $order_info['payment_postcode']),
					'street' 	=> $order_info['payment_address_1'],     
					'number' 	=> '', 
					'complement'=> '', 
					'district' 	=> $order_info['payment_address_2'],         
					'city' 		=> $order_info['payment_city'],        
					'state' 	=> (isset($zone['code'])) ? $zone['code'] : '',       
					'country' 	=> $order_info['payment_iso_code_3']
				)  
			);			
		}	   	
#71247
Amigo, isso é um problema!

Eu uso a versao 2.0.3.1 do OC, e uso o checkout transparente do pagseguro, que funciona perfeitamente, pra isso criei os campos número e CPF na opencart

Porém, na tela de checkout no endereço do cliente não aparece o número!!!! mas se o cliente editar o endereço ele encher o campo número, etc, só na tela de confirmação não aparece e nem nos emails da loja nem do cliente com o pedido também não aparece o número ;-(

Já instalei uma ocmod do valdeir pra resolver isso mas não funcionou

Não sei mais o que fazer ;-(
#71262
Utilize o código abaixo, tem que fazer uma modificação no código, onde tem ['numero'] deve substituir pelo ID do campo customizado, exemplo ['8'], para saber o ID acesse o menu Clientes > Personalizar cadastro > edite o campo em questão e veja o valor da query "custom_field_id" na URL do navegador;
Código: Selecionar todos
// Endereço para entrega      
            $paymentRequest->setShippingAddress(
                Array(
                    'postalCode'=> preg_replace ("/[^0-9]/", '', $order_info['shipping_postcode']),
                    'street'     => $order_info['shipping_address_1'],
                    'number'     => !empty($order_info['shipping_custom_field']['numero']) ? $order_info['shipping_custom_field']['numero'] : '',
                    'complement'=>  !empty($order_info['shipping_custom_field']['numero']) ? $order_info['shipping_custom_field']['numero'] : '',
                    'district'     => $order_info['shipping_address_2'],
                    'city'         => $order_info['shipping_city'],
                    'state'     => (isset($zone['code'])) ? $zone['code'] : '',
                    'country'     => $order_info['shipping_iso_code_3']
                )
            );
        }
        else{
            $zone = $this->model_localisation_zone->getZone($order_info['payment_zone_id']);
          
            // Endereço para entrega      
            $paymentRequest->setShippingAddress(
                Array(
                    'postalCode'=> preg_replace ("/[^0-9]/", '', $order_info['payment_postcode']),
                    'street'     => $order_info['payment_address_1'],
                    'number'     => !empty($order_info['payment_custom_field']['numero']) ? $order_info['payment_custom_field']['numero'] : '',
                    'complement'=> !empty($order_info['payment_custom_field']['numero']) ? $order_info['payment_custom_field']['numero'] : '',
                    'district'     => $order_info['payment_address_2'],
                    'city'         => $order_info['payment_city'],
                    'state'     => (isset($zone['code'])) ? $zone['code'] : '',
                    'country'     => $order_info['payment_iso_code_3']
                )
            );          
        }
#71617
veteranodf escreveu:Utilize o código abaixo, tem que fazer uma modificação no código, onde tem ['numero'] deve substituir pelo ID do campo customizado, exemplo ['8'], para saber o ID acesse o menu Clientes > Personalizar cadastro > edite o campo em questão e veja o valor da query "custom_field_id" na URL do navegador;
Código: Selecionar todos
// Endereço para entrega      
            $paymentRequest->setShippingAddress(
                Array(
                    'postalCode'=> preg_replace ("/[^0-9]/", '', $order_info['shipping_postcode']),
                    'street'     => $order_info['shipping_address_1'],
                    'number'     => !empty($order_info['shipping_custom_field']['numero']) ? $order_info['shipping_custom_field']['numero'] : '',
                    'complement'=>  !empty($order_info['shipping_custom_field']['numero']) ? $order_info['shipping_custom_field']['numero'] : '',
                    'district'     => $order_info['shipping_address_2'],
                    'city'         => $order_info['shipping_city'],
                    'state'     => (isset($zone['code'])) ? $zone['code'] : '',
                    'country'     => $order_info['shipping_iso_code_3']
                )
            );
        }
        else{
            $zone = $this->model_localisation_zone->getZone($order_info['payment_zone_id']);
          
            // Endereço para entrega      
            $paymentRequest->setShippingAddress(
                Array(
                    'postalCode'=> preg_replace ("/[^0-9]/", '', $order_info['payment_postcode']),
                    'street'     => $order_info['payment_address_1'],
                    'number'     => !empty($order_info['payment_custom_field']['numero']) ? $order_info['payment_custom_field']['numero'] : '',
                    'complement'=> !empty($order_info['payment_custom_field']['numero']) ? $order_info['payment_custom_field']['numero'] : '',
                    'district'     => $order_info['payment_address_2'],
                    'city'         => $order_info['payment_city'],
                    'state'     => (isset($zone['code'])) ? $zone['code'] : '',
                    'country'     => $order_info['payment_iso_code_3']
                )
            );          
        }
Qual é o arquivo que devo editar para corrigir amigo?

Lembrando que nos emails que sáo enviados tantos para a loja quanto para o compradot o endereco tambem aparece serm o número

Muito obrigado!!!