Este método irá realizar a consulta de todos os benefícios disponíveis para o cliente e realizar a aplicação automática dos mesmos.
A aplicação irá coletar os benefícios e promoções já aplicados no carrinho, incluindo:
basketDiscounts: Descontos aplicados ao carrinho.
deliveryDiscounts: Descontos aplicados à entrega.
basketPayments: Pagamentos vinculados a benefícios/cashbacks.
Isso irá ocorrer se existir uma Promoção Específica Informada
Caso um PromotionID seja informado na requisição:
- Remove os benefícios anteriores relacionados a essa promoção.
- Busca a promoção no repositório para validar se está ativa.
- Valida disponibilidade da promoção para garantir que ela pode ser aplicada.
- Verifica se a flag de atualização está ativa (necessário para permitir atualização via integração).
- Obtém os novos benefícios e os aplica ao pedido.
- Se der erro não aplica nada e mantém a promoção aplicada
Caso não haja um PromotionID na requisição:
- Obtém todos os benefícios via integração externa.
- Remove os benefícios anteriores relacionados a essa promoção.
- Busca a promoção no repositório para validar se está ativa.
- Valida disponibilidade da promoção para garantir que ela pode ser aplicada.
- Verifica se a flag de atualização está ativa (necessário para permitir atualização via integração).
- Obtém os novos benefícios e os aplica ao pedido.
- Se der erro não aplica nada e mantém a promoção aplicada.
Observação
Caso um item que já esteja com a promoção aplicada, seja removido do carrinho será necessário aplicar o método novamente.
Em caso de erro, as promoções continuarão aplicadas e cabe ao processo de validação removê-la, caso não estejam validas no momento que o pipeline de promoção externa for executado.
O elemento PromotionID não é obrigatório.
Requisições
Abaixo, segue a requisição da WebAPI de exemplo:
{
"PromotionID": 0,
"ShopperTicketID": "06ae832f-9f8e-436a-876c-6965f44449f2",
"BasketID": 0,
"BasketAuthorityToken": "string",
"CustomerID": 0,
"SessionID": "sem3e0baj4gkp1t15s4"
}
Request da loja:
var endpoint = browsingContext.Common.Urls.BaseUrl + "carrinho/ApplyResearchedBenefits";
var promotionData =
{ "PromotionID": 1111, }
;
$.ajax({
type: 'POST',
url: endpoint,
data: JSON.stringify(promotionData),
contentType: 'application/json',
success: function(response)
{ console.log('Requisição bem-sucedida:', response); }
,
error: function(error)
{ console.error('Erro na requisição:', error); }
});
Benefícios aplicados pelo ApplyResearchedItemsBenefits
Os benefícios aplicados pelo ApplyResearchedItemsBenefits, se baseia na ordem retornada pela integração considerando seguintes tipos:
- Itens
- Pedidos
- Frete
- Cashback
- A atualização dos benefícios aplicados segue a regra aplicada anteriormente no método ApplyResearchedItemsBenefits