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.
Metadata
Release files for FalabellaAPIClient 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| falabellaapiclient-0.1.1.tar.gz | 9.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| falabellaapiclient-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.0 kB
Release files / falabellaapiclient-0.1.1.tar.gz
| Download URL | falabellaapiclient-0.1.1.tar.gz |
|---|---|
| Size | 9.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
be7803f5677f7fdfacbd88d55cccbd47224685e1a8a6f2c4117c06a1d09973eb
|
|
BLAKE2b-256 checksum How to use checksums |
8f00ea4d0cd1dfdd7a2fbbdbb8ad64ba7a89630a2fc6c9d79c400a3960d1db3d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / falabellaapiclient-0.1.1-py3-none-any.whl
| Download URL | falabellaapiclient-0.1.1-py3-none-any.whl |
|---|---|
| Size | 13.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6b1f85d4e9abb61a7927b3f9b69fcb0a7220eaffeeadcb4a8af09cb17c15df45
|
|
BLAKE2b-256 checksum How to use checksums |
cff491291291b975ee010778bee6043536de1f3f8ed55bca9a2ba4e1f970e875
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Security for FalabellaAPIClient 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.