Verdmarket
Pranešimai

Sveiki atvykę į Verdmarket!

Džiaugiamės galėdami jus pasveikinti mūsų platformoje! Sukurkite paskyrą, kad galėtumėte naudotis visu B2B katalogu. Naujiems vartotojams, užsiregistravusiems balandį — specialūs komisinių tarifai!

Registruotis

Verdmarket tiekėjo API

REST API produktų, atsargų, kainų ir užsakymų programiniam valdymui.

Bazinis URL

https://www.verdmarket.com.mature-black-wombat.65-108-70-81.cpanel.site/api/v1/supplier

Galimi galiniai taškai

Metodas Galinis taškas Aprašymas
GET/productsProduktų sąrašas
GET/products/{id}Produkto detalės
POST/productsSukurti produktą
POST/products/{id}Atnaujinti produktą
POST/products/{id}/deleteIštrinti produktą
GET/products/{id}/imagesProdukto nuotraukų sąrašas
POST/products/{id}/imagesPridėti nuotraukas per URL
POST/products/{id}/images/{imageId}/deleteIštrinti nuotrauką
POST/products/{id}/images/{imageId}/primaryNustatyti pagrindinę nuotrauką
POST/stockMasinis atsargų atnaujinimas
POST/pricesMasinis kainų atnaujinimas
GET/ordersUžsakymų sąrašas
GET/orders/{id}Užsakymo detalės
POST/orders/{id}/statusAtnaujinti užsakymo būseną
GET/categoriesKategorijų sąrašas

Autentifikacija

Visi API užklausos reikalauja Bearer žetono Authorization antraštėje.

Sugeneruokite API raktą skiltyje Tiekėjo skydelis → Parduotuvės profilis → API raktai.

Authorization: Bearer YOUR_API_KEY
Svarbu: API raktas rodomas tik vieną kartą sukūrimo metu. Saugokite jį saugiai. Raktai yra hašuojami mūsų serveriuose — mes negalime jų atkurti. Praradę atšaukite senąjį ir sukurkite naują.

Užklausų limitai

Numatytasis: 1000 užklausų per valandą vienam API raktui.

Limito informacija grąžinama atsakymo antraštėse:

AntraštėAprašymas
X-RateLimit-LimitMaksimalus užklausų skaičius per valandą
X-RateLimit-RemainingLikę užklausos dabartiniame lange
X-RateLimit-ResetUnix laiko žyma, kada langas atstatomas
Retry-AfterSekundės iki pakartotinio bandymo (tik prie 429)

Atsakymo formatas

Visi atsakymai yra JSON formatu. Sėkmingi atsakymai:

{
  "success": true,
  "data": { ... }
}

Klaidų atsakymai:

{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Name is required."
  }
}

Produktai

GET /products

Jūsų produktų sąrašas su puslapiavimu ir filtravimu.

Užklausos parametrai

ParametrasTipasAprašymas
pageintPuslapio numeris (numatytasis: 1)
per_pageintElementų puslapyje (maks.: 100, numatytasis: 20)
statusstringFiltras: active, inactive, pending
searchstringIeškoti pagal pavadinimą arba SKU

Atsakymo pavyzdys

{
  "success": true,
  "data": {
    "products": [
      {
        "id": 42,
        "name": "Red Roses Premium",
        "sku": "ROSE-RED-001",
        "type": "flower",
        "base_price": 2.50,
        "unit": "stem",
        "stock_qty": 500,
        "stock_status": "in_stock",
        "is_active": true,
        "is_approved": true,
        "category": { "id": 3, "name": "Roses" },
        "primary_image": "/uploads/products/rose-red.jpg"
      }
    ],
    "pagination": {
      "current_page": 1,
      "total_pages": 5,
      "total_items": 94,
      "per_page": 20
    }
  }
}
GET /products/{id}

Gauti vieną produktą su nuotraukomis ir variantais.

POST /products

Sukurti naują produktą. Nauji produktai reikalauja administratoriaus patvirtinimo prieš pasirodant kataloge.

Užklausos turinys (JSON)

LaukasTipasPrivalomasAprašymas
namestring*Produkto pavadinimas
category_idint*Kategorijos ID
base_pricefloat*Kaina EUR
unitstring*stiebas, puokštė, dėžė, pakuotė, vienetas, kilogramas, metras, ritinys
typestringflower (numatytasis) arba supply
descriptionstringProdukto aprašymas
skustringUnikalus SKU (tikrinamas dėl dublikatų)
stock_qtyintAtsargų kiekis (numatytasis: 0)
min_order_qtyintMinimalus užsakymo kiekis (numatytasis: 1)
colorstringProdukto spalva
stem_lengthintStiebo ilgis cm
country_of_originstringKilmės šalis
vat_ratefloatPVM tarifas % (numatytasis: 21)
image_urlstringNuotraukos URL. Palaikomi jpg, png, webp. Keli URL atskiriami kabliataškiu (;). Maks. 10 nuotraukų vienam produktui.
POST /products/{id}

Atnaujinti esamą produktą. Siųskite tik laukus, kuriuos norite keisti (dalinis atnaujinimas).

POST /products/{id}/delete

Minkštas produkto ištrynimas. Užklausos turinys nereikalingas.

Produkto nuotraukos

Nuotraukų apribojimai: Maks. 10 nuotraukų vienam produktui. Formatai: JPEG, PNG, WebP. Maks. failo dydis: 5 MB vienai nuotraukai. Nuotraukos atsisiunčiamos iš nurodytų URL — serveris jas parsisiunčia automatiškai.
GET /products/{id}/images

Gauti visas produkto nuotraukas. Grąžina URL adresus ir pagrindinės nuotraukos žymę.

Atsakymo pavyzdys

{
  "success": true,
  "data": {
    "images": [
      {
        "id": 1,
        "url": "/uploads/products/abc123.jpg",
        "thumbnail_url": "/uploads/products/thumb_abc123.jpg",
        "is_primary": true
      },
      {
        "id": 2,
        "url": "/uploads/products/def456.jpg",
        "thumbnail_url": "/uploads/products/thumb_def456.jpg",
        "is_primary": false
      }
    ]
  }
}
POST /products/{id}/images

Pridėti nuotraukas per URL. Serveris atsisiunčia, patikrina (jpg/png/webp, maks. 5 MB) ir automatiškai sukuria miniatiūras. Naudokite kabliataškį keliems URL.

Užklausos turinys (JSON)

LaukasTipasPrivalomasAprašymas
image_urlstring*Nuotraukos URL. Palaikomi jpg, png, webp. Keli URL atskiriami kabliataškiu (;). Maks. 10 nuotraukų vienam produktui.

Užklausos turinys

{
  "image_url": "https://example.com/images/rose.jpg;https://example.com/images/rose-2.jpg"
}
POST /products/{id}/images/{imageId}/delete

Ištrinti produkto nuotrauką. Failas pašalinamas iš serverio. Jei ištrinta nuotrauka buvo pagrindinė, kita nuotrauka automatiškai tampa pagrindine.

POST /products/{id}/images/{imageId}/primary

Nustatyti nuotrauką kaip pagrindinę. Pagrindinė nuotrauka rodoma katalogo sąrašuose ir paieškos rezultatuose.

Masinis atsargų atnaujinimas

POST /stock

Atnaujinti atsargų kiekius keliems produktams vienu metu. Identifikuokite produktus pagal product_id arba sku. Maks. 500 elementų užklausoje.

Užklausos turinys

{
  "items": [
    { "product_id": 42, "stock_qty": 500 },
    { "sku": "ROSE-RED-001", "stock_qty": 250 },
    { "sku": "LILY-WHT-003", "stock_qty": 0 }
  ]
}

Atsakymas

{
  "success": true,
  "data": {
    "updated": 2,
    "failed": 1,
    "errors": [
      { "index": 2, "sku": "LILY-WHT-003", "error": "Product not found" }
    ]
  }
}

Masinis kainų atnaujinimas

POST /prices

Atnaujinti kainas keliems produktams. Tas pats formatas kaip atsargų atnaujinimas, bet su base_price lauku. Maks. 500 elementų.

Užklausos turinys

{
  "items": [
    { "product_id": 42, "base_price": 2.75 },
    { "sku": "ROSE-RED-001", "base_price": 3.10 }
  ]
}

Užsakymai

GET /orders

Jūsų užsakymų grupių sąrašas (tiekėjui skirtos užsakymo dalys).

Užklausos parametrai

ParametrasTipasAprašymas
pageintPuslapio numeris
per_pageintElementų puslapyje (maks. 100)
statusstringpending, confirmed, processing, shipped, delivered, completed, cancelled
GET /orders/{id}

Pilna užsakymo informacija, įskaitant elementus, kliento duomenis ir būsenų istoriją.

POST /orders/{id}/status

Atnaujinti užsakymo būseną. Leidžiami tik tinkami perėjimai:

Leidžiami perėjimai
pendingconfirmed, cancelled
confirmedprocessing, cancelled
processingshipped, cancelled
shippeddelivered

Užklausos turinys

{
  "status": "confirmed",
  "comment": "Order confirmed, preparing for shipment"
}

Kategorijos

GET /categories

Visų aktyvių kategorijų sąrašas. Grąžina plokščią sąrašą su tėvinėmis nuorodomis.

Atsakymo pavyzdys

{
  "success": true,
  "data": {
    "categories": [
      { "id": 1, "name": "Flowers", "slug": "flowers", "parent_id": null, "type": "flower" },
      { "id": 3, "name": "Roses", "slug": "roses", "parent_id": 1, "type": "flower" }
    ]
  }
}

Klaidų kodai

HTTPKodasAprašymas
401UNAUTHORIZEDTrūkstamas arba netinkamas API raktas
403FORBIDDENRaktas atšauktas arba tiekėjas nepatvirtintas
404NOT_FOUNDIšteklius nerastas
422VALIDATION_ERRORNetinkami įvesties duomenys
429RATE_LIMITEDUžklausų limitas viršytas
500SERVER_ERRORVidinė serverio klaida

Kodo pavyzdžiai

Produktų sąrašas

curl -X GET "https://www.verdmarket.com.mature-black-wombat.65-108-70-81.cpanel.site/api/v1/supplier/products?page=1&per_page=10" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"

Produkto kūrimas

curl -X POST "https://www.verdmarket.com.mature-black-wombat.65-108-70-81.cpanel.site/api/v1/supplier/products" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Red Roses Premium",
    "category_id": 3,
    "base_price": 2.50,
    "unit": "stem",
    "stock_qty": 500,
    "sku": "ROSE-RED-001",
    "color": "Red",
    "stem_length": 60,
    "country_of_origin": "Netherlands",
    "image_url": "https://example.com/images/rose-red.jpg"
  }'

Produkto nuotraukų pridėjimas

curl -X POST "https://www.verdmarket.com.mature-black-wombat.65-108-70-81.cpanel.site/api/v1/supplier/products/42/images" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "image_url": "https://example.com/img/photo1.jpg;https://example.com/img/photo2.jpg"
  }'

Masinis atsargų atnaujinimas

curl -X POST "https://www.verdmarket.com.mature-black-wombat.65-108-70-81.cpanel.site/api/v1/supplier/stock" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "items": [
      {"sku": "ROSE-RED-001", "stock_qty": 500},
      {"sku": "LILY-WHT-003", "stock_qty": 200}
    ]
  }'

PHP pavyzdys

<?php
$apiKey = 'YOUR_API_KEY';
$baseUrl = 'https://www.verdmarket.com.mature-black-wombat.65-108-70-81.cpanel.site/api/v1/supplier';

// List products
$ch = curl_init("$baseUrl/products?page=1&per_page=10");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer $apiKey",
        "Accept: application/json",
    ],
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);

// Bulk stock update
$ch = curl_init("$baseUrl/stock");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => json_encode([
        'items' => [
            ['sku' => 'ROSE-RED-001', 'stock_qty' => 500],
            ['sku' => 'LILY-WHT-003', 'stock_qty' => 200],
        ],
    ]),
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer $apiKey",
        "Content-Type: application/json",
    ],
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);

Python pavyzdys

import requests

API_KEY = "YOUR_API_KEY"
BASE_URL = "https://www.verdmarket.com.mature-black-wombat.65-108-70-81.cpanel.site/api/v1/supplier"
headers = {"Authorization": f"Bearer {API_KEY}"}

# List products
resp = requests.get(f"{BASE_URL}/products", headers=headers,
                    params={"page": 1, "per_page": 10})
products = resp.json()

# Bulk stock update
resp = requests.post(f"{BASE_URL}/stock", headers=headers,
                     json={"items": [
                         {"sku": "ROSE-RED-001", "stock_qty": 500},
                         {"sku": "LILY-WHT-003", "stock_qty": 200},
                     ]})
result = resp.json()

# Update order status
resp = requests.post(f"{BASE_URL}/orders/15/status", headers=headers,
                     json={"status": "confirmed",
                           "comment": "Ready for shipment"})
print(resp.json())

Slapukų nustatymai

Naudojame slapukus, kad pagerintume jūsų patirtį. Sužinokite daugiau mūsų Privatumo politikoje.

Tinkinti

Būtinieji

Būtini svetainės veikimui. Negalima išjungti.