Skip to main content

Um cliente Python robusto e intuitivo para a API da Nuvemshop.

Project description

🧰 nuvemshop-client-python

Um cliente Python robusto e intuitivo para a API da Nuvemshop (Tiendanube).

Desenvolvido para simplificar a criação de integrações, automações e SDKs, com foco em organização, reuso e manutenção fácil.


🚀 Funcionalidades

  • Cliente HTTP Resiliente Requisições, autenticação e tratamento de erros automáticos, com suporte a timeouts e retentativas.

  • Paginação Automática Busque todos os recursos com .list_all() sem precisar iterar páginas manualmente.

  • Fluxo de Autenticação OAuth 2.0 Módulo auxiliar para obter access_token e store_id de novas lojas.

  • Recursos Modulares Operações da API organizadas por recursos: Products, Orders, Customers, etc.

  • Interface Fluida Interaja naturalmente: client.products.get(), client.orders.list(), etc.

  • Estrutura Extensível A classe ResourceCRUD permite criar novos recursos com 1 linha.

  • Instalável com pip Empacotado com pyproject.toml para facilitar distribuição.


📦 Instalação

git clone https://github.com/Brunohvg/nuvemshop-client-python.git
cd nuvemshop-client-python
uv pip install -e .

Usa uv? Perfeito, tudo funciona com ele. Também funciona com pip se preferir.


⚙️ Configuração

Crie um .env com suas credenciais da aplicação Nuvemshop:

CLIENT_ID="SEU_CLIENT_ID"
CLIENT_SECRET="SEU_CLIENT_SECRET"

A lib usa python-decouple para carregar isso automaticamente.


🔐 Autenticação OAuth (passo 1)

Troque o code recebido pela Nuvemshop por um token de acesso:

from nuvemshop_client.auth import get_access_token

credentials = get_access_token("codigo_recebido_pela_nuvemshop")
access_token = credentials.get("access_token")
store_id = credentials.get("store_id")

🔗 Usando o cliente (passo 2)

from nuvemshop_client import NuvemshopClient

client = NuvemshopClient(
    store_id=store_id,
    access_token=access_token,
    timeout=45,  # opcional
    retries=5    # opcional
)

# Obter um produto
produto = client.products.get(12345)

# Buscar TODOS os pedidos (automaticamente paginado)
todos_pedidos = client.orders.list_all()

✨ Funcionalidades Avançadas

🔄 Paginação automática

produtos = client.products.list_all(per_page=200)
print(f"Total de produtos: {len(produtos)}")

🛡 Resiliência

Parâmetros extras ao instanciar o client:

  • timeout: tempo máximo de espera por resposta (padrão: 30s)
  • retries: número de retentativas em caso de erro de rede, 429, 5xx (padrão: 3)

📚 Recursos Suportados

Cada um possui .list(), .get(), .create(), .update(), .delete() e .list_all():

client.products
client.orders
client.customers
client.abandoned_checkouts
client.webhooks
client.stores

⚠️ Tratamento de Erros

Use try/except com as exceções customizadas:

from nuvemshop_client.exception import (
    NuvemshopClientError,
    NuvemshopClientNotFoundError
)

try:
    produto = client.products.get(99999999)
except NuvemshopClientNotFoundError:
    print("Produto não encontrado.")
except NuvemshopClientError as e:
    print(f"Erro ao acessar a API: {e}")

📄 Licença

MIT. Veja LICENSE para mais detalhes.


Feito com 💚 por Brunohvg

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nuvemshop_client_python-0.2.2.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nuvemshop_client_python-0.2.2-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

Details for the file nuvemshop_client_python-0.2.2.tar.gz.

File metadata

  • Download URL: nuvemshop_client_python-0.2.2.tar.gz
  • Upload date:
  • Size: 10.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for nuvemshop_client_python-0.2.2.tar.gz
Algorithm Hash digest
SHA256 655f19cc718f1d99a16e5d643b034b8052e38dad68e958bfd3ce26641d029a81
MD5 1f4f807ceeccb7c5801505846338ca47
BLAKE2b-256 9dc3bce23c06224039afb1d9352629c00c3b7a04ec35393eb9eef68c86f394f0

See more details on using hashes here.

File details

Details for the file nuvemshop_client_python-0.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for nuvemshop_client_python-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 44c1eb3f4ee1ec196db6025ed595d5f58ca7d74dd23c5f0ffc0e8138e93b6ff1
MD5 8e7f537ca2dceafecb77bb42264674e8
BLAKE2b-256 41768d2a10dbed91c869191a3e03bbe2ba5ae3df7c7ba93abe7b6e6933267aef

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page