Página 1 de 1

[Resolvido] Gerador Etiquetas correios - adicionar campos personalizados

Enviado: 29 Dez 2018, 11:48
por smfsoft
Boa tarde a todos, estou fazendo adaptações em um modulo gratuito que gera etiquetas do correios, porém o módulo não mostra complemento nem o número do endereço. O que pra mim o torna inutil.
Os dados utilizados no modulo, vem direto do banco por meio de consulta na tabela 'order'.
e os valores que preciso declarar estão na coluna 'shipping_custom_filed'.
exemplo de valor armazenado = {"1":"66","5":"casa"}, onde 1 é o id do campo personalizado 'Número', e 5 é o id do campo personalizado 'Complemento'
Minha dificuldade atual é fazer uma consulta SQL pra pegar o valor '66' (número do endereço de entrega), e se for o caso uma segunda consulta para pegar o 'casa' que refere-se ao complemento.
Não estou conseguindo encontrar um meio de capturar estes valores com o mysql. tentei 'substring_index' mas não consegui acertar. sempre vem as aspas e outros valores.

Alguem ai mais entendido de mysql pra dar uma luz?

Re: Gerador Etiquetas correios - adicionar campos personalizados

Enviado: 30 Dez 2018, 11:34
por veteranodf
Tente pelo método abaixo pois esse campo deve esta sendo passado como array

Resgata o número do endereço:
Código: Selecionar todos
$order_info['shipping_custom_field']['1']
Resgata o complemento do endereço
Código: Selecionar todos
$order_info['shipping_custom_field']['5']
Agora caso esse campo estiver sendo passado exatamente como informou '{"1":"66","5":"casa"}' deve fazer o seguinte;
Código: Selecionar todos
$dados_complementares = json_decode($order_info['shipping_custom_field'], true);  // Converte para array
$numero = $dados_complementares['1']; //Resgata o número do endereço
$complemento  = $dados_complementares['5']; //Resgata o complemento do endereço

Re: Gerador Etiquetas correios - adicionar campos personalizados

Enviado: 30 Dez 2018, 18:43
por smfsoft
Obrigado pela Veterano,
Mas como o arquivo que recebe o request com o id do pedido, não possui as variaveis do opencart, e sim consulta direto no banco, acabei resolvendo alterando a consulta SQL mesmo. Como segue abaixo funcionou e consegui inserir os dados que faltava. É gambiarra mesmo, até eu encontrar uma extensão que gere esta etiqueta melhor.
adicionei no SELECT o Seguinte:
SUBSTRING_INDEX(SUBSTRING_INDEX(shipping_custom_field,'\"', -6),'\"', 1) AS numero, SUBSTRING_INDEX(SUBSTRING_INDEX(shipping_custom_field,'\"', -2),'\"', 1) AS complemento
e desta forma eu pego os valores de número do endereço e o complemento, nos aliases declarados.

De qualquer forma agradeço a pela sua dica, e vou copiar seu código por que pode ser que eu use de outra forma em outro momento.

Re: Gerador Etiquetas correios - adicionar campos personalizados

Enviado: 30 Dez 2018, 19:51
por veteranodf
Que bom que solucionou dessa forma, mais você poderia ter utilizado a segunda opção que te informei "Agora caso esse campo...", para tal deveria apenas alterar o nome da variável "$order_info" pela que esta utilizando na query de consulta do banco de dados que traz os dados do cliente;

Re: [Resolvido] Gerador Etiquetas correios - adicionar campos personalizados

Enviado: 02 Out 2019, 01:48
por cmoreirag
smfsoft , como vai?

Poderia me passar essa solução na integra!

Grato!

Re: [Resolvido] Gerador Etiquetas correios - adicionar campos personalizados

Enviado: 07 Mar 2020, 15:40
por smfsoft
não tenho mais. acabei fazendo um update e depois comprei um modulo pago para gerar etiquetas de correio. Mas o cliente depois de um tempo cancelou o contrato e o site foi extinto, não tenho mais o código utilizado.

Re: [Resolvido] Gerador Etiquetas correios - adicionar campos personalizados

Enviado: 25 Ago 2020, 07:24
por brunojonas
olá à todos. Estou com o mesmo problema. Já tem 1 ano que tento resolver e nao consigo. Uso a versão 3.0.3.2.

Alguém sabe se existe um módulo que faça isso?


Obrigado