Shippo - Obtener Tarifas
Descripción
Sección titulada «Descripción»Este modulo obtiene tarifas de envío de múltiples transportistas a traves de Shippo. Recibe las direcciones de origen y destino en formato JSON (o IDs de dirección Shippo), las especificaciones del paquete y un modo asincrono opcional. Realiza una petición POST al endpoint /shipments/ creando un shipment que devuelve las tarifas de todos los transportistas conectados. Procesa la respuesta para extraer ID de tarifa, proveedor, servicio, token de servicio, precio, moneda, dias estimados, terminos de duración y fecha de llegada. Identifica automáticamente la tarifa mas economica y la mas rápida.
Configuración
Sección titulada «Configuración»| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| credentials_id | credentials | Si | Credencial Shippo (provider: shippo) |
| address_from | textarea | Si | Dirección de origen en JSON o ID de dirección Shippo |
| address_to | textarea | Si | Dirección de destino en JSON o ID de dirección Shippo |
| parcel | textarea | Si | Paquete en JSON (length, width, height, distance_unit, weight, mass_unit) |
| async_mode | boolean | No | Modo asincrono - mas rápido para muchos carriers (por defecto: false) |
Credenciales
Sección titulada «Credenciales»Se requiere una credencial de tipo shippo con los siguientes campos:
- api_token: API Token de Shippo
{ "success": true, "shipment_id": "shp_abc123", "rates": [ { "rate_id": "rate_abc123", "carrier": "USPS", "service": "Priority Mail", "service_token": "usps_priority", "price": "7.58", "currency": "USD", "estimated_days": 2, "duration_terms": "1-3 business days", "arrives_by": null } ], "rates_count": 10, "cheapest": { "rate_id": "rate_def456", "carrier": "USPS", "service": "First Class", "price": "4.50" }, "fastest": { "rate_id": "rate_ghi789", "carrier": "FedEx", "service": "FedEx 2Day", "estimated_days": 1 }, "message": "10 tarifas obtenidas"}Ejemplo de Uso
Sección titulada «Ejemplo de Uso»Caso básico
Sección titulada «Caso básico»{ "credentials_id": "mi_credencial_shippo", "address_from": "{\"name\":\"Remitente\",\"street1\":\"Calle Gran Via 1\",\"city\":\"Madrid\",\"state\":\"MD\",\"zip\":\"28001\",\"country\":\"ES\"}", "address_to": "{\"name\":\"Destinatario\",\"street1\":\"Av Diagonal 100\",\"city\":\"Barcelona\",\"state\":\"CT\",\"zip\":\"08001\",\"country\":\"ES\"}", "parcel": "{\"length\":\"25\",\"width\":\"15\",\"height\":\"10\",\"distance_unit\":\"cm\",\"weight\":\"1\",\"mass_unit\":\"kg\"}"}API Utilizada
Sección titulada «API Utilizada»- Endpoint: POST
/shipments/ - Base: Shippo API (via helper
_shippoHelper) - Documentación: https://goshippo.com/docs/
- Las direcciones pueden ser objetos JSON completos o IDs de dirección de Shippo previamente creadas
- El paquete requiere unidades explicitas (distance_unit: cm/in, mass_unit: kg/lb/oz)
- El shipment_id retornado no se usa directamente; se usa el rate_id para comprar una tarifa
- Los campos
cheapestyfastestse calculan automáticamente - El modo asincrono es recomendable cuando se tienen muchos transportistas conectados