API parametru produs

Gestionarea valorilor parametrilor aferente grupurilor de produse și produselor - obținere, listă, salvare și ștergere

URL de bază

https://{tenant}.logzi.com/api/product_param/

Fiecare cerere returnează un răspuns JSON. În cazul unui răspuns cu succes result.code == 1, în caz de eroare result.code == 0. Acest API gestionează valorile parametrilor atribuiți produselor. Definiția parametrilor disponibili (denumire, tip, unitate de măsură, atribuire la categorii) se găsește în API schemă parametru produs, valorile fiind legate de aceasta prin câmpul param_schema_id.

Valoare la nivel de grup și la nivel de produs

Valoarea unui parametru poate fi specificată la două niveluri:

Nivelproduct_idDescriere
La nivel de grupnullValoarea se aplică tuturor produselor din grupul de produse (product_group_id). Acesta este nivelul obișnuit, implicit.
La nivel de produscompletatValoarea se aplică unui produs concret, în cadrul grupului de produse product_group_id specificat.

Endpoint-urile get și save lucrează la nivelul corespunzător, în funcție de specificarea product_id: fără product_id iau în considerare doar valoarea la nivel de grup.

Formatul param_value în funcție de tip

Valoarea se interpretează conform câmpului param_type_id al schemei. Se stochează ca text, maximum 1500 de caractere.

param_type_idTipFormatul valorii
1NumărNumăr scris cu punct zecimal, sub formă de text, de ex. "12.50". Numărul de zecimale afișate este dat de câmpul param_schema_round_decimal al schemei, unitatea de măsură de param_unit_id.
2TextText liber, de ex. "Roșu"
3Logic"1" = da, "0" = nu
4Link textHyperlink sub formă de text, de ex. "https://exemplu.ro/fisa-tehnica.pdf"
5Set de valoriTabloul JSON al valorilor selectate, sub formă de text, de ex. "[\"Gluten\",\"Lapte\"]". Elementele provin din lista param_enum a schemei. La salvare, param_value poate fi specificat direct și ca tablou, API-ul îl stochează ca text.

Câmpurile înregistrării de valoare

CâmpTipDescriere
idintIdentificatorul unic al înregistrării de valoare
param_schema_idintIdentificatorul schemei parametrului (API schemă parametru produs)
param_valuestringValoarea parametrului (formatul conform tabelului de mai sus), maximum 1500 de caractere
product_group_idintIdentificatorul grupului de produse
product_idintIdentificatorul produsului în cazul unei valori la nivel de produs, null în cazul unei valori la nivel de grup
GET /api/product_param/get

Obținerea valorii unui singur parametru. Se poate specifica direct identificatorul valorii (id) sau combinația dintre grupul de produse și schemă. Trebuie specificat cel puțin un parametru, în caz contrar răspunsul este result.code == 0 cu mesajul Not found.

Parametri de interogare

ParametruTipObligatoriuDescriere
idintIdentificatorul înregistrării de valoare
product_group_idintIdentificatorul grupului de produse
param_schema_idintIdentificatorul schemei parametrului
product_idintIdentificatorul produsului. Dacă este specificat, caută valoarea la nivel de produs, altfel doar pe cea la nivel de grup.
Filtrele funcționează prin ȘI și returnează primul rezultat găsit. Pentru un rezultat exact și unic folosiți id, sau perechea product_group_id și param_schema_id.

Exemplu de cerere

GET /api/product_param/get?product_group_id=120&param_schema_id=7
X-API-KEY: {cheia_dvs_api}

Exemplu de răspuns

{
  "result": { "code": 1, "message": "success" },
  "data": {
    "id": 3451,
    "param_schema_id": 7,
    "param_value": "12.50",
    "product_group_id": 120,
    "product_id": null
  }
}
GET /api/product_param/list

Lista valorilor parametrilor, completată cu datele schemei. Valorile aferente schemelor șterse (remove = 1) nu apar. În lipsa rezultatelor, răspunsul este result.code == 0 cu mesajul Not found.

Parametri de interogare

ParametruTipObligatoriuDescriere
list_condition[product_group_id]intFiltrare după valorile unui grup de produse
list_condition[product_id]intFiltrare după valorile la nivel de produs ale unui produs
list_condition[param_schema_id]intFiltrare după o schemă de parametru
list_condition[param_value_not_empty]intPentru 1, doar valorile completate (nevide)
list_condition[category_id]intFiltru moștenit pentru vechiul câmp category_id al schemei (necompletat la schemele mai noi, de aceea de obicei nu returnează rezultate)
Lista nu este paginată și, fără filtru, returnează toate valorile parametrilor tenantului. La un volum mare de date master, răspunsul poate fi de dimensiuni mari, de aceea este recomandat să folosiți cel puțin filtrul product_group_id sau param_schema_id.

Câmpuri suplimentare în răspuns

Elementele listei conțin câmpurile din tabelul Câmpurile înregistrării de valoare, și în plus:

CâmpTipDescriere
param_namestringDenumirea parametrului, din schemă
param_type_idintTipul parametrului (1 = număr, 2 = text, 3 = logic, 4 = link text, 5 = set de valori)
param_type_namestringDenumirea tipului de parametru
param_schema_round_decimalintNumărul de zecimale pentru parametrii de tip număr
unit_name_shortstringDenumirea scurtă a unității de măsură, null dacă nu există unitate de măsură
category_idintCâmp moștenit, de obicei gol. Atribuirea schemei la categorii este dată de câmpul category_ids din API schemă parametru produs.
category_namestringCâmp moștenit, de obicei gol

Exemplu de cerere

GET /api/product_param/list?list_condition[product_group_id]=120&list_condition[param_value_not_empty]=1
X-API-KEY: {cheia_dvs_api}

Exemplu de răspuns

{
  "result": { "code": 1, "message": "success" },
  "data": [
    {
      "id": 3451,
      "param_schema_id": 7,
      "param_value": "12.50",
      "product_group_id": 120,
      "product_id": null,
      "param_name": "Greutate brută",
      "category_id": null,
      "param_type_id": 1,
      "param_schema_round_decimal": 2,
      "unit_name_short": "kg",
      "category_name": null,
      "param_type_name": "Număr"
    },
    {
      "id": 3452,
      "param_schema_id": 9,
      "param_value": "[\"Gluten\",\"Lapte\"]",
      "product_group_id": 120,
      "product_id": null,
      "param_name": "Alergeni",
      "category_id": null,
      "param_type_id": 5,
      "param_schema_round_decimal": 0,
      "unit_name_short": null,
      "category_name": null,
      "param_type_name": "Set de valori"
    }
  ]
}
POST /api/product_param/save

Crearea sau modificarea unei valori de parametru. Specificarea id este opțională: dacă nu este specificat, sistemul caută valoarea existentă pe baza product_group_id, param_schema_id și (dacă există) product_id și o modifică, iar dacă nu există, creează una nouă. Astfel, trimiterea repetată a aceleiași cereri nu generează valori duplicate.

Câmpuri POST - obiectul data

CâmpTipObligatoriuDescriere
idintIdentificatorul unei înregistrări de valoare existente. Dacă este specificat, dar nu există, cererea returnează eroarea Not found.
param_schema_idintIdentificatorul schemei parametrului
product_group_idintIdentificatorul grupului de produse
param_valuestring | arrayValoarea parametrului în formatul corespunzător tipului său (vezi mai sus). La tipul set de valori se poate specifica și un tablou. Un text gol ("") este de asemenea valid, în acest caz valoarea se șterge, dar înregistrarea rămâne.
product_idintIdentificatorul produsului, pentru salvarea unei valori la nivel de produs. Dacă lipsește, salvează o valoare la nivel de grup.
La o înregistrare existentă, product_id nu poate fi șters și nici setat la zero prin modificare: o înregistrare la nivel de produs rămâne la nivel de produs. Valoarea la nivel de grup poate fi modificată fără specificarea product_id.

Câmpuri POST - obiectul params (opțional)

CâmpTipObligatoriuDescriere
create_webhookint1 = după salvare se creează un eveniment de încărcare produs (webhook) pentru integrările active la care încărcarea produselor este activată, astfel modificarea parametrului este trimisă și în magazinul online. Evenimentul se creează pentru produsele sincronizabile: pentru o valoare la nivel de produs, pentru produsul respectiv; pentru o valoare la nivel de grup (fără product_id), pentru toate produsele grupului. Dacă pentru produs există deja un eveniment netrimis, nu se creează un duplicat.

Exemplu de cerere - valoare numerică la nivel de grup

POST /api/product_param/save
X-API-KEY: {cheia_dvs_api}
Content-Type: application/json

{
  "data": {
    "param_schema_id": 7,
    "product_group_id": 120,
    "param_value": "12.50"
  },
  "params": {
    "create_webhook": 1
  }
}

Exemplu de cerere - valoare la nivel de produs

POST /api/product_param/save
X-API-KEY: {cheia_dvs_api}
Content-Type: application/json

{
  "data": {
    "param_schema_id": 2,
    "product_group_id": 120,
    "product_id": 845,
    "param_value": "Roșu"
  }
}

Exemplu de cerere - valoare de tip set de valori

POST /api/product_param/save
X-API-KEY: {cheia_dvs_api}
Content-Type: application/json

{
  "data": {
    "param_schema_id": 9,
    "product_group_id": 120,
    "param_value": ["Gluten", "Lapte"]
  }
}

Exemplu de răspuns

{
  "result": { "code": 1, "message": "success" },
  "data": {
    "id": 3451
  }
}
POST /api/product_param/delete

Ștergerea unei valori de parametru pe baza identificatorului. Ștergerea este definitivă: înregistrarea este eliminată (schema parametrului nu este afectată). Dacă doriți doar să goliți conținutul valorii, folosiți endpoint-ul save cu param_value gol.

Câmpuri POST

CâmpTipObligatoriuDescriere
idintIdentificatorul înregistrării de valoare de parametru de șters

Câmpuri POST - obiectul params (opțional)

CâmpTipObligatoriuDescriere
create_webhookint1 = după ștergere se creează un eveniment de încărcare produs (webhook) pentru produsul valorii șterse, iar în cazul unei valori la nivel de grup, pentru toate produsele grupului (detalii la endpoint-ul save).

Exemplu de cerere

POST /api/product_param/delete
X-API-KEY: {cheia_dvs_api}
Content-Type: application/json

{
  "id": 3451,
  "params": {
    "create_webhook": 1
  }
}

Exemplu de răspuns

{
  "result": { "code": 1, "message": "success" },
  "data": {}
}

Ia legătura cu noi

Ești interesat de software-ul nostru? Scrie-ne cu încredere!

Ai nevoie de ajutor?

Dacă nu găsești răspunsul și ai nevoie de asistență

Creează-ți contul acum,
plătește mai târziu!

Încearcă gratuit timp de 3 zile, fără riscuri și fără obligații!