BoxLatviaIzstrādātājiem
Pieprasīt piekļuvi
Pamācības

Darba sākšana

Šī lapa aizvedīs jūs no nulles līdz telpai, kas gaida izskatīšanu. Tajā ir īsti pieprasījumi un īstas API atbildes.

Vispirms vajadzīgi piekļuves dati. Viss turpmākais izmanto vietturus:

Shell
export API="https://api.boxlatvia.lv"
export CLIENT_ID="bxc_..."       # BoxLatvia izsniegtais client ID
export CLIENT_SECRET="bxs_..."   # noslēpums, kas tika parādīts vienreiz
  1. #Saņemiet piekļuves datus

    Piekļuves datus izsniedz BoxLatvia, vienam piegādātājam. Katrā komplektā ir client ID (publisks), noslēpums (tiek parādīts vienreiz, glabājiet to kā paroli) un tiesību saraksts. Pieprasiet atsevišķus piekļuves datus katrai savienotajai sistēmai, lai katru varētu atsaukt atsevišķi. Kā pieprasīt piekļuvi.

  2. #Veiciet pirmo izsaukumu

    Pārbaudiet, vai jūsu piekļuves dati darbojas. Atbilde parāda, kas jūs esat, kādas tiesības jums ir un jūsu piegādātāja profilu.

    Kas es esmu
    curl "$API/v1/me" \
      -u "$CLIENT_ID:$CLIENT_SECRET"
    200 OK
    {
      "client": {
        "client_id": "bxc_8F2ZPMcAmQZzr243",
        "scopes": [
          "reference:read",
          "supplier:read",
          "supplier:write",
          "locations:read",
          "locations:write",
          "boxes:read",
          "boxes:write",
          "images:write"
        ]
      },
      "supplier": {
        "id": "9fbb9ba2-6be5-4ae3-9b54-9fd36e889130",
        "name": "Imanta Storage SIA",
        "reg_nr": "40103456789",
        "vat_reg_nr": "LV40103456789",
        "address": "Kurzemes prospekts 1",
        "address_city": "Rīga",
        "address_country": "Latvija",
        "country": "LV",
        "person_type": "legal",
        "contact_person_name": "Anna Bērziņa",
        "contact_person_email": "anna@imantastorage.example",
        "contact_person_phone": "+371 20000000",
        "created_at": "2026-11-07T09:30:12.418Z",
        "updated_at": "2026-11-07T09:30:12.418Z"
      }
    }
  3. #Noskaidrojiet vajadzīgos kodus

    Ērtības, rajoni un cenas mērvienības tiek sūtīti kā stabili kodi. Iegūstiet sarakstus vienreiz un saglabājiet tos. Atsauces dati

    curl "$API/v1/reference/districts" \
      -u "$CLIENT_ID:$CLIENT_SECRET"
  4. #Izveidojiet lokāciju

    Lokācija ir vieta, kurā atrodas telpas. Obligāts ir tikai name; atbildes missing saraksts parāda, ko klienti vēl nevar redzēt. Lai lokāciju varētu atrast, vajadzīgas vismaz piecas ērtības (features).

    Lokācijas izveide
    curl -X POST "$API/v1/locations" \
      -u "$CLIENT_ID:$CLIENT_SECRET" \
      -H "Content-Type: application/json" \
      -H "Idempotency-Key: ebfa60c9-5887-4526-9615-2d2ebdd9a0ed" \
      -d '{
      "name": "Imanta noliktava",
      "external_id": "WH-IMANTA",
      "description": "Sausa, apsildāma noliktava ar 24/7 piekļuvi",
      "address": "Kurzemes prospekts 1, Rīga",
      "district": "riga-imanta",
      "latitude": 56.9496,
      "longitude": 24.0536,
      "features": [
        "24-7-piekluve",
        "apkure",
        "video-noverosana",
        "viedatslega",
        "autostavvieta"
      ]
    }'
    201 CreatedETag: W/"a15c541949287f3563009a45"Location: https://api.boxlatvia.lv/v1/locations/9d80d5f4-d17a-4f3e-99f6-4ab43b132bc3
    {
      "id": "9d80d5f4-d17a-4f3e-99f6-4ab43b132bc3",
      "external_id": "WH-IMANTA",
      "name": "Imanta noliktava",
      "description": "Sausa, apsildāma noliktava ar 24/7 piekļuvi",
      "address": "Kurzemes prospekts 1, Rīga",
      "district": "riga-imanta",
      "district_name": "Rīga - Imanta",
      "latitude": 56.9496,
      "longitude": 24.0536,
      "box_count": 0,
      "features": [
        "24-7-piekluve",
        "apkure",
        "autostavvieta",
        "video-noverosana",
        "viedatslega"
      ],
      "missing": [],
      "created_at": "2026-11-07T09:30:12.418Z",
      "updated_at": "2026-11-07T09:30:12.418Z"
    }
  5. #Izveidojiet telpu

    Norādiet telpas lokāciju pēc BoxLatvia identifikatora vai pēc sava identifikatora (location_external_id). Jaunas telpas sākas kā melnraksti.

    Telpas izveide
    curl -X POST "$API/v1/boxes" \
      -u "$CLIENT_ID:$CLIENT_SECRET" \
      -H "Content-Type: application/json" \
      -d '{
      "name": "Box 3 m²",
      "description": "Sausa un apsildāma telpa pirmajā stāvā",
      "location_external_id": "WH-IMANTA",
      "external_id": "SKU-3M",
      "price": 29.9,
      "price_unit": "menesi",
      "price_period_3": 79,
      "price_period_12": 290,
      "size": 3,
      "size_length": 2,
      "size_width": 1.5,
      "size_height": 2.4,
      "door_width": 0.9,
      "door_height": 2,
      "total_units": 10,
      "available_units": 10,
      "max_advance_days": 60,
      "features": [
        "apkure",
        "viedatslega"
      ]
    }'
    201 CreatedETag: W/"2daf00d492dd4f4cd82f2113"Location: https://api.boxlatvia.lv/v1/boxes/c4883b4a-4e38-47bf-8a69-ef025917e022
    {
      "id": "c4883b4a-4e38-47bf-8a69-ef025917e022",
      "external_id": "SKU-3M",
      "location_id": "9d80d5f4-d17a-4f3e-99f6-4ab43b132bc3",
      "name": "Box 3 m²",
      "description": "Sausa un apsildāma telpa pirmajā stāvā",
      "status": "DRAFT",
      "price": 29.9,
      "promotional_price": null,
      "price_period_1": null,
      "price_period_3": 79,
      "price_period_6": null,
      "price_period_12": 290,
      "price_unit": "menesi",
      "size": 3,
      "size_length": 2,
      "size_width": 1.5,
      "size_height": 2.4,
      "door_width": 0.9,
      "door_height": 2,
      "total_units": 10,
      "available_units": 10,
      "max_advance_days": 60,
      "features": [
        "apkure",
        "viedatslega"
      ],
      "missing": [],
      "created_at": "2026-11-07T09:30:12.418Z",
      "updated_at": "2026-11-07T09:30:12.418Z"
    }
  6. #Pievienojiet attēlus

    Augšupielādējiet JPEG, PNG, WebP vai GIF failus kā multipart/form-data, līdz 5 vienā pieprasījumā.

    Divu attēlu augšupielāde
    curl -X POST "$API/v1/boxes/c4883b4a-4e38-47bf-8a69-ef025917e022/images" \
      -u "$CLIENT_ID:$CLIENT_SECRET" \
      -F "file=@front.jpg" \
      -F "file=@inside.png"
    201 Created
    {
      "data": [
        {
          "id": "eb28418e-6710-4ba2-aee5-f15b53c02d8f",
          "url": "https://gnfvochksxcodgoqdgxx.supabase.co/storage/v1/object/public/box-images/sup-1/c4883b4a-4e38-47bf-8a69-ef025917e022/e8219951-043a-45bd-a9ee-0c75a6819510.png",
          "created_at": "2026-11-07T09:30:12.418Z"
        },
        {
          "id": "ae6e8d2e-da66-4026-bb04-9418e52a7c43",
          "url": "https://gnfvochksxcodgoqdgxx.supabase.co/storage/v1/object/public/box-images/sup-1/c4883b4a-4e38-47bf-8a69-ef025917e022/4f380fb3-d246-4c5b-b6d0-37d7fa8b5523.png",
          "created_at": "2026-11-07T09:30:12.418Z"
        }
      ]
    }
  7. #Iesniedziet izskatīšanai

    Kad telpai ir apraksts, cena un cenas mērvienība, izmērs un vismaz viena ērtība, lūdziet BoxLatvia to publicēt. API var tikai lūgt: izskata un publicē BoxLatvia darbinieki. Telpu jebkurā brīdī var atsaukt.

    Telpas iesniegšana
    curl -X POST "$API/v1/boxes/c4883b4a-4e38-47bf-8a69-ef025917e022/submit" \
      -u "$CLIENT_ID:$CLIENT_SECRET"
    200 OKETag: W/"052468fbc2a710d35f026e30"
    {
      "id": "c4883b4a-4e38-47bf-8a69-ef025917e022",
      "external_id": "SKU-3M",
      "location_id": "9d80d5f4-d17a-4f3e-99f6-4ab43b132bc3",
      "name": "Box 3 m²",
      "description": "Sausa un apsildāma telpa pirmajā stāvā",
      "status": "REVIEW",
      "price": 31.5,
      "promotional_price": null,
      "price_period_1": null,
      "price_period_3": 79,
      "price_period_6": null,
      "price_period_12": 290,
      "price_unit": "menesi",
      "size": 3,
      "size_length": 2,
      "size_width": 1.5,
      "size_height": 2.4,
      "door_width": 0.9,
      "door_height": 2,
      "total_units": 10,
      "available_units": 6,
      "max_advance_days": 60,
      "features": [
        "apkure",
        "viedatslega"
      ],
      "missing": [],
      "created_at": "2026-11-07T09:30:12.418Z",
      "updated_at": "2026-11-07T14:05:41.092Z"
    }

#Kas tālāk