Ir al contenido

Shippo - Obtener Tarifas

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.

ParámetroTipoRequeridoDescripción
credentials_idcredentialsSiCredencial Shippo (provider: shippo)
address_fromtextareaSiDirección de origen en JSON o ID de dirección Shippo
address_totextareaSiDirección de destino en JSON o ID de dirección Shippo
parceltextareaSiPaquete en JSON (length, width, height, distance_unit, weight, mass_unit)
async_modebooleanNoModo asincrono - mas rápido para muchos carriers (por defecto: false)

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"
}
{
"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\"}"
}
  • 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 cheapest y fastest se calculan automáticamente
  • El modo asincrono es recomendable cuando se tienen muchos transportistas conectados