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 core #2505

Open
wants to merge 5 commits into
base: feat/sku-matrix-cubos
Choose a base branch
from

Conversation

ramondorosario-ct
Copy link
Collaborator

@ramondorosario-ct ramondorosario-ct commented Oct 15, 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

feat: sku matrix core
@ramondorosario-ct ramondorosario-ct added enhancement New feature or request depends on Depends on another PR - Please mention the PR labels Oct 15, 2024
@ramondorosario-ct ramondorosario-ct requested a review from a team as a code owner October 15, 2024 19:38
@ramondorosario-ct ramondorosario-ct requested review from renatomaurovtex and removed request for a team October 15, 2024 19:38
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 Nov 27, 2024 9:52am

@renatomaurovtex renatomaurovtex added the contributing Pull request submitted by the community label Oct 18, 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), maybe you need to rebase with the dependent PRs.

@ramondorosario-ct
Copy link
Collaborator Author

The build is failing (locally and using the codesandbox), maybe you need to rebase with the dependent PRs.

The build is indeed failing because it has a dependency on #2504, and all the generated type definitions are in the PR related to the API. To validate everything properly, just check the #2507; this PR combines all the others with the goal of generating the preview. The build in this branch is working correctly.

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 depends on Depends on another PR - Please mention the PR enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants