Saltearse al contenido

Shippo - Obtener Tarifas

Este modulo obtiene tarifas de envio de multiples transportistas a traves de Shippo. Recibe las direcciones de origen y destino en formato JSON (o IDs de direccion Shippo), las especificaciones del paquete y un modo asincrono opcional. Realiza una peticion 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 duracion y fecha de llegada. Identifica automaticamente la tarifa mas economica y la mas rapida.

ParametroTipoRequeridoDescripcion
credentials_idcredentialsSiCredencial Shippo (provider: shippo)
address_fromtextareaSiDireccion de origen en JSON o ID de direccion Shippo
address_totextareaSiDireccion de destino en JSON o ID de direccion Shippo
parceltextareaSiPaquete en JSON (length, width, height, distance_unit, weight, mass_unit)
async_modebooleanNoModo asincrono - mas rapido 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 direccion 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 automaticamente
  • El modo asincrono es recomendable cuando se tienen muchos transportistas conectados