Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: sku matrix packages api #2504

Merged

Conversation

ramondorosario-ct
Copy link
Collaborator

@ramondorosario-ct ramondorosario-ct commented Oct 15, 2024

Este PR conta com a construção da nova query, que será utilizada pelo SKUMatrix e por toda a geração dos novos tipos.

Criamos um hook chamado useAllVariantProducts, responsável por fazer a request e devolver os dados formatados, conforme esperado pelo SKUMatrixSidebar. Para consumir esse hook, é necessário passar algumas propriedades, das quais podemos destacar o callBack e enabled.

  • callBack: é uma função que será executada apenas quando a requisição tiver sucesso e retornar todos os dados. Esse método irá retornar os dados totalmente formatados seguindo o formato pré-estabelecido no componente SKUMatrixSidebar

  • enabled: é um booleano (verdadeiro/falso). Ele irá informar para query se o SKUMatrixSidebar está aberto ou não. A requisição só será feita se o slider estiver aberto, caso contrário não, evitando requisição desnecessária

@ramondorosario-ct ramondorosario-ct requested a review from a team as a code owner October 15, 2024 19:29
@ramondorosario-ct ramondorosario-ct requested review from eduardoformiga and pedromtec and removed request for a team October 15, 2024 19:29
Copy link

vercel bot commented Oct 15, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
faststore-site ✅ Ready (Inspect) Visit Preview 💬 Add feedback Dec 5, 2024 6:13pm

@ramondorosario-ct ramondorosario-ct added enhancement New feature or request depends on Depends on another PR - Please mention the PR and removed depends on Depends on another PR - Please mention the PR labels Oct 15, 2024
@renatomaurovtex renatomaurovtex added the contributing Pull request submitted by the community label Oct 15, 2024
Copy link
Member

@eduardoformiga eduardoformiga left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The build is failing (locally and using the codesandbox check), maybe you need to run the generate command again.

@ramondorosario-ct
Copy link
Collaborator Author

The build is failing (locally and using the codesandbox check), maybe you need to run the generate command again.

The build is indeed failing because it has #2505 as a dependency. To validate everything properly, just check the #2507 . In this PR, we've merged all the others with the goal of generating the preview. The build on this branch is working correctly.

@vtex vtex deleted a comment from HiagoScierry Dec 5, 2024
@hellofanny
Copy link
Contributor

@ramondorosario-ct I will proceed with this merge to vtex:feat/sku-matrix-cubos, ok?

we are aiming to do a final review with all the parts together.

@hellofanny hellofanny merged commit 4101c3e into vtex:feat/sku-matrix-cubos Dec 6, 2024
2 of 3 checks passed
hellofanny pushed a commit that referenced this pull request Dec 10, 2024
Este PR conta com a implementação do `SKUMatrix` na ProductDetails. 

Dentro do @faststore/core na pasta ui, foi criada uma abstração do
`SKUMatrixSidebar`. Toda a lógica de captura dos dados e formatação do
mesmo é feita nessa abstração.
Para fazer a requisição dos dados, foi criado uma nova query. Para
utiliza-la basta chamar o hook useAllVariantProducts (toda a construção
dessa nova query está presente no PR #2504 ). Para consumir esse hook, é
necessário passar algumas propriedades, das quais podemos destacar o
callBack e enabled.

Dentro dessa abstração do `SKUMatrixSidebar`, deve haver o consumo do
contexto do `SKUMatrix`. O contexto que irá controlar todos os estados,
como por exemplo, informar ao contexto a lista das variações do produto.
Como essa abstração que ficará responsável por fazer a requisição e
informar os dados para o contexto, o callBack que é passado no
`useAllVariantProducts`, será o método de adicionar os itens que serão
exibidos na tabela do `SKUMatrixSidebar`, portanto deve ser atribuído o
método `setAllVariantProducts `presente no contexto do `SKUMatrix`,
dessa forma, os dados que já serão retornados formatados, serão
informados ao contexto e posteriormente, o `SKUMatrixSidebar `vai poder
consumir esses dados e exibir em tela.

Falando um pouco sobre o `useBuyButton`, este hook é responsável por
adicionar os itens selecionados no carrinho. Anteriormente, o mesmo não
aceitava uma lista de itens, logo, foi necessário modifica-lo para que a
nova demanda fosse atendida. Como o hook deve consumir algumas
informações para posteriormente informar o buyButtonProps (reposável por
preparar os dados a serem inseridos no carrinho), ele precisa observar
os dados dos produtos a serem adicionados no carrinho. Esses dados, são
retornados do contexto do SKUMatrix, por tanto, sempre que existir
qualquer tipo de modificação no estado do contexto (por exemplo, uma
alteração na quantidade de um SKU dentro da tabela do
`SKUMatrixSidebar`), irá refletir no hook do `useBuyButton`, e as
propriedades serão geradas corretamente.

Para finalizar, toda a configuração do headless CMS foi desenvolvida
nesse PR.


Este PR tem como dependência: #2503 e #2504 


## Printscreens

Headless CMS

![SKU Matrix - Headless
CMS](https://github.com/user-attachments/assets/0e234c04-8e85-42d5-9acf-768f041b11ba)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
contributing Pull request submitted by the community enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants