Motion Supply Chain (SA) API dokumentacija

Integrirano REST API

Popolna API referenca za Motion Supply Chain (SA) integracijo pošiljanja. Dostop do rezervacij, tovornih cen, generiranja nalepk in sledenja preko Cargosonove enotne API za upravljanje prevozov.

Pridobite svoj API ključ

Motion Supply Chain (SA) API pregled

Ta API omogoča programski dostop do Motion Supply Chain (SA) storitev pošiljanja preko Cargosonove enotne platforme za upravljanje prevozov. Integrirajte Motion Supply Chain (SA) zmogljivosti, vključno z rezervacijo pošiljk, sledenjem, cenovnimi ponudbami in generiranjem nalepk v vaše aplikacije.

API zmogljivosti

  • Ustvarite in upravljajte Motion Supply Chain (SA) rezervacije pošiljk
  • Sledenje pošiljkam in posodobitve statusa
  • Pridobite ponudbe za tovorne cene in čase prevoza
  • Generirajte nalepke za pošiljanje v več formatih (PDF, PNG, ZPL)
  • Ustvarite nalepke za vračilo za povratno logistiko
  • Poiščite lokacije paketomatov in prevzemnih mest
  • Seznam razpoložljivih storitev prevoznika
  • Avtomatizirane zahteve za prevzem kurirja

Osnovni URL in avtentikacija

Osnovni URL

https://www.cargoson.com/api/v1

Avtentikacija

Vse zahteve morajo vključevati vaš API ključ in pravilno Accept glavo:

Authorization: Bearer VAŠ_API_KLJUČ
Accept: application/vnd.api.v1

Motion Supply Chain (SA) API za rezervacije

Cargoson avtomatizacija
Cargoson izboljšava:

Motion Supply Chain (SA) ne zagotavlja API za rezervacije. Cargoson samodejno pošilja potrditve rezervacij po e-pošti v vašem imenu, medtem ko še vedno uporabljate isto enotno vmesnik API.

Ustvarite Motion Supply Chain (SA) pošiljke in pridobite nalepke za pošiljanje z uporabo končne točke Queries. Rezervacije se pošljejo v sistem prevoznika v realnem času in nalepke se generirajo takoj.

Poizvedba proti neposredni rezervaciji

Končna točka Queries podpira dve metodi rezervacije:

  • Način poizvedbe - Ustvarite zahtevo za prevoz brez določitve prevoznika (še). To vam omogoča ročno primerjavo cen in časov dostave prevoznikov, zahtevo za nove spot cene, prilagoditve/posodobitve pošiljke in delegiranje izbire prevoznika drugim, preden naredite končno izbiro prevoznika v Cargosonu.
  • Neposredna rezervacija - Določite ID storitve prevoznika (iz Rate ali Services API), da rezervirate neposredno pri Motion Supply Chain (SA). To zagotavlja, da vaša pošiljka uporablja točno storitev, ki ste jo izbrali.

Za neposredno rezervacijo pri Motion Supply Chain (SA) vedno določite direct_booking_service_id.

POST /queries

Ustvarite poizvedbo pošiljke ali neposredno rezervacijo za Motion Supply Chain (SA). Vključite direct_booking_service_id za ustvarjanje takojšnje rezervacije.

Request Parameters

collection_date string required

Datum prevzema v formatu LLLL-MM-DD

collection_country string required

Koda države prevzema (ISO 3166-1 alpha-2)

collection_postcode string required

Poštna številka prevzema

collection_address_row_1 string required

Ulični naslov prevzema

collection_city string required

Mesto prevzema

collection_company_name string required

Ime podjetja pošiljatelja

collection_contact_name string required

Kontaktna oseba pošiljatelja

collection_contact_phone string required

Telefonska številka pošiljatelja

delivery_country string required

Koda države dostave

delivery_postcode string required

Poštna številka dostave

delivery_address_row_1 string required

Ulični naslov dostave

delivery_city string required

Mesto dostave

delivery_company_name string required

Ime podjetja prejemnika

delivery_contact_name string required

Kontaktna oseba prejemnika

delivery_contact_phone string required

Telefonska številka prejemnika

rows_attributes array required

Niz paketov/palet s količino, package_type, težo in opisom

options[direct_booking_service_id] integer

Motion Supply Chain (SA) ID storitve za neposredno rezervacijo

Example: Direct Booking Request

{
  "collection_date": "2026-02-15",
  "collection_country": "DE",
  "collection_postcode": "10115",
  "collection_address_row_1": "Hauptstraße 123",
  "collection_city": "Berlin",
  "collection_company_name": "Demo GmbH",
  "collection_contact_name": "Max Mustermann",
  "collection_contact_phone": "+4930123456",
  "delivery_country": "SE",
  "delivery_postcode": "11122",
  "delivery_address_row_1": "Drottninggatan 45",
  "delivery_city": "Stockholm",
  "delivery_company_name": "Demo Sweden AB",
  "delivery_contact_name": "Erik Andersson",
  "delivery_contact_phone": "+46812345678",
  "rows_attributes": [
    {
      "quantity": 1,
      "package_type": "EUR",
      "weight": 100.0,
      "description": "Goods on EUR pallet"
    }
  ],
  "options": {
    "direct_booking_service_id": 1234
  }
}

Example Response

{
  "id": 12345,
  "reference": "CG12345",
  "status": "booked",
  "latest_status": "confirmed",
  "tracking_reference": "ABC1234567890",
  "tracking_url": "https://tracking.carrier.com/ABC1234567890",
  "label_url": "https://www.cargoson.com/labels/abc123.pdf",
  "confirmed_at": "2026-02-15T10:30:00Z"
}

Generiranje nalepk

Motion Supply Chain (SA) nalepke za pošiljanje se samodejno generirajo, ko ustvarite rezervacijo. Nalepke so na voljo v več formatih za podporo različnim vrstam tiskalnikov.

Podprti formati nalepk

a4 - A4 PDF format za namizne tiskalnike (4 nalepke na stran)
label_printer - 4x6in (~10x15cm) PDF format za termične tiskalnike

Nalepke so vključene v odgovor rezervacije preko polja label_url. Prenesite in natisnite nalepko iz priloženega URL-ja po rezervaciji.

Motion Supply Chain (SA) API za cene (tovorne cene)

Cargoson motor
Cargoson izboljšava:

Motion Supply Chain (SA) ne zagotavlja izvornega API za cene. Cargosonov motor za tovorne cene izračuna cene z uporabo vaših naloženih cenovnih dogovorov, kar vam zagotavlja enako izkušnjo API kot prevozniki z izvornimi API-ji za cene. Naložite lahko cene prevoznikov v katerem koli formatu (Excel, PDF, celo ročno napisane cenike) in mi jih bomo digitalizirali.

Pridobite Motion Supply Chain (SA) tovorne cene v realnem času pred rezervacijo. Rate API vrne razpoložljive storitve, cene in ocenjene čase dostave.

POST /freightPrices/list

Pridobite ponudbe za tovorne cene od Motion Supply Chain (SA) in drugih aktiviranih prevoznikov na vašem računu.

Request Parameters

collection_date string required

Datum prevzema v formatu LLLL-MM-DD

collection_country string required

Koda države prevzema (ISO 3166-1 alpha-2)

collection_postcode string required

Poštna številka prevzema

delivery_country string required

Koda države dostave

delivery_postcode string required

Poštna številka dostave

rows_attributes array required

Niz paketov/palet s količino, package_type, težo in opisom

Example Request

{
  "collection_date": "2026-02-15",
  "collection_postcode": "10115",
  "collection_country": "DE",
  "collection_with_tail_lift": true,
  "collection_prenotification": true,
  "delivery_postcode": "11122",
  "delivery_country": "SE",
  "delivery_with_tail_lift": true,
  "delivery_prenotification": true,
  "delivery_return_document": true,
  "delivery_to_private_person": true,
  "frigo": true,
  "adr": false,
  "rows_attributes": [
    {
      "quantity": 1,
      "package_type": "EUR",
      "weight": 100.0,
      "description": "Goods on EUR pallet"
    },
    {
      "quantity": 2,
      "package_type": "FIN",
      "weight": 300.0,
      "description": "Goods on two FIN pallets"
    }
  ],
  "request_external_partners": false
}

Example Response

{
  "status": 200,
  "object": {
    "prices": [
      {
        "carrier": "Motion Supply Chain",
        "reg_no": "4030024412",
        "id": 5104,
        "service": "Main",
        "service_id": 85,
        "price": "19.13",
        "unit": "payable_weight",
        "type": "price_list"
      },
      {
        "carrier": "Motion Supply Chain",
        "reg_no": "4030024412",
        "id": 5104,
        "service": "Express Service",
        "service_id": 123,
        "price": "32.50",
        "unit": "real_weight",
        "type": "online"
      },
      {
        "carrier": "Demo Logistics GmbH",
        "reg_no": "87654321",
        "id": 456,
        "service": "Main",
        "service_id": 555,
        "price": "20.00",
        "unit": "payable_weight",
        "type": "price_list"
      }
    ]
  }
}

Motion Supply Chain (SA) API za sledenje

Cargoson avtomatizacija
Cargoson izboljšava:

Motion Supply Chain (SA) ne zagotavlja dogodkov sledenja preko API. Cargoson zagotavlja portal za sledenje, kjer lahko prevoznik ročno posodobi status pošiljke, kar vam in vašim strankam zagotavlja dosledno izkušnjo sledenja.

Sledite Motion Supply Chain (SA) pošiljkam z uporabo Cargosonove referenčne številke. Pridobite trenutni status, posodobitve lokacije in ocenjeni čas dostave.

GET /bookings/{reference}

Pridobite podrobnosti sledenja za Motion Supply Chain (SA) pošiljko z uporabo Cargosonove referenčne številke rezervacije.

Example Response

{
  "reference": "CG12345",
  "status": "in_transit",
  "latest_status": "collected",
  "tracking_reference": "ABC1234567890",
  "tracking_url": "https://tracking.carrier.com/ABC1234567890",
  "confirmed_at": "2026-02-15T10:30:00Z",
  "collected_at": "2026-02-15T14:20:00Z",
  "estimated_delivery": "2026-02-18T16:00:00Z"
}

Motion Supply Chain (SA) API za nalepke za vračilo

Poganja Cargoson
Cargoson izboljšava:

Motion Supply Chain (SA) izvorno ne podpira nalepk za vračilo. Cargoson generira nalepke za vračilo in upravlja proces povratne logistike preko naše platforme.

Generirajte nalepke za vračilo pošiljanja za Motion Supply Chain (SA) pošiljke. Nalepke za vračilo omogočajo strankam, da vrnejo artikle z vnaprej plačanim pošiljanjem.

POST /bookings/{reference}/return_labels

Ustvarite nalepko za vračilo za obstoječo Motion Supply Chain (SA) pošiljko.

Request Parameters

label_format string

Format nalepke: a4 ali label_printer (privzeto: a4)

Example Request

{
  "label_format": "a4"
}

Example Response

{
  "return_label_url": "https://www.cargoson.com/labels/return_abc123.pdf",
  "tracking_reference": "RETURN9876543210",
  "tracking_url": "https://tracking.carrier.com/RETURN9876543210"
}

Funkcije nalepk za vračilo

  • Vnaprej plačane nalepke za vračilo pošiljanja
  • Enake možnosti formata kot pri odhodnih nalepkah (A4, termični)
  • Ločena referenca za sledenje za vračila
  • Brezhibna integracija s Motion Supply Chain (SA) storitvami za vračilo

Motion Supply Chain (SA) zahteve za kurirja

Cargoson avtomatizacija

Cargoson avtomatizira zahteve za prevzem kurirja za Motion Supply Chain (SA) pošiljke, kar pomeni eno nalogo manj, o kateri morate razmišljati.

Kako Cargoson obravnava zahteve za kurirja

Številni prevozniki zahtevajo, da ustvarite nalepke ločeno in nato ročno zahtevate prevzem kurirja. Drugi nimajo ločenega sistema nalepk in klica kurirja, vsaka pošiljka je popolna, ločena pošiljka. Verjamemo, da bi moral obstajati en sam standard API-jev prevoznikov, vendar trenutno vsak prevoznik ustvarja svoj edinstven sistem, kar uporabnikom otežuje pomnjenje posebnosti in zapletenosti vsakega. Cargoson poenostavi vaše klice kurirjev z obravnavanjem vsake pošiljke celostno: zahteve za kurirje se samodejno upravljajo kot del procesa rezervacije.

Pametna optimizacija prevzema

Cargoson optimizira klice kurirjev za zmanjšanje stroškov in izboljšanje učinkovitosti.

  • 1. Konsolidacija serij - Več pošiljk z iste lokacije se združi v eno zahtevo za prevzem
  • 2. Obravnava specifična za prevoznika - Nekateri prevozniki vključujejo prevzem v rezervacijo, drugi zahtevajo ločene zahteve. Cargoson samodejno obravnava obe varianti za vas
  • 3. Redni urniki prevzemov - Konfigurirajte vnaprej načrtovane prevzeme v določenih intervalih (npr. dnevno v mojo glavno skladišče ob 15:00) in Cargoson bo popolnoma preskočil posamezne klice kurirjev

Prednosti

  • Ni potrebe po sledenju, kateri prevozniki zahtevajo ločene zahteve za kurirja
  • Samodejna optimizacija preprečuje nepotrebne klice za prevzem
  • Podpora za redne urnike prevzemov
  • Poenostavljen potek dela pošiljanja - samo ustvarite rezervacijo

Konfiguracija

Avtomatizacija prevzema kurirja je privzeto omogočena za vse Motion Supply Chain (SA) pošiljke. Za konfiguracijo rednih urnikov prevzemov ali pravil za optimizacijo po meri kontaktirajte [email protected].

Motion Supply Chain (SA) API za storitve

Cargoson motor
Cargoson izboljšava:

API za storitve je funkcija, ki jo zagotavlja Cargoson in vrne enotni seznam vseh razpoložljivih storitev od Motion Supply Chain (SA) in drugih prevoznikov v vašem omrežju. To vam omogoča dinamičen prikaz možnosti pošiljanja vašim strankam brez trdega kodiranja ID-jev storitev.

Pridobite seznam razpoložljivih Motion Supply Chain (SA) storitev pošiljanja. Uporabite ID-je storitev pri neposrednih rezervacijah, da zagotovite, da dobite točno storitev, ki jo želite.

GET /services/list

Vrni seznam Motion Supply Chain (SA) storitev, ki so na voljo na računu vašega podjetja.

Example Response

{
  "services": [
    {
      "carrier": {
        "id": 5104,
        "name": "Motion Supply Chain",
        "short_name": "Motion Supply Chain (SA)",
        "reg_no": "4030024412"
      },
      "id": 85,
      "name": "Main",
      "service_type": "road_freight"
    },
    {
      "carrier": {
        "id": 5104,
        "name": "Motion Supply Chain",
        "short_name": "Motion Supply Chain (SA)",
        "reg_no": "4030024412"
      },
      "id": 123,
      "name": "Express Service",
      "service_type": "express"
    }
  ]
}

Uporaba ID-jev storitev

ID-je storitev iz te končne točke lahko uporabite s parametrom direct_booking_service_id pri ustvarjanju rezervacij za izbiro prave storitve in pošiljanje pošiljke v sistem Motion Supply Chain (SA).

Popolni primeri kode

Spodaj so popolni delujoči primeri, ki prikazujejo celoten potek dela: pridobite cene, izberite storitev, rezervirajte pošiljko in pridobite informacije o sledenju.

# Define the service ID you want to use
CARRIER_SERVICE_ID=85

# Step 1: Get freight prices for Motion Supply Chain (SA)
curl -X POST https://www.cargoson.com/api/v1/freightPrices/list \
  -H "Content-Type: application/json" \
  -H "Accept: application/vnd.api.v1" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "collection_date": "2026-02-15",
    "collection_country": "DE",
    "collection_postcode": "10115",
    "delivery_country": "SE",
    "delivery_postcode": "11122",
    "rows_attributes": [{
      "quantity": 1,
      "package_type": "EUR",
      "weight": 100.0,
      "description": "Goods on EUR pallet"
    }]
  }'

# Extract the price for your service from response:
# transport_price=$(echo "$response" | jq '.object.prices[] | select(.service_id==85) | .price')

# Step 2: Book shipment using the service_id
curl -X POST https://www.cargoson.com/api/v1/queries \
  -H "Content-Type: application/json" \
  -H "Accept: application/vnd.api.v1" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "collection_date": "2026-02-15",
    "collection_country": "DE",
    "collection_postcode": "10115",
    "collection_address_row_1": "Hauptstraße 123",
    "collection_city": "Berlin",
    "collection_company_name": "Demo GmbH",
    "collection_contact_name": "Max Mustermann",
    "collection_contact_phone": "+4930123456",
    "delivery_country": "SE",
    "delivery_postcode": "11122",
    "delivery_address_row_1": "Drottninggatan 45",
    "delivery_city": "Stockholm",
    "delivery_company_name": "Demo Sweden AB",
    "delivery_contact_name": "Erik Andersson",
    "delivery_contact_phone": "+46812345678",
    "rows_attributes": [{
      "quantity": 1,
      "package_type": "EUR",
      "weight": 100.0,
      "description": "Goods on EUR pallet"
    }],
    "options": {
      "direct_booking_service_id": '$CARRIER_SERVICE_ID'
    }
  }'

# Response contains:
# - reference: "CG12345"
# - tracking_url: "https://tracking.carrier.com/..."
# - label_url: "https://www.cargoson.com/labels/abc123.pdf"
const axios = require('axios');

const API_KEY = 'YOUR_API_KEY';
const BASE_URL = 'https://www.cargoson.com/api/v1';
const CARRIER_SERVICE_ID = 85;

async function bookToMotionSupplyChain(SA)() {
  try {
    // Step 1: Get freight prices
    const pricesResponse = await axios.post(`${BASE_URL}/freightPrices/list`, {
      collection_date: '2026-02-15',
      collection_country: 'DE',
      collection_postcode: '10115',
      delivery_country: 'SE',
      delivery_postcode: '11122',
      rows_attributes: [{
        quantity: 1,
        package_type: 'EUR',
        weight: 100.0,
        description: 'Goods on EUR pallet'
      }]
    }, {
      headers: {
        'Content-Type': 'application/json',
        'Accept': 'application/vnd.api.v1',
        'Authorization': `Bearer ${API_KEY}`
      }
    });

    // Step 2: Find service by ID and extract price
    const prices = pricesResponse.data.object.prices;
    const selectedService = prices.find(p => p.service_id === CARRIER_SERVICE_ID);

    if (!selectedService) {
      throw new Error(`Service ID ${CARRIER_SERVICE_ID} not found in prices`);
    }

    const transportPrice = selectedService.price;
    console.log(`Selected service price: €${transportPrice}`);

    // Step 3: Book shipment using the service_id
    const bookingResponse = await axios.post(`${BASE_URL}/queries`, {
      collection_date: '2026-02-15',
      collection_country: 'DE',
      collection_postcode: '10115',
      collection_address_row_1: 'Hauptstraße 123',
      collection_city: 'Berlin',
      collection_company_name: 'Demo GmbH',
      collection_contact_name: 'Max Mustermann',
      collection_contact_phone: '+4930123456',
      delivery_country: 'SE',
      delivery_postcode: '11122',
      delivery_address_row_1: 'Drottninggatan 45',
      delivery_city: 'Stockholm',
      delivery_company_name: 'Demo Sweden AB',
      delivery_contact_name: 'Erik Andersson',
      delivery_contact_phone: '+46812345678',
      rows_attributes: [{
        quantity: 1,
        package_type: 'EUR',
        weight: 100.0,
        description: 'Goods on EUR pallet'
      }],
      options: {
        direct_booking_service_id: CARRIER_SERVICE_ID
      }
    }, {
      headers: {
        'Content-Type': 'application/json',
        'Accept': 'application/vnd.api.v1',
        'Authorization': `Bearer ${API_KEY}`
      }
    });

    // Extract important fields
    const reference = bookingResponse.data.reference;
    const trackingUrl = bookingResponse.data.tracking_url;
    const labelUrl = bookingResponse.data.label_url;

    console.log('Shipment booked successfully!');
    console.log(`Reference: ${reference}`);
    console.log(`Tracking: ${trackingUrl}`);
    console.log(`Label: ${labelUrl}`);

    return { reference, trackingUrl, labelUrl };
  } catch (error) {
    console.error('Error:', error.response?.data || error.message);
  }
}

// Usage
bookToMotionSupplyChain(SA)();
import requests

API_KEY = 'YOUR_API_KEY'
BASE_URL = 'https://www.cargoson.com/api/v1'
CARRIER_SERVICE_ID = 85

def book_to_motion_supply_chain__sa_():
    headers = {
        'Content-Type': 'application/json',
        'Accept': 'application/vnd.api.v1',
        'Authorization': f'Bearer {API_KEY}'
    }

    # Step 1: Get freight prices
    prices_data = {
        'collection_date': '2026-02-15',
        'collection_country': 'DE',
        'collection_postcode': '10115',
        'delivery_country': 'SE',
        'delivery_postcode': '11122',
        'rows_attributes': [{
            'quantity': 1,
            'package_type': 'EUR',
            'weight': 100.0,
            'description': 'Goods on EUR pallet'
        }]
    }

    prices_response = requests.post(
        f'{BASE_URL}/freightPrices/list',
        headers=headers,
        json=prices_data
    )
    prices_response.raise_for_status()

    # Step 2: Find service by ID and extract price
    prices = prices_response.json()['object']['prices']
    selected_service = next(
        (p for p in prices if p['service_id'] == CARRIER_SERVICE_ID),
        None
    )

    if not selected_service:
        raise ValueError(f'Service ID {CARRIER_SERVICE_ID} not found in prices')

    transport_price = selected_service['price']
    print(f'Selected service price: €{transport_price}')

    # Step 3: Book shipment using the service_id
    booking_data = {
        'collection_date': '2026-02-15',
        'collection_country': 'DE',
        'collection_postcode': '10115',
        'collection_address_row_1': 'Hauptstraße 123',
        'collection_city': 'Berlin',
        'collection_company_name': 'Demo GmbH',
        'collection_contact_name': 'Max Mustermann',
        'collection_contact_phone': '+4930123456',
        'delivery_country': 'SE',
        'delivery_postcode': '11122',
        'delivery_address_row_1': 'Drottninggatan 45',
        'delivery_city': 'Stockholm',
        'delivery_company_name': 'Demo Sweden AB',
        'delivery_contact_name': 'Erik Andersson',
        'delivery_contact_phone': '+46812345678',
        'rows_attributes': [{
            'quantity': 1,
            'package_type': 'EUR',
            'weight': 100.0,
            'description': 'Goods on EUR pallet'
        }],
        'options': {
            'direct_booking_service_id': CARRIER_SERVICE_ID
        }
    }

    booking_response = requests.post(
        f'{BASE_URL}/queries',
        headers=headers,
        json=booking_data
    )
    booking_response.raise_for_status()
    booking = booking_response.json()

    # Extract important fields
    reference = booking['reference']
    tracking_url = booking['tracking_url']
    label_url = booking['label_url']

    print('Shipment booked successfully!')
    print(f'Reference: {reference}')
    print(f'Tracking: {tracking_url}')
    print(f'Label: {label_url}')

    return {
        'reference': reference,
        'tracking_url': tracking_url,
        'label_url': label_url
    }

# Usage
if __name__ == '__main__':
    book_to_motion_supply_chain__sa_()
<?php
$apiKey = 'YOUR_API_KEY';
$baseUrl = 'https://www.cargoson.com/api/v1';

define('CARRIER_SERVICE_ID', 85);

function bookToMotionSupplyChainSA($apiKey, $baseUrl) {
    $headers = [
        'Content-Type: application/json',
        'Accept: application/vnd.api.v1',
        'Authorization: Bearer ' . $apiKey
    ];

    // Step 1: Get freight prices
    $pricesData = [
        'collection_date' => '2026-02-15',
        'collection_country' => 'DE',
        'collection_postcode' => '10115',
        'delivery_country' => 'SE',
        'delivery_postcode' => '11122',
        'rows_attributes' => [[
            'quantity' => 1,
            'package_type' => 'EUR',
            'weight' => 100.0,
            'description' => 'Goods on EUR pallet'
        ]]
    ];

    $ch = curl_init($baseUrl . '/freightPrices/list');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($pricesData));
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

    $pricesResponse = curl_exec($ch);
    curl_close($ch);
    $prices = json_decode($pricesResponse, true)['object']['prices'];

    // Step 2: Find service by ID and extract price
    $selectedService = null;
    foreach ($prices as $price) {
        if ($price['service_id'] === CARRIER_SERVICE_ID) {
            $selectedService = $price;
            break;
        }
    }

    if (!$selectedService) {
        throw new Exception('Service ID ' . CARRIER_SERVICE_ID . ' not found in prices');
    }

    $transportPrice = $selectedService['price'];
    echo "Selected service price: €$transportPrice
";

    // Step 3: Book shipment using the service_id
    $bookingData = [
        'collection_date' => '2026-02-15',
        'collection_country' => 'DE',
        'collection_postcode' => '10115',
        'collection_address_row_1' => 'Hauptstraße 123',
        'collection_city' => 'Berlin',
        'collection_company_name' => 'Demo GmbH',
        'collection_contact_name' => 'Max Mustermann',
        'collection_contact_phone' => '+4930123456',
        'delivery_country' => 'SE',
        'delivery_postcode' => '11122',
        'delivery_address_row_1' => 'Drottninggatan 45',
        'delivery_city' => 'Stockholm',
        'delivery_company_name' => 'Demo Sweden AB',
        'delivery_contact_name' => 'Erik Andersson',
        'delivery_contact_phone' => '+46812345678',
        'rows_attributes' => [[
            'quantity' => 1,
            'package_type' => 'EUR',
            'weight' => 100.0,
            'description' => 'Goods on EUR pallet'
        ]],
        'options' => [
            'direct_booking_service_id' => CARRIER_SERVICE_ID
        ]
    ];

    $ch = curl_init($baseUrl . '/queries');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($bookingData));
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

    $bookingResponse = curl_exec($ch);
    curl_close($ch);
    $booking = json_decode($bookingResponse, true);

    // Extract important fields
    $reference = $booking['reference'];
    $trackingUrl = $booking['tracking_url'];
    $labelUrl = $booking['label_url'];

    echo "Shipment booked successfully!
";
    echo "Reference: $reference
";
    echo "Tracking: $trackingUrl
";
    echo "Label: $labelUrl
";

    return [
        'reference' => $reference,
        'tracking_url' => $trackingUrl,
        'label_url' => $labelUrl
    ];
}

// Usage
bookToMotionSupplyChainSA($apiKey, $baseUrl);
?>
require 'net/http'
require 'json'

API_KEY = 'YOUR_API_KEY'
BASE_URL = 'https://www.cargoson.com/api/v1'
CARRIER_SERVICE_ID = 85

def book_to_motion_supply_chain__sa_
  headers = {
    'Content-Type' => 'application/json',
    'Accept' => 'application/vnd.api.v1',
    'Authorization' => "Bearer #{API_KEY}"
  }

  # Step 1: Get freight prices
  prices_uri = URI("#{BASE_URL}/freightPrices/list")
  prices_data = {
    collection_date: '2026-02-15',
    collection_country: 'DE',
    collection_postcode: '10115',
    delivery_country: 'SE',
    delivery_postcode: '11122',
    rows_attributes: [{
      quantity: 1,
      package_type: 'EUR',
      weight: 100.0,
      description: 'Goods on EUR pallet'
    }]
  }

  http = Net::HTTP.new(prices_uri.host, prices_uri.port)
  http.use_ssl = true

  prices_request = Net::HTTP::Post.new(prices_uri)
  headers.each { |k, v| prices_request[k] = v }
  prices_request.body = prices_data.to_json

  prices_response = http.request(prices_request)
  prices = JSON.parse(prices_response.body)['object']['prices']

  # Step 2: Find service by ID and extract price
  selected_service = prices.find { |p| p['service_id'] == CARRIER_SERVICE_ID }

  raise "Service ID #{CARRIER_SERVICE_ID} not found in prices" unless selected_service

  transport_price = selected_service['price']
  puts "Selected service price: €#{transport_price}"

  # Step 3: Book shipment using the service_id
  booking_uri = URI("#{BASE_URL}/queries")
  booking_data = {
    collection_date: '2026-02-15',
    collection_country: 'DE',
    collection_postcode: '10115',
    collection_address_row_1: 'Hauptstraße 123',
    collection_city: 'Berlin',
    collection_company_name: 'Demo GmbH',
    collection_contact_name: 'Max Mustermann',
    collection_contact_phone: '+4930123456',
    delivery_country: 'SE',
    delivery_postcode: '11122',
    delivery_address_row_1: 'Drottninggatan 45',
    delivery_city: 'Stockholm',
    delivery_company_name: 'Demo Sweden AB',
    delivery_contact_name: 'Erik Andersson',
    delivery_contact_phone: '+46812345678',
    rows_attributes: [{
      quantity: 1,
      package_type: 'EUR',
      weight: 100.0,
      description: 'Goods on EUR pallet'
    }],
    options: {
      direct_booking_service_id: CARRIER_SERVICE_ID
    }
  }

  booking_request = Net::HTTP::Post.new(booking_uri)
  headers.each { |k, v| booking_request[k] = v }
  booking_request.body = booking_data.to_json

  booking_response = http.request(booking_request)
  booking = JSON.parse(booking_response.body)

  # Extract important fields
  reference = booking['reference']
  tracking_url = booking['tracking_url']
  label_url = booking['label_url']

  puts 'Shipment booked successfully!'
  puts "Reference: #{reference}"
  puts "Tracking: #{tracking_url}"
  puts "Label: #{label_url}"

  {
    reference: reference,
    tracking_url: tracking_url,
    label_url: label_url
  }
end

# Usage
book_to_motion_supply_chain__sa_

Zakaj uporabiti Cargoson API za Motion Supply Chain (SA) integracijo

Neposredna integracija z izvornim API-jem Motion Supply Chain (SA) pomeni spopadanje s specifično dokumentacijo prevoznika, obravnavanje edinstvenih formatov podatkov in vzdrževanje ločene kode za vsakega ponudnika. Cargoson ponuja en sam enotni RESTful API, ki podpira Motion Supply Chain (SA) in 2.000+ prevoznikov na evropskih in severnoameriških trgih, z novimi integracijami, ki se dodajajo tedensko. Skrajšamo razvojni čas z mesecev na dni, samodejno obravnavamo posodobitve prevoznikov in upravljamo regionalne izjeme. S Cargosonom se osredotočite na rast svojega poslovanja namesto na upravljanje tehničnih zapletenosti prevoznikov.

Prednosti integracije Motion Supply Chain (SA) preko Cargoson API

En API za vse prevoznike

Zamenjajte desetine ločenih integracij prevoznikov z eno povezavo do Motion Supply Chain (SA) in 2.000+ drugih ponudnikov preko Cargoson API. Ni več vzdrževanja več sistemov avtentikacije, obravnavanja različnih formatov podatkov ali posodabljanja kode, ko prevozniki spremenijo svoje končne točke.

Jasna dokumentacija in podpora

Dostop do jasne API dokumentacije z delujočimi primeri kode, podrobnimi opisi parametrov in jasno opredeljenimi končnimi točkami. Naša ekipa za podporo pozna logistično industrijo in vam lahko pomaga hitro rešiti izzive integracije.

Primeri kode v več jezikih

Začnite takoj z uporabnimi primeri kode v cURL, JavaScript, Python, PHP in Ruby. Kopirajte, prilepite in prilagodite jih svojemu skladu, ni potrebe po ugotavljanju avtentikacije, oblikovanja zahtev ali obravnavanja napak od začetka.

Prava podpora logističnih strokovnjakov

Pridobite pomoč ljudi, ki razumejo pošiljanje, ne samo API-je. Ne glede na to, ali odpravljate težave z integracijo ali potrebujete nasvet o najboljšem načinu obravnavanja mednarodnih pošiljk, je naša ekipa tukaj, da vam pomaga.

Najbolj napreden motor za tovorne cene na svetu

Cargosonov API za tovorne cene gre daleč preko preprostih iskanj cen. Naš motor lahko prebere, analizira in digitalizira kateri koli cenik prevoznika ne glede na format ali strukturo, kar ga naredi za najmočnejšo rešitev za upravljanje tovornih cen v logistični industriji.

Univerzalna podpora formatov

Naš motor za tovorne cene obravnava kateri koli format: strukturirane Excel datoteke, kompleksne PDF-je, prosto besedilo ali celo ročno napisane cenike. Naložite svoje pogodbe s prevozniki v katerem koli formatu in naš motor za tovorne cene bo samodejno razčlenil pravila za določanje cen, doplačila in pogoje.

Neposredna integracija API prevoznika

Za prevoznike s sodobnimi sistemi (običajno globalni paketni prevozniki in tehnološko napredna tovorna podjetja) pridobivamo cene neposredno iz njihovih API-jev v realnem času. To zagotavlja, da vedno dobite najnovejše cene brez ročnih posodobitev.

Javne spletne cene

Še nimate pogodbe s prevoznikom? Ni problema. Cargoson lahko pridobi javne spletne cene od prevoznikov, kar vam omogoča primerjavo možnosti še preden vzpostavite formalne dogovore.

Zahteve za spot cene

Za kompleksne pošiljke ali posebne primere zahtevajte spot cene, kjer prevozniki pregledajo vaše specifične zahteve in zagotovijo ponudbo po meri. Vse upravljano preko istega enotnega API-ja.

Motion Supply Chain (SA) API za pošiljanje: Poenostavljena avtomatizacija logistike

Avtomatizirajte svoj proces izpolnjevanja z integracijo Cargosonovega API za pošiljanje z Motion Supply Chain (SA) in 2.000+ prevozniki po vsem svetu. Ustvarite nalepke za pošiljanje, rezervirajte prevzeme in upravljajte vse svoje prevoznike z ene platforme, hkrati pa ohranite svoje dogovorjene cene z vsakim ponudnikom.

Avtomatizirano generiranje nalepk

Generirajte nalepke za pošiljanje, ki jih odobri prevoznik, v eni sami API zahtevi. Podpora za več formatov nalepk (A4, termični tiskalnik) in samodejna carinska dokumentacija za mednarodne pošiljke pomeni manj ročnega dela in manj napak pri pošiljanju.

Primerjava cen v realnem času

Primerjajte cene v živo med Motion Supply Chain (SA) in vašimi drugimi aktiviranimi prevozniki, da izberete najboljšo možnost glede na stroške, hitrost in raven storitve.

Ohranite svoje dogovorjene cene

Povežite svoj obstoječi Motion Supply Chain (SA) račun, da ohranite svoje dogovorjene cene pošiljanja. Cargoson preprosto zagotavlja tehnično integracijo: ohranite svoje neposredne odnose s prevozniki in dogovore o cenah po meri.

Varnost podjetniške ravni za Motion Supply Chain (SA) API integracijo

Cargosonova API infrastruktura izpolnjuje evropske standarde skladnosti, ki zagotavljajo varno, revizijsko pripravljeno Motion Supply Chain (SA) integracijo za vaše podjetje:

  • GDPR skladno ravnanje in shranjevanje podatkov po Evropi
  • ISO 27001 certificirano upravljanje informacijske varnosti
  • Šifriranje od konca do konca za vse API komunikacije

Pripravljeni integrirati Motion Supply Chain (SA) pošiljanje v vašo platformo?

Rezervirajte predstavitev, da vidite, kako lahko Cargosonov enotni API poenostavi vaše logistične operacije

Rezerviraj predstavitev

Pogosto zastavljena vprašanja

Cargoson je TMS (sistem za upravljanje prevozov) za evropske in severnoameriške proizvajalce. Naša osrednja vizija je preprostost: integrirajte vse prevoznike in načine tovora (cestni, paketni, zračni, morski, železniški) v eno okno in en API. Ne glede na to, ali pošiljate palete po Evropi ali kontejnerje čez morje, upravljajte vse z ene platforme.

Začetek je preprost. Najprej se registrirajte za Cargoson račun in pridobite svoj API ključ. Nato povežite svoj Motion Supply Chain (SA) račun v Cargosonovi nadzorni plošči. Ko je to opravljeno, lahko začnete izvajati API zahteve z uporabo naše dokumentacije in primerov kode. Celotna nastavitev običajno traja manj kot eno uro.

Da, potrebovali boste svoj Motion Supply Chain (SA) račun za uporabo Motion Supply Chain (SA) storitev preko Cargosona. To zagotavlja, da ohranite svoje dogovorjene cene in vzdržujete svoj neposredni odnos z Motion Supply Chain (SA). Cargoson preprosto zagotavlja tehnično integracijski sloj, ki olajša delo z Motion Supply Chain (SA) in drugimi prevozniki preko enega enotnega API-ja.

Cargoson deluje na preglednem modelu mesečne naročnine brez provizij ali stroškov na pošiljko, nikoli. Vaš načrt vključuje dostop do API, dokumentacijo, podporo in samodejne posodobitve, ko prevozniki spremenijo svoje sisteme. Motion Supply Chain (SA) plačate neposredno za pošiljanje po vaših dogovorjenih cenah. Brez skritih stroškov, brez presenečenj.

Absolutno! To je glavna prednost uporabe Cargosona. Ko integrirate naš API, lahko delate z Motion Supply Chain (SA) in 2.000+ drugimi prevozniki z uporabo istih končnih točk, avtentikacije in formatov podatkov. Dodajte nove prevoznike brez pisanja nove integracijske kode, samo aktivirajte jih v svoji Cargosonovi nadzorni plošči.

Da! Integriramo katerega koli prevoznika, ki ga potrebujete, brez dodatnih stroškov. To je vključeno v vašo Cargoson naročnino. Samo nas predstavite svojim kontaktom prevoznika in mi bomo obravnavali tehnično integracijo. Nove integracije se dodajajo dnevno na podlagi zahtev strank.

Da, lahko nastavimo webhooks za obveščanje vašega sistema na podlagi dogodkov in sprožilcev v Cargosonu, kot so posodobitve statusa pošiljke, potrditve rezervacij ali spremembe vaših pošiljk. Kontaktirajte našo ekipo za podporo ali rezervirajte predstavitev za razpravo o vaših zahtevah in nastavitvi webhooks.

Cargoson je morda preveč, če ste majhno podjetje, ki pošilja le nekajkrat na mesec z enim prevoznikom. Te pošiljke lahko verjetno dobro upravljate brez TMS. Prav tako nismo prava izbira, če ste prevoznik ali špediter. Cargoson je zgrajen posebej za lastnike tovora (BCO), kot so proizvajalci in distributerji, ki posedujejo blago, ki se pošilja. Če iščete TMS za upravljanje svojega posredovalnega poslovanja ali operacij prevoznika, nismo zasnovani za ta primer uporabe.

Naš API vrača jasna sporočila o napakah s specifičnimi kodami napak in opisi. Pogoste težave so dokumentirane z rešitvami v naši dokumentaciji za razvijalce. Če obtičite, lahko naša ekipa za podporo pomaga pri odpravljanju težav z integracijo.

Izvajamo razumne omejitve hitrosti za zagotavljanje stabilnosti sistema za vse stranke. Obstajajo tako dolgoročne omejitve hitrosti kot omejitve sunkov, z vrednostmi, ki bi morale biti več kot dovolj za večino podjetij. Če potrebujete višje omejitve za operacije podjetniške ravni, nas kontaktirajte za razpravo o omejitvi po meri za vaš račun.

Začnite uporabljati Motion Supply Chain (SA) API

Pridobite svoje API poverilnice za začetek integracije

Pridobite svoj API ključ