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_tokenestore_idde 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
ResourceCRUDpermite criar novos recursos com 1 linha. -
✅ Instalável com pip Empacotado com
pyproject.tomlpara 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 compipse 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
655f19cc718f1d99a16e5d643b034b8052e38dad68e958bfd3ce26641d029a81
|
|
| MD5 |
1f4f807ceeccb7c5801505846338ca47
|
|
| BLAKE2b-256 |
9dc3bce23c06224039afb1d9352629c00c3b7a04ec35393eb9eef68c86f394f0
|
File details
Details for the file nuvemshop_client_python-0.2.2-py3-none-any.whl.
File metadata
- Download URL: nuvemshop_client_python-0.2.2-py3-none-any.whl
- Upload date:
- Size: 12.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44c1eb3f4ee1ec196db6025ed595d5f58ca7d74dd23c5f0ffc0e8138e93b6ff1
|
|
| MD5 |
8e7f537ca2dceafecb77bb42264674e8
|
|
| BLAKE2b-256 |
41768d2a10dbed91c869191a3e03bbe2ba5ae3df7c7ba93abe7b6e6933267aef
|