Product API

Manage products and items — retrieval, creation, modification, and stock information

Base URL

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

Every request returns a JSON response. On success result.code == 1, on failure result.code == 0.

GET /api/product/get

Retrieve a single product by ID, part number, barcode, or product group, with full details.

Query parameters

Parameter Type Required Description
id int The product's unique identifier (or use the partnumber parameter instead)
partnumber string Search by part number (if id is not provided)
barcode string Search by barcode
product_group_id int Search by product group ID
store_id int Warehouse identifier — to include stock information in the response

Example request

GET /api/product/get?id=42&store_id=1
X-API-KEY: {your_api_key}

Example response

{
  "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
  }
}
GET /api/product/get_stock

Retrieve a product's stock information per warehouse.

Query parameters

Parameter Type Required Description
id int The product's identifier (or partnumber)
partnumber string Search by part number (alternative to id)
list_condition[store_id] int Filter for a specific warehouse

Example request

GET /api/product/get_stock?id=42&list_condition[store_id]=1
X-API-KEY: {your_api_key}

Example response

{
  "result": { "code": 1, "message": "success" },
  "data": {
    "id": 42,
    "partnumber": "TERM-0042",
    "quantity_phy": "120.000000",
    "quantity_acc": "5.000000"
  }
}
GET /api/product/get_extended

Retrieve a product with extended data — including availability and reserved quantity information.

Query parameters

Parameter Type Required Description
id int The product's unique identifier (or partnumber)
partnumber string Search by part number
store_id int Warehouse filter for stock

Example request

GET /api/product/get_extended?id=42
X-API-KEY: {your_api_key}
GET /api/product/list

Retrieve a paginated list of products with filtering options.

Query parameters

Parameter Type Required Description
list_offset int Pagination offset (default: 0)
list_count int Number of results per page (default: 10)
list_condition[partnumber] string Filter by part number (LIKE)
list_condition[name] string Filter by product name (LIKE)
list_condition[type_id] int Filter by product type (1–6)
list_condition[product_category_id] int Filter by product category ID
list_condition[active_id] int Filter by status (1=active, 0=inactive)
list_condition[store_id] int Warehouse stock filter — only products available in the given warehouse

Example request

GET /api/product/list?list_offset=0&list_count=20&list_condition[active_id]=1
X-API-KEY: {your_api_key}

Example response

{
  "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
  }
}
GET /api/product/list_extended

Extended list of products — with full price list, stock, and related data.

Query parameters

Parameter Type Required Description
list_offset int Pagination offset (default: 0)
list_count int Number of results per page
list_condition array Array of filter conditions (same as in /list)
list_params array Additional parameters

Example request

GET /api/product/list_extended?list_offset=0&list_count=10
X-API-KEY: {your_api_key}
GET /api/product/list_group

Paginated list of product groups — group-level data with stock and price information.

Query parameters

Parameter Type Required Description
list_offset int Pagination offset (default: 0)
list_condition[active_id] int Filter by status (1=active, 0=inactive)
list_condition[type_id] int Filter by product type (1–6)

Example request

GET /api/product/list_group?list_offset=0&list_condition[active_id]=1
X-API-KEY: {your_api_key}

Example response

{
  "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
  }
}
GET /api/product/get_group

Retrieve a single product group with all of its variants and price list.

Query parameters

Parameter Type Required Description
product_group_id int The product group's identifier
language_id int Language identifier (default: 1 — Hungarian)

Example request

GET /api/product/get_group?product_group_id=10
X-API-KEY: {your_api_key}
POST /api/product/save

Create or update a product. The data structure depends on the value of type_id.

Product types (type_id)

1Variant productMultiple variants — the item[] array is required
2ServiceSimple product
3Bundle productA bundle of simple products
4Virtual – Entry ticketFor ticket types
5Recipe-based productManufactured from ingredients
6Simple productMost common type

A) Group-level fields — apply to all types

These fields affect the db_product_group table. On update, fields left blank retain their existing value.

Field Type Required Description
id int 0 = new product, >0 = update existing product (product_id)
type_id int Product type (1–6) — required for new products, not needed for updates
product_group_id int 0 = create new group, >0 = update existing group
name string Product name. If not provided, falls back in order: product_nameproduct_group_nameproduct_unit_name
product_name string Individual product name (fallback for name)
product_group_name string Group name (fallback for name)
vtsz string CN/TESZOR tariff code (e.g. 8471300000)
description string Short description
description_long string Long description (HTML allowed)
meta_title string SEO title
meta_keyword string SEO keywords (comma-separated)
meta_description string SEO description
packaging_note string Packaging note
active_id int Active status (1=active, 0=inactive — default: 1)
partner_id int Manufacturer/partner identifier
acquisition_partner_id int Preferred supplier identifier
unnumber_id int UN number identifier (hazardous material)
category_id int Product main category identifier
default_store_id int Default warehouse identifier
default_store_locality_id int Default warehouse location code identifier
ledger_number_in_id int Incoming ledger number identifier
ledger_number_out_id int Outgoing ledger number identifier
ledger_number_out_abroad_id int Export ledger number identifier
acquisition_auto int Automatic ordering (0/1)
serialnumber_required int Serial number required (0=no, 1=yes)
stockable int Tracks stock (0/1 — default: 1 if type_id=1)
synchronizable int Webshop synchronization (0/1 — default: 1)
integration_use_price_list int Update selling price on web order (0/1)
drs int Mandatory deposit return scheme (DRS) product (0/1)
excisable int Excise product (0/1)
tax_inverse int Reverse-charge taxed product (0/1)
service_intermediate int Intermediated service (0/1)
erase_code int Data erase code (0/1)
package int Packaging/container material (0/1)
size_width decimal Width (cm)
size_height decimal Height (cm)
size_depth decimal Depth (cm)

B) item[] array — only for type_id = 1 (Variant product)

At least 1 element is required. Each variant has its own part number. Prices are set at the variant level.

Field Type Required Description
item[n][id] int 0 = new variant, >0 = update existing one
item[n][partnumber] string Part number — min. 3 characters, unique in the system
item[n][product_unit_id] int Unit of measure identifier (e.g. pc, kg, l)
item[n][product_unit_value] decimal Variant quantity (e.g. 0.5, 1.0, 6.0)
item[n][product_unit_name] string Custom variant name (e.g. "0.5l bottle")
item[n][product_url] string Item-specific URL slug
item[n][quantity_min] decimal Minimum stock level (alert threshold)
item[n][quantity_opt] decimal Optimum stock level
item[n][quantity_max] decimal Maximum stock level
item[n][weight_netto] decimal Net weight in kg (comma also accepted as decimal separator)
item[n][weight_brutto] decimal Gross weight in kg (including packaging)
item[n][warranty_month] int Warranty in months
item[n][remove] int 1 = mark for deletion (soft delete)
PRICE FIELDS — variant level
item[n][price] decimal Net selling price
item[n][currency_id] int Selling currency identifier
item[n][tax_id] int VAT rate identifier (selling)
item[n][incoming_price] decimal Net purchase price
item[n][incoming_currency_id] int Purchase currency identifier
item[n][incoming_tax_id] int VAT rate identifier (purchase)
item[n][incoming_cost_price] decimal Cost price
item[n][price_on_sale] decimal Sale price
item[n][price_on_sale_date_end] datetime Sale expiration (YYYY-MM-DD HH:ii:ss)
item[n][price_discount] decimal Discount rate (%)
item[n][list_price] decimal Recommended retail price (RRP)
item[n][list_currency_id] int Recommended retail price currency identifier
item[n][list_tax_id] int Recommended retail price VAT identifier

C) Product-level fields — for type_id = 2, 3, 4, 5, 6

For these types, fields are provided at the root level (not inside the item[] array). Prices are also saved at the root level.

Field Type Required Description
partnumber string Part number — min. 3 characters, unique in the system
weight_netto decimal Net weight in kg
weight_brutto decimal Gross weight in kg (including packaging)
warranty_month int Warranty in months
product_url string Product URL slug
PRICE FIELDS — root level
price decimal Net selling price
currency_id int Selling currency identifier
tax_id int VAT rate identifier (selling)
incoming_price decimal Net purchase price
incoming_currency_id int Purchase currency identifier
incoming_tax_id int VAT rate identifier (purchase)
incoming_cost_price decimal Cost price
price_on_sale decimal Sale price
price_on_sale_date_end datetime Sale expiration (YYYY-MM-DD HH:ii:ss)
price_discount decimal Discount rate (%)
list_price decimal Recommended retail price (RRP)
list_currency_id int Recommended retail price currency identifier
list_tax_id int Recommended retail price VAT identifier

Example request — TYPE 1 (Variant product, with item[] array)

POST /api/product/save
X-API-KEY: {your_api_key}
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
      }
    ]
  }
}

Example request — TYPE 6 (Simple product)

POST /api/product/save
X-API-KEY: {your_api_key}
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
  }
}

Example response

{
  "result": { "code": 1, "message": "success" },
  "data": {
    "product_group_id": 15,
    "product_id": 48,
    "partnumber": "SZEK-001"
  }
}
POST /api/product/delete

Delete a product. Only a product with no associated stock movements can be deleted.

POST fields — data object

Field Type Required Description
id int Identifier of the product group to delete (product_group_id)

Example request

POST /api/product/delete
X-API-KEY: {your_api_key}
Content-Type: application/json

{
  "data": {
    "id": 15
  }
}

Example response

{
  "result": { "code": 1, "message": "success" },
  "data": {}
}
POST /api/product/save_weight

Update a product's net and gross weight by part number. Records a version in the db_product_data table.

POST fields — data object

Field Type Required Description
partnumber string The product's part number (unique identifier)
weight_netto decimal Net weight in kg
weight_brutto decimal Gross weight in kg (including packaging)

Example request

POST /api/product/save_weight
X-API-KEY: {your_api_key}
Content-Type: application/json

{
  "data": {
    "partnumber": "TERM-0042",
    "weight_netto": 0.48,
    "weight_brutto": 0.62
  }
}

Example response

{
  "result": { "code": 1, "message": "success" },
  "data": {}
}
POST /api/product/save_warehouse_info

Update a product's warehouse information and gross weight. Records a version in both the db_product_data and db_product_group_data tables.

POST fields — data object

Field Type Required Description
partnumber string The product's part number
weight_brutto decimal Gross weight in kg
store_id int Default warehouse identifier
store_locality_id int Default warehouse location code identifier

Example request

POST /api/product/save_warehouse_info
X-API-KEY: {your_api_key}
Content-Type: application/json

{
  "data": {
    "partnumber": "TERM-0042",
    "weight_brutto": 0.62,
    "store_id": 1,
    "store_locality_id": 14
  }
}

Example response

{
  "result": { "code": 1, "message": "success" },
  "data": {}
}
POST /api/product/save_extra

Update a product's dimensions, warehouse placement, and barcode by part number. If the given barcode does not yet exist, it is created automatically.

POST fields — data object

Field Type Required Description
partnumber string The product's part number
size_width decimal Width (cm)
size_height decimal Height (cm)
size_depth decimal Depth (cm)
weight_brutto decimal Gross weight in kg
store_id int Default warehouse identifier
store_locality_id int Default location code identifier
barcode string EAN/barcode — if it does not yet exist, it is created automatically in the db_product_barcode table

Example request

POST /api/product/save_extra
X-API-KEY: {your_api_key}
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"
  }
}

Example response

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

Get in touch with us

Interested in our software? Feel free to write to us!

Need help?

If you can't find the answer and need assistance

Create your account now,
pay later!

Try it free for 3 days, no risk, no obligation!