Reviewed & tested by the community
Project:
Commerce Correios
Version:
7.x-1.x-dev
Component:
Code
Priority:
Normal
Category:
Feature request
Assigned:
Unassigned
Reporter:
Created:
14 Dec 2011 at 17:47 UTC
Updated:
4 Oct 2013 at 21:20 UTC
Jump to comment: Most recent file
Comments
Comment #0.0
brunorios1 commentedadded example
Comment #1
recidive commentedYes this is possible, there's a field for it in the data returned from Correios webservices:
Resultado.Servicos.cServico[x].PrazoEntrega
Comment #2
Byfred commentedBoa tarde, Recidive,
seria possível que você desenvolvesse esse patch?
Sou programador PHP mas não conheço a API de módulos do Drupal. Olhando o código identifiquei que a variável $rate->PrazoEntrega possui o valor que buscamos, mas não sei exatamente como exibi-la no formulário de escolha da forma de entrega.
Imagino que para você, como desenvolvedor do módulo, não seja algo muito difícil de implementar
Comment #3
pedrorocha commentedO módulo Commerce Shipping não nos dá essa possibilidade atualmente, infelizmente, só nos permitindo colocar um título e o preço. Criei uma issue lá até, por causa disso: http://drupal.org/node/1992734
Comment #4
barrapontoExiste um contexto compartilhado entre o rate callback e a geração dos options displays: o objeto $order. O
comerce_correios_rate()(o rate callback pros shipping services definidos no commerce_correios) retorna um array que é usado pra criar uma entidade do tipo line_item que é adicionada no$order['shipping_rates']. Esse array, além dos camposamountecurrency_code, tem um campodata, que era definido como um array vazio. Eu aproveitei esse array pra passar o$rate->PrazoEntrega.Já no
commerce_shipping_service_rate_options, função que retorna as opções pro fomulário de serviços de entrega durante o checkout (que eu descobri graças ao comentário do @pedrorocha na issue #1992734: Customized display_title for shipping services), tem uma chamada paradrupal_alter('commerce_shipping_service_rate_options', $options, $order). O que significa que eu posso alterar os textos das opções via um hook:hook_commerce_shipping_service_rate_options_alter.Esse hook recebe o objeto
$order, e nele estão disponíveis os line_item de cada opção. A partir daí, é só manipular a string (com umformat_pluralpra manter uma consistência no texto).Comment #5
barrapontoUm problema desta abordagem, de que eu reclamo em #1992734-2: Customized display_title for shipping services, é que o texto da opção já vem todo agregado, como uma string. Meu patch assume que o separador é
:porque ele é hardcoded pelo commerce_correios. Assumindo que isso pode (e deve) mudar tanto no commerce_shipping quanto no commerce_correios, o ideal seria receber dados pra juntar do jeito que quisermos. Pra isso o ideal é usar ohook_commerce_shipping_line_item_new_alterque recebe os dados separadinhos. Mas um bug no commerce_shipping impede de aproveitar as mudanças nesses dados, e eu propus um patch no #1992734: Customized display_title for shipping services para corrigir exatamente isso.Portanto, ESTE PATCH DEPENDE DO PATCH DISPONIVEL EM #1992734-3: Customized display_title for shipping services.
Mas o patch anterior funciona perfeitamente (e com melhor performance, acredito) sem modificar o commerce_shipping.
Comment #6
Byfred commentedTestado e aprovado.
Comment #7
barraponto@Byfred você testou o patch #5 né?
Eu acho que é o melhor mesmo, mas precisamos commitar o patch no commerce_shipping primeiro.
Se você ou o @pedrorocha puderem revisar e marcar como RTBC ajuda bastante.
É uma linha só, usando uma função que foi criada pelo autor original praticamente praquele caso.
Por favor: #1992734: Customized display_title for shipping services
Comment #8
barrapontoops, não queria tirar do RTBC
Comment #9
brunorios1 commentedsó pra constar que o patch no commerce_shipping foi commitado.
abraço.
Comment #10
brunorios1 commentedEstou testando usar essa funcionalidade juntamente com o módulo commerce_free_shipping para dar frete gratis por pac nas compras acima de determinado valor.Ao usar os dois módulos em conjunto, o pac fica gratuito mas o prazo de entrega não é exibido, e aparece o seguinte erro:O problema é aqui ou no commerce_free_shipping?UPDATE: Isso foi corrigido no módulo Commerce Free Shipping.
Comment #10.0
brunorios1 commentedcorrections