URL de bază
https://{tenant}.logzi.com/api/product/
Fiecare cerere returnează un răspuns JSON. În cazul unui răspuns cu succes result.code == 1, în caz de eroare result.code == 0.
/api/product/get
Preluarea unui singur produs pe baza identificatorului, codului de articol, codului de bare sau grupului de produse, cu toate detaliile.
Parametri de interogare
| Parametru | Tip | Obligatoriu | Descriere |
|---|---|---|---|
id |
int | Identificatorul unic al produsului (sau folosește parametrul partnumber în locul acestuia) |
|
partnumber |
string | Căutare după codul de articol (dacă id nu este specificat) |
|
barcode |
string | Căutare după codul de bare | |
product_group_id |
int | Căutare după ID-ul grupului de produse | |
store_id |
int | Identificatorul depozitului — pentru returnarea informațiilor despre stoc |
Exemplu de cerere
GET /api/product/get?id=42&store_id=1
X-API-KEY: {cheia_dvs_api}
Exemplu de răspuns
{
"result": { "code": 1, "message": "success" },
"data": {
"id": 42,
"type_id": 6,
"product_group_id": 10,
"partnumber": "TERM-0042",
"name": "Minta termék",
"product_name": "Minta termék",
"product_unit_name": "db",
"vtsz": "8471300000",
"weight_netto": "0.500",
"weight_brutto": "0.600",
"active_id": 1,
"price": 5000,
"tax_id": 2,
"currency_id": 1,
"incoming_price": 3500,
"incoming_currency_id": 1,
"incoming_tax_id": 2
}
}
/api/product/get_stock
Preluarea informațiilor despre stocul produsului pe depozite.
Parametri de interogare
| Parametru | Tip | Obligatoriu | Descriere |
|---|---|---|---|
id |
int | Identificatorul produsului (sau partnumber) |
|
partnumber |
string | Căutare după codul de articol (alternativă la id) |
|
list_condition[store_id] |
int | Filtrare după un anumit depozit |
Exemplu de cerere
GET /api/product/get_stock?id=42&list_condition[store_id]=1
X-API-KEY: {cheia_dvs_api}
Exemplu de răspuns
{
"result": { "code": 1, "message": "success" },
"data": {
"id": 42,
"partnumber": "TERM-0042",
"quantity_phy": "120.000000",
"quantity_acc": "5.000000"
}
}
/api/product/get_extended
Preluarea produsului cu date extinse — informații despre disponibilitate și cantitate rezervată.
Parametri de interogare
| Parametru | Tip | Obligatoriu | Descriere |
|---|---|---|---|
id |
int | Identificatorul unic al produsului (sau partnumber) |
|
partnumber |
string | Căutare după codul de articol | |
store_id |
int | Filtru de depozit pentru stoc |
Exemplu de cerere
GET /api/product/get_extended?id=42
X-API-KEY: {cheia_dvs_api}
/api/product/list
Preluarea unei liste paginate de produse cu opțiuni de filtrare.
Parametri de interogare
| Parametru | Tip | Obligatoriu | Descriere |
|---|---|---|---|
list_offset |
int | Decalajul paginării (implicit: 0) | |
list_count |
int | Numărul de rezultate pe pagină (implicit: 10) | |
list_condition[partnumber] |
string | Filtrare după codul de articol (LIKE) | |
list_condition[name] |
string | Filtrare după numele produsului (LIKE) | |
list_condition[type_id] |
int | Filtrare după tipul de produs (1–6) | |
list_condition[product_category_id] |
int | Filtrare după ID-ul categoriei de produs | |
list_condition[active_id] |
int | Filtrare după status (1=activ, 0=inactiv) | |
list_condition[store_id] |
int | Filtrare după stocul depozitului — doar produsele disponibile în depozitul respectiv |
Exemplu de cerere
GET /api/product/list?list_offset=0&list_count=20&list_condition[active_id]=1
X-API-KEY: {cheia_dvs_api}
Exemplu de răspuns
{
"result": { "code": 1, "message": "success" },
"data": [
{
"id": 42,
"type_id": 6,
"partnumber": "TERM-0042",
"name": "Minta termék",
"product_name": "Minta termék",
"product_unit_name": "db",
"active_id": 1,
"price": 5000,
"incoming_price": 3500
}
],
"params": {
"list_count": 20,
"list_offset": 0,
"list_all": 158
}
}
/api/product/list_extended
Listă extinsă de produse — cu listă completă de prețuri, stoc și date asociate.
Parametri de interogare
| Parametru | Tip | Obligatoriu | Descriere |
|---|---|---|---|
list_offset |
int | Decalajul paginării (implicit: 0) | |
list_count |
int | Numărul de rezultate pe pagină | |
list_condition |
array | Tabloul condițiilor de filtrare (identic cu cel de la /list) |
|
list_params |
array | Parametri suplimentari |
Exemplu de cerere
GET /api/product/list_extended?list_offset=0&list_count=10
X-API-KEY: {cheia_dvs_api}
/api/product/list_group
Listă paginată de grupuri de produse — date la nivel de grup cu informații despre stoc și preț.
Parametri de interogare
| Parametru | Tip | Obligatoriu | Descriere |
|---|---|---|---|
list_offset |
int | Decalajul paginării (implicit: 0) | |
list_condition[active_id] |
int | Filtrare după status (1=activ, 0=inactiv) | |
list_condition[type_id] |
int | Filtrare după tipul de produs (1–6) |
Exemplu de cerere
GET /api/product/list_group?list_offset=0&list_condition[active_id]=1
X-API-KEY: {cheia_dvs_api}
Exemplu de răspuns
{
"result": { "code": 1, "message": "success" },
"data": [
{
"id": 10,
"product_group_id": 10,
"name": "Minta termék csoport",
"type_id": 1,
"type_name": "Variációs termék",
"active_id": 1,
"partnumber_list": "TERM-001, TERM-002",
"quantity_phy": "240.000000",
"price": 5000,
"incoming_price": 3500
}
],
"params": {
"list_count": 10,
"list_offset": 0,
"list_all": 42
}
}
/api/product/get_group
Preluarea unui singur grup de produse cu toate variantele și lista de prețuri a acestuia.
Parametri de interogare
| Parametru | Tip | Obligatoriu | Descriere |
|---|---|---|---|
product_group_id |
int | Identificatorul grupului de produse | |
language_id |
int | Identificatorul limbii (implicit: 1 — maghiară) |
Exemplu de cerere
GET /api/product/get_group?product_group_id=10
X-API-KEY: {cheia_dvs_api}
/api/product/save
Crearea sau modificarea unui produs. Structura datelor depinde de valoarea type_id.
Tipuri de produs (type_id)
| 1 | Produs cu variante | Mai multe variante — este obligatorie specificarea tabloului item[] |
| 2 | Serviciu | Produs simplu |
| 3 | Produs pachet | Pachet de produse simple |
| 4 | Virtual – Bilet de intrare | Pentru tipuri de bilete |
| 5 | Produs cu rețetă | Fabricat din ingrediente |
| 6 | Produs simplu | Cel mai comun tip |
A) Câmpuri la nivel de grup — valabile pentru toate tipurile
Aceste câmpuri afectează tabelul db_product_group. La modificare, valoarea câmpurilor necompletate rămâne neschimbată.
| Câmp | Tip | Obligatoriu | Descriere |
|---|---|---|---|
id |
int | 0 = produs nou, >0 = modificarea unui produs existent (product_id) |
|
type_id |
int | Tipul produsului (1–6) — obligatoriu pentru produs nou, nu este necesar la modificare | |
product_group_id |
int | 0 = crearea unui grup nou, >0 = modificarea unui grup existent | |
name |
string | Numele produsului. Dacă nu este specificat, ordinea de rezervă: product_name → product_group_name → product_unit_name |
|
product_name |
string | Denumire specifică produsului (rezervă pentru name) |
|
product_group_name |
string | Denumire grup (rezervă pentru name) |
|
vtsz |
string | Cod tarifar vamal KN/TESZOR (ex. 8471300000) |
|
description |
string | Descriere scurtă | |
description_long |
string | Descriere lungă (HTML permis) | |
meta_title |
string | Titlu SEO | |
meta_keyword |
string | Cuvinte cheie SEO (separate prin virgulă) | |
meta_description |
string | Descriere SEO | |
packaging_note |
string | Notă de ambalare | |
active_id |
int | Status activ (1=activ, 0=inactiv — implicit: 1) | |
partner_id |
int | Identificatorul producătorului/partenerului | |
acquisition_partner_id |
int | Identificatorul furnizorului preferat | |
unnumber_id |
int | Identificatorul numărului UN (substanță periculoasă) | |
category_id |
int | Identificatorul categoriei principale a produsului | |
default_store_id |
int | Identificatorul depozitului implicit | |
default_store_locality_id |
int | Identificatorul codului de locație implicit din depozit | |
ledger_number_in_id |
int | Identificatorul numărului de cont contabil de intrare | |
ledger_number_out_id |
int | Identificatorul numărului de cont contabil de ieșire | |
ledger_number_out_abroad_id |
int | Identificatorul numărului de cont contabil de export | |
acquisition_auto |
int | Comandă automată (0/1) | |
serialnumber_required |
int | Supus numerotării individuale (0=nu, 1=da) | |
stockable |
int | Gestionează stoc (0/1 — implicit: 1 dacă type_id=1) |
|
synchronizable |
int | Sincronizare webshop (0/1 — implicit: 1) | |
integration_use_price_list |
int | Actualizarea prețului de vânzare la comanda web (0/1) | |
drs |
int | Sistem de returnare obligatoriu DRS (0/1) | |
excisable |
int | Produs accizabil (0/1) | |
tax_inverse |
int | Produs cu taxare inversă (0/1) | |
service_intermediate |
int | Serviciu intermediat (0/1) | |
erase_code |
int | Cod de ștergere date (0/1) | |
package |
int | Ambalaj/recipient de ambalare (0/1) | |
size_width |
decimal | Lățime (cm) | |
size_height |
decimal | Înălțime (cm) | |
size_depth |
decimal | Adâncime (cm) |
B) Tabloul item[] — exclusiv pentru type_id = 1 (Produs cu variante)
Este obligatoriu cel puțin 1 element. Fiecare variantă are propriul cod de articol. Prețurile se specifică la nivel de variantă.
| Câmp | Tip | Obligatoriu | Descriere |
|---|---|---|---|
item[n][id] |
int | 0 = variantă nouă, >0 = modificarea uneia existente | |
item[n][partnumber] |
string | Cod de articol — minim 3 caractere, unic în sistem | |
item[n][product_unit_id] |
int | Identificatorul unității de măsură (ex. buc, kg, l) | |
item[n][product_unit_value] |
decimal | Cantitatea variantei (ex. 0.5, 1.0, 6.0) | |
item[n][product_unit_name] |
string | Denumire specifică a variantei (ex. „sticlă de 0,5l”) | |
item[n][product_url] |
string | Slug URL specific articolului | |
item[n][quantity_min] |
decimal | Nivel minim de stoc (prag de alertă) | |
item[n][quantity_opt] |
decimal | Nivel optim de stoc | |
item[n][quantity_max] |
decimal | Nivel maxim de stoc | |
item[n][weight_netto] |
decimal | Greutate netă în kg (acceptă virgula ca separator zecimal) | |
item[n][weight_brutto] |
decimal | Greutate brută în kg (cu ambalaj) | |
item[n][warranty_month] |
int | Garanție în luni | |
item[n][remove] |
int | 1 = marcaj de ștergere (soft delete) | |
| CÂMPURI DE PREȚ — la nivel de variantă | |||
item[n][price] |
decimal | Preț de vânzare net | |
item[n][currency_id] |
int | Identificatorul valutei de vânzare | |
item[n][tax_id] |
int | Identificatorul cotei de TVA (vânzare) | |
item[n][incoming_price] |
decimal | Preț de achiziție net | |
item[n][incoming_currency_id] |
int | Identificatorul valutei de achiziție | |
item[n][incoming_tax_id] |
int | Identificatorul cotei de TVA (achiziție) | |
item[n][incoming_cost_price] |
decimal | Preț de cost | |
item[n][price_on_sale] |
decimal | Preț de vânzare promoțional | |
item[n][price_on_sale_date_end] |
datetime | Expirarea promoției (YYYY-MM-DD HH:ii:ss) |
|
item[n][price_discount] |
decimal | Procentul de reducere (%) | |
item[n][list_price] |
decimal | Preț de vânzare recomandat (RRP) | |
item[n][list_currency_id] |
int | Identificatorul valutei prețului de vânzare recomandat | |
item[n][list_tax_id] |
int | Identificatorul TVA-ului prețului de vânzare recomandat | |
C) Câmpuri la nivel de produs — pentru type_id = 2, 3, 4, 5, 6
La aceste tipuri, câmpurile se specifică la nivel rădăcină (nu în tabloul item[]). Prețurile se salvează, de asemenea, la nivel rădăcină.
| Câmp | Tip | Obligatoriu | Descriere |
|---|---|---|---|
partnumber |
string | Cod de articol — minim 3 caractere, unic în sistem | |
weight_netto |
decimal | Greutate netă în kg | |
weight_brutto |
decimal | Greutate brută în kg (cu ambalaj) | |
warranty_month |
int | Garanție în luni | |
product_url |
string | Slug URL al produsului | |
| CÂMPURI DE PREȚ — la nivel rădăcină | |||
price |
decimal | Preț de vânzare net | |
currency_id |
int | Identificatorul valutei de vânzare | |
tax_id |
int | Identificatorul cotei de TVA (vânzare) | |
incoming_price |
decimal | Preț de achiziție net | |
incoming_currency_id |
int | Identificatorul valutei de achiziție | |
incoming_tax_id |
int | Identificatorul cotei de TVA (achiziție) | |
incoming_cost_price |
decimal | Preț de cost | |
price_on_sale |
decimal | Preț de vânzare promoțional | |
price_on_sale_date_end |
datetime | Expirarea promoției (YYYY-MM-DD HH:ii:ss) |
|
price_discount |
decimal | Procentul de reducere (%) | |
list_price |
decimal | Preț de vânzare recomandat (RRP) | |
list_currency_id |
int | Identificatorul valutei prețului de vânzare recomandat | |
list_tax_id |
int | Identificatorul TVA-ului prețului de vânzare recomandat | |
Exemplu de cerere — TYPE 1 (Produs cu variante, cu tablou item[])
POST /api/product/save
X-API-KEY: {cheia_dvs_api}
Content-Type: application/json
{
"data": {
"id": 0,
"type_id": 1,
"product_group_id": 0,
"name": "Ásványvíz",
"vtsz": "2201100090",
"description": "Természetes ásványvíz",
"active_id": 1,
"stockable": 1,
"synchronizable": 1,
"category_id": 5,
"item": [
{
"id": 0,
"partnumber": "ASVANY-05L",
"product_unit_id": 3,
"product_unit_value": 0.5,
"product_unit_name": "0,5l palack",
"remove": 0,
"price": 120,
"currency_id": 1,
"tax_id": 2,
"incoming_price": 75,
"incoming_currency_id": 1,
"incoming_tax_id": 2
},
{
"id": 0,
"partnumber": "ASVANY-15L",
"product_unit_id": 3,
"product_unit_value": 1.5,
"product_unit_name": "1,5l palack",
"remove": 0,
"price": 250,
"currency_id": 1,
"tax_id": 2,
"incoming_price": 160,
"incoming_currency_id": 1,
"incoming_tax_id": 2
}
]
}
}
Exemplu de cerere — TYPE 6 (Produs simplu)
POST /api/product/save
X-API-KEY: {cheia_dvs_api}
Content-Type: application/json
{
"data": {
"id": 0,
"type_id": 6,
"product_group_id": 0,
"name": "Irodai szék",
"partnumber": "SZEK-001",
"vtsz": "9401300000",
"description": "Ergonomikus irodai szék",
"active_id": 1,
"weight_netto": 12.5,
"weight_brutto": 14.0,
"warranty_month": 24,
"price": 45000,
"currency_id": 1,
"tax_id": 2,
"incoming_price": 28000,
"incoming_currency_id": 1,
"incoming_tax_id": 2
}
}
Exemplu de răspuns
{
"result": { "code": 1, "message": "success" },
"data": {
"product_group_id": 15,
"product_id": 48,
"partnumber": "SZEK-001"
}
}
/api/product/delete
Ștergerea unui produs. Poate fi șters doar un produs căruia nu îi este asociată nicio mișcare de stoc.
Câmpuri POST — obiectul data
| Câmp | Tip | Obligatoriu | Descriere |
|---|---|---|---|
id |
int | Identificatorul grupului de produse de șters (product_group_id) |
Exemplu de cerere
POST /api/product/delete
X-API-KEY: {cheia_dvs_api}
Content-Type: application/json
{
"data": {
"id": 15
}
}
Exemplu de răspuns
{
"result": { "code": 1, "message": "success" },
"data": {}
}
/api/product/save_weight
Actualizarea greutății nete și brute a produsului pe baza codului de articol. Înregistrează o versiune în tabelul db_product_data.
Câmpuri POST — obiectul data
| Câmp | Tip | Obligatoriu | Descriere |
|---|---|---|---|
partnumber |
string | Codul de articol al produsului (identificator unic) | |
weight_netto |
decimal | Greutate netă în kg | |
weight_brutto |
decimal | Greutate brută în kg (împreună cu ambalajul) |
Exemplu de cerere
POST /api/product/save_weight
X-API-KEY: {cheia_dvs_api}
Content-Type: application/json
{
"data": {
"partnumber": "TERM-0042",
"weight_netto": 0.48,
"weight_brutto": 0.62
}
}
Exemplu de răspuns
{
"result": { "code": 1, "message": "success" },
"data": {}
}
/api/product/save_warehouse_info
Actualizarea informațiilor de depozit și a greutății brute a produsului. Înregistrează o versiune atât în tabelul db_product_data, cât și în db_product_group_data.
Câmpuri POST — obiectul data
| Câmp | Tip | Obligatoriu | Descriere |
|---|---|---|---|
partnumber |
string | Codul de articol al produsului | |
weight_brutto |
decimal | Greutate brută în kg | |
store_id |
int | Identificatorul depozitului implicit | |
store_locality_id |
int | Identificatorul codului de locație implicit din depozit |
Exemplu de cerere
POST /api/product/save_warehouse_info
X-API-KEY: {cheia_dvs_api}
Content-Type: application/json
{
"data": {
"partnumber": "TERM-0042",
"weight_brutto": 0.62,
"store_id": 1,
"store_locality_id": 14
}
}
Exemplu de răspuns
{
"result": { "code": 1, "message": "success" },
"data": {}
}
/api/product/save_extra
Actualizarea datelor de dimensiune, a amplasării în depozit și a codului de bare al produsului pe baza codului de articol. Dacă codul de bare specificat nu există încă, îl creează automat.
Câmpuri POST — obiectul data
| Câmp | Tip | Obligatoriu | Descriere |
|---|---|---|---|
partnumber |
string | Codul de articol al produsului | |
size_width |
decimal | Lățime (cm) | |
size_height |
decimal | Înălțime (cm) | |
size_depth |
decimal | Adâncime (cm) | |
weight_brutto |
decimal | Greutate brută în kg | |
store_id |
int | Identificatorul depozitului implicit | |
store_locality_id |
int | Identificatorul codului de locație implicit | |
barcode |
string | Cod EAN/de bare — dacă nu există încă, îl creează automat în tabelul db_product_barcode |
Exemplu de cerere
POST /api/product/save_extra
X-API-KEY: {cheia_dvs_api}
Content-Type: application/json
{
"data": {
"partnumber": "TERM-0042",
"size_width": 30.5,
"size_height": 20.0,
"size_depth": 15.0,
"weight_brutto": 0.62,
"store_id": 1,
"store_locality_id": 14,
"barcode": "5901234123457"
}
}
Exemplu de răspuns
{
"result": { "code": 1, "message": "success" },
"data": {}
}
Ești interesat de software-ul nostru? Scrie-ne cu încredere!
Dacă nu găsești răspunsul și ai nevoie de asistență
Creează-ți contul acum,
plătește mai târziu!