{"section":"known-issues","requestedLocale":"pt","requestedSlug":"api-de-checkout-tratar-comportamentos-indesejados-dos-itens-do-carrinho-ao-enviar-anexos-para-itens-ja-adicionados","locale":"pt","slug":"api-de-checkout-tratar-comportamentos-indesejados-dos-itens-do-carrinho-ao-enviar-anexos-para-itens-ja-adicionados","path":"docs/pt/known-issues/Checkout/api-de-checkout-tratar-comportamentos-indesejados-dos-itens-do-carrinho-ao-enviar-anexos-para-itens-ja-adicionados.md","branch":"main","content":">ℹ️ Este problema conhecido foi traduzido automaticamente do inglês.\n\n## Sumário\n\nAo usar a API de checkout para gerenciar itens do carrinho, caso um determinado item já tenha sido adicionado sem \"_attachments_\", tentar incluí-lo novamente, desta vez com \"_attachments_\", não funcionará corretamente nem registrará nada.\n\nO \"_checkout-graphql\"_ usa essa API para resolver mutações; portanto, usar a mutação \"_addToCart\"_ em um carrinho onde um determinado item já foi adicionado sem \"_options_\" e tentar incluí-lo novamente com \"_options_\" também não funcionará corretamente. A mutação não registrará as \"_options_\" enviadas e também retornará um erro se elas estiverem relacionadas a informações de \"_subscription_\".\n\nNesse contexto, a propriedade \"_options_\" é usada para declarar \"_assemblyOptions_\", tanto para \"_composition_\" quanto para \"_inputValues_\", que também é usada no lugar de \"_itemAttachments_\" e para incluir \"_subscriptionsData_\".\n\nComportamentos atuais:\n- _addToCart_ **sem** enviar \"_options_\" para um item já adicionado **também sem** \"_options_\" atualizará sua quantidade **para** o número fornecido\n- _addToCart_ com ou sem enviar \"_options_\" para um item já adicionado **com** \"_options_\" funcionará para incluir itens **novos**/repetidos com a quantidade fornecida\n\nOnde ocorre o problema:\n- _addToCart_ enviando \"options\" para um item já adicionado sem \"options\"\n\nO \"_options_\" não será registrado (nem atualizando nem funcionando como um novo item) no orderForm. Ainda assim, ele funcionará na atualização da quantidade do item já adicionado – da mesma forma que o primeiro comportamento descrito.\n\nO pior cenário ocorre se você enviar uma \"_option_\" relacionada a informações de assinatura. A mutação \"_addToCart\"_ possui uma ação encadeada para atualizar a seção \"_subscriptionsData_\" do orderForm com as informações dessa \"_option_\", e, nesse caso, ela falhará, retornando erros para a operação – mas também executando a ação anterior, que atualiza a quantidade.\n\nPara constar, a mutação \"_updateItems\"_ não funciona para adicionar itens ou adicionar/remover \"_options_\" a um item já adicionado.\n\n## Simulação\n\nConsiderando esta mutação:\n\n mutation ($orderFormId: ID, $items: [ItemInput]) \\{  addToCart(orderFormId: $orderFormId, items: $items) \\{    ...  \\}\\}\n\n\nA primeira solicitação, que funciona bem:\n\n \\{  \"items\": [    \\{ \"id\": 123, \"quantity\": 1, \"seller\": \"1\"    \\} ]\\}\n\n\nA segunda solicitação, incluindo o mesmo item, mas com informações de assinatura:\n\n \\{  \"items\": [    \\{ \"id\": 123, \"index\": 0, \"quantity\": 1, \"seller\": \"1\", \"options\": [        \\{ \"assemblyId\": \"vtex.subscription\", \"inputValues\": \\{ \"vtex.subscription.key.frequency\": \"1 mês\" \\} \\}     ]    \\}  ]\\}\n\nA resposta:\n\n \\{  \"data\": null,  \"errors\": [    \\{ \"message\": \"Falha na solicitação com código de status 400\", ... \"response\": \\{ \"data\": \\{              \"Fields\": \\{\\}, \"operationId\": \"acdb9ef5-59dc-49a7-9d79-d3fb895d81fe\", \"error\": \\{ \"code\": \"1\",                \"message\": \"Assinatura inválida\", \"exception\": null \\} \\}, ...    \\} ]\\}\n\n## Workaround\n\nN/A\n\n\n%0A"}