Olá,
Eu estou em dúvida no endpoint “suggestions/matches/action/{actionName}” pois quero mandar varios SKU para o mesmo produto aprovar, mas a questão é que o produto não existe ainda, e ele está criando um produto para cada SKU, como posso controlar isso?
Boa tarde, Thiago!
Não sei se compreendi muito bem a sua dúvida, você gostaria de aprovar vários SKUs recebidos em um produto, correto?
Nesse caso existem duas opções:
Documentação:
Isso responde a sua pergunta?
Karina Mota
Field Software Engineer | VTEX
Bom dia,
Eu queria aprovar vários SKU para o mesmo produto, caso o produto não exista eu informo newproduct e todos os SKU que eu enviar vao aprovar para um mesmo produto que irá criar?
Caso o produto exista eu informo productMatch e todos os SKU irao aprovar para um produto existente? E onde passo esta chave do produto existente
Olá Tiago!
Isso mesmo, caso o produto não exista você vai usar o parâmetro newproduct
no parâmetro matchType
no body da requisição:
Caso o produto já exista, você vai usar o parâmetro produtcMatch
também no parâmetro matchType
no body da requisição:
Nesse caso, além do parâmetro productMatch
é necessário informar o productRef
também no body da requisição:
Karina Mota
Field Software Engineer | VTEX
e o productRef
seria qual referencia? O código interno da VTEX? Código do Seller qual seria que devo passar?
Ola,
Poderia me ajudar? O productRef
seria qual referencia? O código interno da VTEX? Código do Seller qual seria que devo passar?
Oi Thiago!
O productRef
é o Id do produto já existente no Marketplace, consegue testar por aí dessa forma e me dizer se funciona?
Karina Mota
Field Software Engineer | VTEX
Bom dia Karina,
Fiz um teste aqui e passar um array no endpoint suggestions/matches/action/newproduct
passei o seguinte JSON
[
{
"itemId": "269338",
"versionId": "02092024173121436",
"matchId": "02102024005906272",
"matcherId": "02102024005906272",
"categoryId": "14",
"brandId": "2000000",
"skuRef": null,
"productRef": null,
"sellerId": ""
},
{
"itemId": "269334",
"versionId": "02092024173121989",
"matchId": "02102024002608052",
"matcherId": "02102024002608052",
"categoryId": "14",
"brandId": "2000000",
"skuRef": null,
"productRef": null,
"sellerId": ""
},
{
"itemId": "269335",
"versionId": "02092024173121838",
"matchId": "02102024002602203",
"matcherId": "02102024002602203",
"categoryId": "14",
"brandId": "2000000",
"skuRef": null,
"productRef": null,
"sellerId": ""
},
{
"itemId": "269336",
"versionId": "02252024145244641",
"matchId": "02102024002419951",
"matcherId": "02102024002419951",
"categoryId": "14",
"brandId": "2000000",
"skuRef": null,
"productRef": null,
"sellerId": ""
},
{
"itemId": "269337",
"versionId": "02092024173123619",
"matchId": "02102024001757490",
"matcherId": "02102024001757490",
"categoryId": "14",
"brandId": "2000000",
"skuRef": null,
"productRef": null,
"sellerId": ""
}
]
OBS: Removi apenas o sellerId aqui quando colei, por questão de segurança.
Esse conteudo me gerou um produto para cada SKU enviado
Oi Thiago!
Mas nesse caso você gostaria que os produtos fossem atribuídos a produtos existentes? Caso fosse isso você precisaria enviar o “productRef
” preenchido.
Karina Mota
Field Software Engineer | VTEX
Nesse caso queria que todos que eu passei na lista, fossem criados em um novo produto, pois estou passado a action “newproduct”
O mesmo foi criado um produto para cada item, como faço para que todos os SKU vao pro mesmo produto?
Oi Thiago, vamos lá…
Para o primeiro SKU, que irá ser atribuído a um novo produto você vai usar o parâmetro newproduct
no parâmetro matchType
no body da requisição:
Para todos os outros SKUs que você deseja que sejam atrelados ao produto que acabou de ser criado, você vai precisar utilizar o parâmetro produtcMatch
também no parâmetro matchType
no body da requisição e informar o Id do produto no campo productRef
, pode testar dessa forma e me dizer se funcionou como o esperado?
Mas eu estou mandando mutiplos ao mesmo tempo, conforme o endpoint e estou enviando o action “newproduct” até onde eu entendi, deveria pegar todos estes SKU que estou passando nesse endpoint e jogar para um produto apenas, não criar um produto para cada SKU (que é o que está acontecendo)
Voce comentou acima do endpoint que é Individually, não multiple.
Ola, alguma sugestão?
Oi Thiago! Bom dia!
Tudo bem por aí?
Na verdade, o problema está justamente nisso. Nesse caso apenas o primeiro produto deveria ser enviado com newproduct
os demais produtos precisariam ser enviados com o produtcMatch
e seu respectivo productRef
. Será que você consegue testar dessa forma?
Bom dia, tudo bem e contigo?
Mas como vou pegar o productref que gerou do primeiro produto? Pois não retorna o código do produto gerado.
Oi Thiago, boa tarde!
Tudo bem por aqui sim!
Então… Para tentar entender exatamente as suas questões e acabei de realizar o procedimento em uma loja teste, conforme você desejava. Vou tentar te passar todo o passo a passo que utilizei, tudo bem?
1. Rodar a API Get all SKU suggestions para obter o {version}
obtido no campo “LatestVersionId
” e {matchid}
obtido no campo “MatchId
” ambos necessários para a próxima API a ser utilizada.
2. Rodar a API Match Received SKUs individually utilizando os campos citados anteriormente e preenchendo o campo matchType
do body da requisição com a opção newproduct
, vou deixar aqui o cURL que eu utilizei:
curl --location --request PUT 'https://api.vtex.com/{accountName}/suggestions/{sellerId}/{sellerskuid}/versions/{version}/matches/{matchid}' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'AppKey: {{AppKey}} ' \
--header 'Cookie: janus_sid=98f564d3-9c1c-4925-b7f9-8b415558c1cd' \
--data '{"matcherId":"vtex-matcher",
"matchType":"itemMatch",
"score":"80",
"product":{"name":"New Product Suggestions - Teste",
"description":"New Product Suggestions - Teste",
"categoryId":10,
"brandId":2000002,
"matchType":"newproduct",
"specifications":null},
"sku":
{
"name":"New SKU Suggestions - Teste",
"eans":["111111111111"],
"refId":null,
"height":10,
"width":10,
"length":10,
"weight":10,
"images": {
"image": "https://images.ctfassets.net/alneenqid6w5/p4aDcgaE4SmyYkCwaW0CI/189307d29c86dae17beabde67780d907/tamanhosImg.png"
},
"unitMultiplier":1,
"measurementUnit":"un",
"specifications":{"Embalagem":"2kg"}
}
}'
3. Após rodar a API citada acima, é possível obter na resposta dela o Id do produto criado, ele aparece no campo productId
, veja:
4. Após isso basta utilizar a API Match Received SKUs individually conforme as instruções já passadas.
Observação Importante: Durante o processo eu não fiz o uso da API Match Multiple Received SKUs por que ela atualmente está em manutenção conforme o aviso da nossa página no developers:
Ola,
tentei fazer da forma como vc me passou, nao estou utilizando mais o endpoint de Match Mutiple Received SKUs, estou mandando individual, mas agora estou recebendo o seguinte retorno: “Insufficient score for approval. Suggestion status: ‘Pending’.”
Sendo que o score do Match é 80
Pensei que poderia ser a categoria/marca do produto também, estou passando o seguindo body
{‘matcherId’: ‘vtex-matcher’, ‘matchType’: ‘productMatch’, ‘score’: ‘80’, ‘productRef’: ‘90253197’, ‘skuRef’: None, ‘categoryId’: 56, ‘brandId’: 2000317, ‘sku’: {‘name’: ‘MARINHO - G’, ‘eans’: […], ‘refId’: None, ‘height’: 8.0, ‘width’: 15.0, ‘length’: 23.0, ‘weight’: 400.0, ‘images’: {…}, ‘unitMultiplier’: 1.0, ‘measurementUnit’: ‘un’, ‘specifications’: {…}}}
Oi @thiagothgaspar, será que você consegue checar como estão as configurações da sua loja por meio da API Get Account’s Approval Settings? Acredito que ela vai conseguir trazer a resposta que você precisa.
Caso após checar, você queria ajustar essas configurações pode utilizar a API Save Account’s Approval Settings
Bom dia,
Acredito ter dado certo agora!! Me tira uma dúvida porque eu devo passar o score no endpoint Match Multiple Received SKUs e preciso configurar o score no Save Account’s Approval Settings não entendi esta parte do score