feat: add budget to order details #3130
Open
+471
−21
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What's the purpose of this pull request?
No contexto do B2B FastStore, clientes corporativos precisam visualizar informações sobre os budgets alocados em seus pedidos para ter transparência sobre como os orçamentos foram utilizados. Atualmente, essas informações não estão disponíveis na página de detalhes do pedido no My Account, dificultando o acompanhamento financeiro e a gestão de budgets pelos compradores B2B.
Esta implementação adiciona a exibição dos budgets alocados diretamente na página de detalhes do pedido, seguindo o mesmo padrão visual dos outros cards informativos (Payment, Delivery, Summary, etc.), proporcionando uma experiência consistente e completa para os usuários B2B.
How it works?
Esta feature adiciona um novo card
MyAccountBudgetsCardna página de detalhes do pedido (/pvt/account/orders/[id]) que exibe informações sobre os budgets alocados ao pedido.Implementação técnica:
GraphQL Schema (
packages/api/src/typeDefs/userOrder.graphql):UserOrderBudgetData: Container principal com lista de budgetsUserOrderBudget: Informações do budget (id, name, unitId, cycleConfiguration, balance, allocations)UserOrderBudgetAllocation: Informações de alocação específica (linkedEntity, balance, reservations, ToBeSpent)UserOrderBudgetBalance: Valores financeiros (amount, balanceAdjustment, remaining)UserOrderBudgetCycleConfiguration: Configuração do ciclo do budgetbudgetDataadicionado aos tiposUserOrdereUserOrderResultAPI Layer (
packages/api/src/platforms/vtex/resolvers/query.ts):userOrderagora retorna o campobudgetDatadiretamente da API VTEX OMS/api/oms/user/orders/${orderId}que já retorna essas informaçõesComponente React (
packages/core/src/components/account/orders/MyAccountOrderDetails/MyAccountBudgetsCard/):MyAccountBudgetsCardcriado seguindo o padrão dos outros cards do My AccountbudgetDataexistir e contiver budgets com allocations válidasIntegração (
packages/core/src/components/account/orders/MyAccountOrderDetails/MyAccountOrderDetails.tsx):MyAccountBudgetsCardfoi integrado na página de detalhes do pedidoMyAccountSummaryCarde antes dos accordions de delivery optionsorder.budgetDataQuery GraphQL (
packages/core/src/pages/pvt/account/orders/[id].tsx):budgetDatana queryServerOrderDetailsQuerypara buscar todas as informações necessárias dos budgetsComportamento:
currencyCode)How to test it?
Pré-requisitos:
Passos para teste:
Configurar ambiente de desenvolvimento:
Acessar a página de detalhes do pedido:
/pvt/account/ordersVerificar a exibição do card de budgets:
Testar casos edge:
Verificar responsividade:
Starters Deploy Preview
References
Task relacionada:
Documentação:
Relacionado:
Checklist
You may erase this after checking them all 😉
PR Title and Commit Messages
feat,fix,chore,docs,style,refactor,ciandtestPR Description
breaking change,bug,contributing,performance,documentation..Dependencies
pnpm-lock.yamlfile when there were changes to the packagesDocumentation
@Mariana-Caetanoto review and update (Or submit a doc request)