# Listar productos físicos Lista productos físicos (ecommerce_type=retail). Para usar este endpoint, el negocio debe tener habilitada la solución de Productos Físicos. Endpoint: GET /products Version: 1.0.0 Security: ApiKeyAuth ## Query parameters: - `limit` (integer) Cantidad de resultados por página. - `page` (integer) Número de página. ## Response 200 fields (application/json): - `status` (string, required) Example: "OK" - `data` (array, required) Lista de productos (si no hay, viene vacío). - `data.id` (integer, required) Example: 12181 - `data.business_id` (integer, required) Example: 265 - `data.hash` (string) Example: "WGwJyW" - `data.name` (string, required) Example: "Producto de ejemplo" - `data.short_description` (any) - `data.price` (string, required) Example: "2500" - `data.price_min` (any) - `data.price_max` (any) - `data.prices_list_key` (any) - `data.base_price` (string) Example: "2500" - `data.price_varies` (boolean) - `data.compare_at_price` (any) Example: "3000" - `data.price_visible` (boolean) Example: true - `data.currency` (string, required) Example: "ARS" - `data.sku` (any) Example: "abc123" - `data.slug` (string) Example: "producto-de-ejemplo" - `data.active` (boolean, required) Example: true - `data.rating` (integer) - `data.reviews` (integer) - `data.sales` (integer) - `data.tags` (string) - `data.weight` (number) Example: 1 - `data.length` (number) Example: 40 - `data.width` (number) Example: 40 - `data.height` (number) Example: 40 - `data.image` (any) - `data.is_variant` (boolean) - `data.has_variants` (boolean) - `data.subscription_only` (boolean) - `data.requires_shipping` (boolean) Example: true - `data.volume_pricing_enabled` (boolean) - `data.ecommerce_type` (string, required) Example: "retail" - `data.free_shipping` (boolean) - `data.require_login` (boolean) - `data.double_opt_in` (boolean) Example: true - `data.weight_unit` (string) Example: "kg" - `data.vendor` (any) - `data.stock_management` (boolean) - `data.sales_channel` (object) Mapa de canales de venta donde la clave es el ID del canal. - `data.is_buyable` (boolean) Example: true - `data.published` (boolean) Example: true - `data.categories` (array) Example: [] - `countFiltered` (integer, required) Cantidad filtrada - `count` (any, required) Puede venir como string o integer. - `previous` (any, required) - `current` (integer, required) - `pages` (integer, required) - `next` (any, required) ## Response 400 fields (application/json): - `status` (string, required) Example: "ERROR" - `message` (string, required) Example: "Descripción del error" - `errors` (array, required) - `errors.code` (integer, required) Example: 4000 - `errors.extra_data` (array) Datos extra para debug/validación (puede venir vacío).