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

Adicionado suporte para obter Catálogos e Coleções no WhatsApp Business #1214

Merged
merged 1 commit into from
Feb 7, 2025

Conversation

wayre
Copy link

@wayre wayre commented Feb 7, 2025

🛍️ Adição de suporte para recuperar o catálogo e coleções de produtos do WhatsApp Business

🌟 Motivação

Percebi que a Evolution API ainda não oferecia suporte para obter o catálogo de produtos e as coleções de uma conta WhatsApp Business. Alguns dias atrás, implementei essa funcionalidade, mas inicialmente a incluí dentro da rota chat, o que me incomodou um pouco por não parecer a melhor organização.

Sei que muitos usuários têm interesse em ao menos baixar os produtos do catálogo para integrá-los a suas automações (como é o meu caso). Por isso, resolvi fazer este fork e implementar essa funcionalidade de forma mais organizada.

Estou abrindo este PR novamente com a intenção de estruturar melhor o código, facilitando futuras melhorias e implementações. 😊
Além disso, encontrei esta issue, que me ajudou a decidir separar Catalogs e Collections em uma nova rota.

Agora, as rotas relacionadas a catálogos de produtos e coleções foram movidas para um novo grupo (business), evitando alterações desnecessárias nos arquivos existentes. Mantive a mesma estrutura do projeto para garantir compatibilidade e facilitar futuras manutenções.

✨ O que foi adicionado?

Apenas duas rotas para pegar os produtos do catálogo e todos os produtos agrupados em coleções.

1. Catálogo de produtos
Retorna todos os produtos de um determinado número business

Requisição:

curl --location 'http://localhost:8080/business/getCatalog/instancia01' \
--header 'Content-Type: application/json' \
--header 'apikey: 429683C4C977415CAAFCCE10F7D57E11' \
--data '{
  // é possível definir qual número business deve baixar catálogos
  "number": "5511988888888"
}'

Saída:

{
    "wuid": "[email protected]",
    "numberExists": true,
    "isBusiness": true,
    "catalogLength": 50,
    "catalog": [
        {
            "id": "4716667278401015",
            "imageUrls": {
                "requested": "https://media-ams2-1.cdn.whatsapp...",
                "original": "https://media-ams2-1.cdn.whatsapp..."
            },
            "reviewStatus": {
                "whatsapp": "APPROVED"
            },
            "availability": "in stock",
            "name": "16 pro max 256 novo lacrado pedido",
            "description": "Pedido\n1 ano garantia fabricante...",
            "price": 7990000,
            "currency": "BRL",
            "isHidden": false
        }
    ]
}

2. Collections
Retorna todas as coleções e seus produtos associados.
Obs: Produtos sem coleções não aparecem aqui.

Requisição:

curl --location 'http://localhost:8080/business/getCollections/instancia01' \
--header 'Content-Type: application/json' \
--header 'apikey: 429683C4C977415CAAFCCE10F7D57E11' \
--data '{
  "number": "5511982728844"
}'

Saída:

{
    "wuid": "[email protected]",
    "name": "João da Silva",
    "numberExists": true,
    "isBusiness": true,
    "collectionsLength": 15,
    "collections": [
        {
            "id": "1393760778678595",
            "name": "linha 16",
            "products": [
                {
                    "id": "4716667278401015",
                    "imageUrls": {
                        "requested": "https://media-ams4-...",
                        "original": "https://media-ams4-1..."
                    },
                    "reviewStatus": {
                        "whatsapp": "APPROVED"
                    },
                    "availability": "in stock",
                    "name": "16 pro max 256 novo lacrado pedido",
                    "description": "Pedido\n1 ano garantia fabricante...",
                    "price": 7990000,
                    "currency": "BRL",
                    "isHidden": false
                }
            ],
            "status": {
                "canAppeal": false
            }
        }
    ]
}

🤝 Contribuição

Se essa melhoria for útil para o projeto, ficarei feliz em ajudar com qualquer ajuste necessário. Caso haja algo que possa ser melhorado ou adaptado para seguir os padrões da API Evolution, estou aberto a sugestões! 😃

Agradeço desde já pelo tempo de revisão e pelo trabalho incrível que fazem com essa API! 🚀

…gos de produtos e Coleções evitando alterações desnecessárias em arquivos do repositório
@DavidsonGomes DavidsonGomes merged commit 8685f2f into EvolutionAPI:develop Feb 7, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants