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.1.tar.gz (9.2 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.1-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: nuvemshop_client_python-0.2.1.tar.gz
  • Upload date:
  • Size: 9.2 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.1.tar.gz
Algorithm Hash digest
SHA256 c0cafa794e43405d423074aa2043e126e609b55a3e317e639a746cf24042c816
MD5 8f5e8961432a6be3676930b200cba538
BLAKE2b-256 bcf15ecf95636221d271e47ce4b08bab4a743525e27efc7fbf6f6178e60aa718

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nuvemshop_client_python-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fd6adf8219d7bea8b8f73922862168a1f520256f1d328a22b304d10d189e3265
MD5 2e3bccb62674322f63ec36b0b2a68389
BLAKE2b-256 12cc0a74ec642aa5dad22703a4500c452d278d9ce79f48ac9e1896aaea36855d

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