Multi-frete com cotação para retira em loja
Nesta seção iremos abordar como utilizar o Multi-frete combinado com cotação para todas as lojas com retira em loja.
Esse recurso só deve ser utilizado por lojas em construção!!
Se você está trabalhando em uma loja que já está em produção e precisa utilizar o recurso de Multi-frete, entre em contato com o Suporte Wake solicitando ajuda.
Cotação para todas as lojas de retirada com Multi-frete:
Esta funcionalidade expande as opções de retirada, mostrando todas as lojas físicas disponíveis que podem atender a um pacote de produtos, independentemente do CD priorizado para aquele pacote.
Pré-requisitos
Para habilitar esta funcionalidade, ambas as configurações a seguir devem estar ativas, e podem ser encontradas em Fretes> Configurações :
-
Multi fretes nos produtos de CDs diferentes (Storefront)
-
Exibir todas as lojas físicas disponíveis para cotação
Como funciona
Quando as configurações estão ativas, o campo pickups
dentro de cada ShippingQuoteGroup
será populado.
shippingQuotes
: Contém as cotações padrão (entrega e/ou retirada) vinculadas ao CD principal do pacote. A opção de retirada neste campo refere-se à loja física associada ao CD priorizado para o pacote.pickups
: Contém todas as outras opções de retirada em CDs que atendem àquele grupo de produtos, mas que não são o CD principal do pacote.
Estrutura de PickupShippingQuote
(item do array pickups
):
type PickupShippingQuote {
deadline: Int!
deadlineInHours: Int
distributionCenter: DistributionCenter # O CD da loja de retirada
name: String
shippingQuoteId: Uuid!
value: Float!
}
Diferença na Seleção
Ao usar a funcionalidade de cotação para todas as lojas com Multi-frete, é importante saber que as opções de retirada em lojas (pickups
) exigem uma lógica de seleção diferente das cotações padrão (shippingQuotes
).
A diferença está na origem do distributionCenterId
. Para ficar mais claro, vamos comparar dois cenários:
Cenário 1: Selecionando uma cotação padrão (do array shippingQuotes
)
shippingQuotes
)shippingQuoteId
: Vem do item selecionado emshippingQuotes
.distributionCenterId
: Vem do objetodistributionCenter
no nível raiz do grupo.
Cenário 2: Selecionando uma retirada (do array pickups
)
pickups
)shippingQuoteId
: Vem do item selecionado empickups
.distributionCenterId
: Vem do objetodistributionCenter
dentro do item selecionado no arraypickups
.
Exemplo de Query com Comentários
O exemplo abaixo ilustra onde obter cada ID necessário para a seleção.
query CheckoutShippingChoice($checkoutId: Uuid!) {
shippingQuoteGroups(checkoutId: $checkoutId, useSelectedAddress: true) {
# Nível Raiz do Grupo
distributionCenter {
id # Para selecionar cotações de 'shippingQuotes', use este ID.
sellerName
}
shippingQuotes {
shippingQuoteId # Para selecionar, use este shippingQuoteId e o ID do CD acima.
name
type
value
}
# Opções de Retirada Adicionais
pickups {
# Para selecionar uma retirada daqui...
shippingQuoteId # ...use este shippingQuoteId.
name
value
distributionCenter {
id # ...e use este distributionCenterId, que está DENTRO do objeto de pickup.
sellerName
}
}
products {
productVariantId
}
}
}
A verificação das cotações selecionadas e a finalização da etapa seguem o mesmo fluxo descrito na documentação principal do Multi-frete. Você pode consultar os detalhes neste link.
Updated about 10 hours ago