Este paquete nos permite consumir el API de falabella
Project description
FalabellaAPIClient
Este módulo permite interactuar de manera sencilla y eficiente con la API de Falabella y Linio Seller Center para administrar productos, categorías, órdenes, despachos y datos del vendedor.
El cliente ha sido rediseñado utilizando una arquitectura basada en composición y propiedades perezosas (lazy properties) para ofrecer una interfaz unificada y moderna, manteniendo al mismo tiempo compatibilidad del 100% con integraciones previas.
Instalación
Para instalar el módulo localmente o desde tu entorno de desarrollo, ejecuta:
pip install FalabellaAPIClient
O agrégalo a tu archivo requirements.txt:
FalabellaAPIClient
Uso Básico (Nueva Arquitectura)
La nueva arquitectura utiliza un único cliente (FalabellaClient) que gestiona internamente la sesión HTTP y la generación de firmas HMAC-SHA256. Los recursos se cargan dinámicamente como propiedades del cliente.
import json
from FalabellaAPIClient import FalabellaClient, FalabellaAPIError
# Inicializar el cliente unificado
client = FalabellaClient(
user="email@example.com",
key="_api_key_",
service="falabella", # "falabella"
country="co" # "co", "cl", "pe", "mx", etc.
)
# 1. Obtener información de un producto
try:
product_list = ["TP-19150"]
item = client.products.get(SkuSellerList=json.dumps(product_list))
print("Producto obtenido:", item)
except FalabellaAPIError as e:
print(f"Error al obtener el producto: {e.message} (Status: {e.status_code})")
# 2. Consultar órdenes
try:
orders_list = client.orders.list(Limit=10)
print("Últimas 10 órdenes:", orders_list)
# Obtener ítems de una orden específica
order_items = client.orders.items(order_id=100513)
print("Ítems de la orden 100513:", order_items)
except FalabellaAPIError as e:
print(f"Error con las órdenes: {e}")
Recursos Disponibles
El cliente FalabellaClient expone los siguientes recursos mediante propiedades perezosas:
1. client.products (Productos y Categorías)
get(limit=1000, **kwargs): Obtiene información de productos utilizando el filtroGetProducts.create(payload): Crea nuevos productos enviando una estructura XML.update(payload): Actualiza productos existentes (estructura XML).remove(payload): Elimina productos de la plataforma.brands(): Obtiene la lista de marcas asociadas del vendedor (GetBrands).get_category_tree(): Recupera la jerarquía completa de categorías de la plataforma.get_category_attributes(primary_category_id): Retorna la lista de atributos y campos requeridos para una categoría específica.
2. client.orders (Órdenes de Venta)
list(**kwargs): Obtiene la lista de órdenes (GetOrders).get(order_id, **kwargs): Obtiene detalles de una orden específica.items(order_id, template="JSON"): Obtiene los ítems individuales de una orden.multiple_order_items(order_id_list, template="JSON"): Obtiene ítems de una lista de órdenes.- Transiciones de Estado de Despacho (Lifecycle):
set_status_to_packed_by_marketplace(order_item_ids, shipping_provider, delivery_type)set_status_to_ready_to_ship(order_item_ids, shipping_provider, tracking_number, delivery_type)set_status_to_shipped(order_item_ids, tracking_number)set_status_to_delivered(order_item_ids)set_status_to_failed(order_item_ids, reason, reason_detail=None)set_status_to_cancelled(order_item_ids, reason, reason_detail=None)
3. client.seller (Perfil del Vendedor)
get(): Obtiene el perfil de vendedor y el estado general de la cuenta (GetSeller).
4. client.shipments (Envíos y Documentación)
get_providers(): Obtiene el listado de transportistas disponibles (GetShipmentProviders).get_document(order_item_ids, document_type="shippingLabel"): Descarga documentos en HTML/PDF como guías de despacho (shippingLabel), facturas (invoice) o manifiestos (carrierManifest).
Compatibilidad Heredada (Legacy)
Si ya tienes implementaciones que usan la estructura original, estas seguirán funcionando sin cambios, aunque levantarán un DeprecationWarning sugiriendo la migración.
from FalabellaAPIClient import Session, Products, Service, Orders
import json
# login legacy
user = "email@example.com"
key = "_api_key_"
session = Session(user, key, "falabella")
service = Service()
# Instanciar recursos pasando service y session individualmente
items = Products(service, session)
product_list = ["TP-19150"]
item = items.get(SkuSellerList=json.dumps(product_list))
order = Orders(service, session)
print("order:", order.get(100513))
Contribuciones y Desarrollo
Para realizar pruebas locales y contribuir:
- Asegúrate de instalar las dependencias de desarrollo (
requests). - Genera y corre pruebas unitarias usando
pytesto scripts de integración locales.
Licencia
Este proyecto se encuentra bajo la Licencia MIT.
Project details
Release history Release notifications | RSS feed
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 falabellaapiclient-0.1.1.tar.gz.
File metadata
- Download URL: falabellaapiclient-0.1.1.tar.gz
- Upload date:
- Size: 9.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be7803f5677f7fdfacbd88d55cccbd47224685e1a8a6f2c4117c06a1d09973eb
|
|
| MD5 |
df179a2500b3d1ed01ee7eaa0e393f18
|
|
| BLAKE2b-256 |
8f00ea4d0cd1dfdd7a2fbbdbb8ad64ba7a89630a2fc6c9d79c400a3960d1db3d
|
File details
Details for the file falabellaapiclient-0.1.1-py3-none-any.whl.
File metadata
- Download URL: falabellaapiclient-0.1.1-py3-none-any.whl
- Upload date:
- Size: 13.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b1f85d4e9abb61a7927b3f9b69fcb0a7220eaffeeadcb4a8af09cb17c15df45
|
|
| MD5 |
c7432df2dfa74d70f09cf2e799816b54
|
|
| BLAKE2b-256 |
cff491291291b975ee010778bee6043536de1f3f8ed55bca9a2ba4e1f970e875
|