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 Simplificado
Um método estático para obteraccess_tokenestore_idde novas lojas de forma clara e explícita. -
✅ 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 classeResourceCRUDpermite criar novos recursos com 1 linha. -
✅ Instalável com pip
Empacotado compyproject.tomlpara facilitar distribuição.
📦 Instalação
git clone https://github.com/Brunohvg/nuvemshop-client-python.git
cd nuvemshop-client-python
pip install -e .
Você também pode usar uv se preferir.
⚙️ Configuração e Autenticação
Passo 1: Obter as Credenciais da Loja
Primeiro, você precisa trocar o code temporário (que a Nuvemshop envia para sua aplicação após o lojista autorizar) por um access_token e store_id permanentes.
from nuvemshop_client import NuvemshopClient, NuvemshopClientAuthenticationError
import os
meu_client_id = os.getenv("CLIENT_ID")
meu_client_secret = os.getenv("CLIENT_SECRET")
codigo_recebido = "codigo_que_a_nuvemshop_enviou_para_minha_app"
try:
credentials = NuvemshopClient.authenticate(
client_id=meu_client_id,
client_secret=meu_client_secret,
code=codigo_recebido
)
access_token = credentials.get("access_token")
store_id = credentials.get("store_id")
print(f"Credenciais obtidas com sucesso para a loja ID: {store_id}")
except NuvemshopClientAuthenticationError as e:
print(f"Ocorreu um erro durante a autenticação: {e}")
except ValueError as e:
print(f"Erro de configuração: {e}")
Passo 2: Usar o Cliente para Interagir com a Loja
from nuvemshop_client import NuvemshopClient
client = NuvemshopClient(
store_id=store_id,
access_token=access_token,
timeout=45,
retries=5
)
produto = client.products.get(12345)
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 encontrados: {len(produtos)}")
🛡 Resiliência
Parâmetros extras ao instanciar o cliente:
timeout: tempo máximo de espera por resposta (padrão: 30s)retries: número de retentativas em caso de erro de rede,429ou5xx(padrão: 3)
📚 Recursos Suportados
Cada um possui métodos como .list(), .get(), .create(), .update(), .delete() e o auxiliar .list_all():
client.productsclient.ordersclient.customersclient.abandoned_checkoutsclient.webhooksclient.stores
⚠️ Tratamento de Erros
Use try/except com as exceções customizadas para tratar erros da API de forma granular:
from nuvemshop_client.exception import (
NuvemshopClientError,
NuvemshopClientNotFoundError
)
try:
produto = client.products.get(99999999)
except NuvemshopClientNotFoundError:
print("O produto solicitado não foi encontrado.")
except NuvemshopClientError as e:
print(f"Ocorreu um erro genérico 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.5.tar.gz.
File metadata
- Download URL: nuvemshop_client_python-0.2.5.tar.gz
- Upload date:
- Size: 9.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18e86470dba494640d916d40234aeb8020c8d8e38d5982c422de9d69385b3fda
|
|
| MD5 |
621db172260ef89b6930c10cc457ff63
|
|
| BLAKE2b-256 |
56901366b16b85f9e2630862843ff18af87d3499f90b270739331c37c38c3637
|
File details
Details for the file nuvemshop_client_python-0.2.5-py3-none-any.whl.
File metadata
- Download URL: nuvemshop_client_python-0.2.5-py3-none-any.whl
- Upload date:
- Size: 11.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
97f8345ef3b4eb51b13090ac2eab4ca6c20f03d895abe15d573bbee0b6b14ef2
|
|
| MD5 |
a7b63e30fe5b933df69b9c105597168f
|
|
| BLAKE2b-256 |
f21b3646bf2b703bd32223ac6da4ad3c7ffd221d3c8e11a69372a6cdb0b8fc13
|