InventoryReportItem
Returns a list of InventoryReportItem objects
GET/api/product/inventory/report_items
Query parameters
idstring | |
inventoryReportstring | |
productstring | |
storageLocationstring | |
productNamestring | |
skustring | |
barcodestring | |
manufacturerstring | |
storageLocationNamestring | |
isDefaultLocationboolean | |
targetCountstring | |
currentCountstring | |
positionstring | |
searchStringstring | text to search for in the list |
orderFieldNamestring | name of the order field |
orderFieldSortstring | sorting modeAllowed: DESCASC |
pageinteger | page of the list |
pageSizeinteger | number of entries for each page |
withMaxPageNumberstring | returns the number of pages available as a header if this is set |
Responses
200Returns a list of InventoryReportItem objectsarray<InventoryReportItem>
Show fields (12)
idintegerPrimary key of the inventory report item. Internal ID.
productPredefinedBillingItem5Product that is counted.
Show fields (81)
idintegerPrimary key of the mapped billing item. Internal ID.
namestringrequiredName of the billing item.
descriptionstringrequiredDescription of the billing item shown to the customer.
internal_descriptionstringInternal description of the billing item, not shown to the customer.
fixed_hoursnumber (float)Fixed number of hours billed.
fixed_pricenumber (float)Fixed price billed.
fixed_price_base_unitnumber (float)Base unit for the fixed price.
price_fixed_hoursnumber (float)Price for the fixed hours.
price_additional_hoursnumber (float)Price for each additional hour.
name_additional_hoursstringName of the additional hours item.
description_additional_hoursstringDescription of the additional hours item.
time_billed_on_ticket_closebooleanWhether the time is billed when the ticket is closed.
billing_typeBillingItemTypeBilling item type.
buying_pricenumber (float)Purchase price of the item.
recurrenceCRMRecurrenceRecurrence the billing item follows.
deletedbooleanWhether the billing item is deleted.
condition_date_afterstring (date-time)The item applies only to dates after this date.
condition_date_beforestring (date-time)The item applies only to dates before this date.
condition_country_codestringCountry code the item applies to.
condition_zip_code_fromstringStart of the postal code range the item applies to.
condition_zip_code_tostringEnd of the postal code range the item applies to.
condition_time_after_hourintegerThe item applies only after this hour of the day.
condition_max_lengthintegerMaximum length the item applies to.
condition_time_before_hourintegerThe item applies only before this hour of the day.
condition_sub_access_tagAccessTagAccess tag a subscription must have for the item to apply.
condition_show_despite_missing_access_tagbooleanWhether the item is shown even if the access tag is missing.
condition_sub_free_logicstringFree-form condition logic for the subscription.
fixed_price_logicstringFree-form logic that calculates the fixed price.
sub_self_service_addbooleanWhether members can add the subscription themselves.
sub_self_service_deletebooleanWhether members can cancel the subscription themselves.
sub_self_service_add_fixed_pricenumber (float)Fixed price charged when members add the subscription themselves.
sub_self_service_delete_fixed_pricenumber (float)Fixed price charged when members cancel the subscription themselves.
sub_pre_paidbooleanWhether the subscription is paid in advance.
sub_only_billed_after_startbooleanWhether the subscription is only billed after its start date.
sub_people_age_group_oneintegerUpper age limit of age group one.
sub_people_age_group_one_discountintegerDiscount in percent for age group one.
sub_people_age_group_one_freeintegerNumber of free places for age group one.
sub_people_age_group_twointegerUpper age limit of age group two.
sub_people_age_group_two_discountintegerDiscount in percent for age group two.
sub_people_age_group_two_freeintegerNumber of free places for age group two.
sub_people_age_group_threeintegerUpper age limit of age group three.
sub_people_age_group_three_discountintegerDiscount in percent for age group three.
sub_people_age_group_three_freeintegerNumber of free places for age group three.
sub_people_age_group_fourintegerUpper age limit of age group four.
sub_people_age_group_four_discountintegerDiscount in percent for age group four.
sub_people_age_group_four_freeintegerNumber of free places for age group four.
price_is_bruttobooleanWhether the prices are gross prices including tax.
skustringArtikelnummer (Stock Keeping Unit)
barcodestringBarcode (ISBN, UPC, GTIN usw.)
companyCRMCompanyCompany the billing item belongs to.
parentPredefinedBillingItem5Parent billing item, for example for variants.
is_preferredbooleanThe item is preferred and shown first.
is_defaultbooleanThe item is the default for its type.
is_discountbooleanThe item is a discount.
is_freebooleanThe item is free of charge.
is_passivebooleanThe item is passive and cannot be selected anymore.
is_globalbooleanThe item is available for all companies.
inventory_countintegerNumber of pieces in stock, if the item is a product.
stock_itembooleanThis is flag for items that can be ordered at any time
producer_guarantee_yearsnumber (float)Herstellergarantie in Jahren (ganze Jahre oder ,5-Schritte, siehe ProductGuaranteeYears). Grundlage fuer das EU GARAN Label (nur bei Garantie > 2 Jahre zulaessig). Producer guarantee of durability in years (whole or .5 steps), basis for the EU GARAN label.
producer_brandstringHersteller / Marke, die die Haltbarkeitsgarantie gibt - editierbares Feld "Brand/Trademark" des EU GARAN Labels. Producer / brand offering the commercial guarantee of durability.
energy_label_attachmentAttachment10Energielabel (EU Energieverbrauchskennzeichnung) als Bild/PDF fuer Shop, Warenkorb und Mail. EU energy label image/PDF of this product.
garan_label_attachmentAttachment10Grosses EU GARAN Label (DVO 2025/1960): kostenlose Haltbarkeitsgarantie des Herstellers von mehr als zwei Jahren, mit Jahren, Marke und Modell. Full EU GARAN label (commercial guarantee of durability > 2 years).
garan_label_pictogram_attachmentAttachment10"Nested label" / Piktogramm des EU GARAN Labels: zeigt nur die Jahre, beim Klick/Hover muss das grosse Label (garanLabelAttachment) erscheinen. EU GARAN "nested label" pictogram showing only the years; links to the full label online.
public_categorystringCategory of the item shown publicly.
condition_booking_content_typeBookingContentType12Item applies only to bookings with this content type (e.g. flight type). Null = all content types.
usage_time_baseintegerSection time pair used for usage billing: BaseBookingRealUsage::BILLING_TYPE_BLOCK_TIME or BILLING_TYPE_FLIGHT_TIME. Null = follow the usage record's billingType.
base_locationBaseLocation10Location this charge belongs to (e.g. airport landing/takeoff fee), category CATEGORY_LOCATION
condition_day_of_week_maskintegerDay-of-week bitmask (Mon=1 ... Sun=64, see DayOfWeekBitmaskHelper). Null = every day.
condition_first_usage_onlybooleanCharge applies only once per usage record (first matching section, quantity 1)
budget_grant_countintegerNumber of event sign-ups this product grants when purchased (null = no budget)
budget_create_oncebooleanIf true, budget is only created once per person+product combination. For recurring subscriptions: monthly payment but yearly budget.
ticket_quotaintegerTicketverkauf (BaseEvent::isTicketSalesEnabled): Kontingent dieser Ticketart (Event-Preis). Null = nur das Teilnehmerlimit des Events zählt.
ticket_sale_startstring (date-time)Ticketverkauf: Verkaufsstart dieser Ticketart (z. B. Frühbucher ab), null = sofort.
ticket_sale_endstring (date-time)Ticketverkauf: Verkaufsende dieser Ticketart (z. B. Frühbucher bis), null = bis zum Anmeldeschluss.
ticket_seat_zonestringTicketverkauf mit Sitzplan: Diese Ticketart gilt nur für Plätze dieser Preiszone (BaseLocationPlanItem::seatZone), null = für jeden Platz.
cancellation_term_unitstringAllowed cancellation terms for this subscription product. Null / empty = inherit the club default from settings. See CancellationTermCalculator::TERM_UNITS.
cancellation_term_datesstringComma separated list of fixed cancellation dates in DD.MM format, e.g. "31.03,30.06,30.09,31.12". Only used when cancellationTermUnit is CUSTOM.
cancellation_notice_valueintegerNumeric value of the notice period before the cancellation term. Null = inherit from settings.
cancellation_notice_unitstringUnit of the notice period: DAYS, WEEKS or MONTHS. Null = inherit from settings.
- … 6 more fields
storage_locationStorageLocationStorage location of the product.
Show fields (2)
idintegerPrimary key of the storage location. Internal ID.
namestringName of the entity.
product_namestringName of the product.
skustringStock keeping unit of the product.
barcodestringBarcode of the product.
manufacturerstringManufacturer of the product.
storage_location_namestringName of the storage location.
is_default_locationbooleanThe storage location is the default location of the product.
target_countintegerTarget stock count.
current_countintegerCounted stock.
positionintegerPosition of the item in the report.
curl --request GET \
--url https://your-instance.iw-erp.de/api/product/inventory/report_items \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/product/inventory/report_items', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/product/inventory/report_items"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://your-instance.iw-erp.de/api/product/inventory/report_items', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/product/inventory/report_items"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/product/inventory/report_items")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/product/inventory/report_items"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/inventory_report_item_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await InventoryReportItemController.getAll();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"product_name": "Beispiel",
"storage_location_name": "Beispiel",
"product": {
"name": "Beispiel",
"description": "Text",
"id": 42,
"internal_description": "Text",
"fixed_hours": 1.5,
"fixed_price": 49.9,
"fixed_price_base_unit": 49.9,
"price_fixed_hours": 49.9,
"price_additional_hours": 49.9,
"name_additional_hours": "string"
},
"storage_location": {
"id": 42,
"name": "Beispiel"
},
"sku": "string",
"barcode": "string",
"manufacturer": "string",
"is_default_location": true,
"target_count": 1
}
]Creates a single InventoryReportItem
POST/api/product/inventory/report_items
Request body application/json
dataInventoryReportItem2
Responses
200Creates a single InventoryReportItemInventoryReportItem
Show fields (12)
idintegerPrimary key of the inventory report item. Internal ID.
productPredefinedBillingItem5Product that is counted.
Show fields (81)
idintegerPrimary key of the mapped billing item. Internal ID.
namestringrequiredName of the billing item.
descriptionstringrequiredDescription of the billing item shown to the customer.
internal_descriptionstringInternal description of the billing item, not shown to the customer.
fixed_hoursnumber (float)Fixed number of hours billed.
fixed_pricenumber (float)Fixed price billed.
fixed_price_base_unitnumber (float)Base unit for the fixed price.
price_fixed_hoursnumber (float)Price for the fixed hours.
price_additional_hoursnumber (float)Price for each additional hour.
name_additional_hoursstringName of the additional hours item.
description_additional_hoursstringDescription of the additional hours item.
time_billed_on_ticket_closebooleanWhether the time is billed when the ticket is closed.
billing_typeBillingItemTypeBilling item type.
buying_pricenumber (float)Purchase price of the item.
recurrenceCRMRecurrenceRecurrence the billing item follows.
deletedbooleanWhether the billing item is deleted.
condition_date_afterstring (date-time)The item applies only to dates after this date.
condition_date_beforestring (date-time)The item applies only to dates before this date.
condition_country_codestringCountry code the item applies to.
condition_zip_code_fromstringStart of the postal code range the item applies to.
condition_zip_code_tostringEnd of the postal code range the item applies to.
condition_time_after_hourintegerThe item applies only after this hour of the day.
condition_max_lengthintegerMaximum length the item applies to.
condition_time_before_hourintegerThe item applies only before this hour of the day.
condition_sub_access_tagAccessTagAccess tag a subscription must have for the item to apply.
condition_show_despite_missing_access_tagbooleanWhether the item is shown even if the access tag is missing.
condition_sub_free_logicstringFree-form condition logic for the subscription.
fixed_price_logicstringFree-form logic that calculates the fixed price.
sub_self_service_addbooleanWhether members can add the subscription themselves.
sub_self_service_deletebooleanWhether members can cancel the subscription themselves.
sub_self_service_add_fixed_pricenumber (float)Fixed price charged when members add the subscription themselves.
sub_self_service_delete_fixed_pricenumber (float)Fixed price charged when members cancel the subscription themselves.
sub_pre_paidbooleanWhether the subscription is paid in advance.
sub_only_billed_after_startbooleanWhether the subscription is only billed after its start date.
sub_people_age_group_oneintegerUpper age limit of age group one.
sub_people_age_group_one_discountintegerDiscount in percent for age group one.
sub_people_age_group_one_freeintegerNumber of free places for age group one.
sub_people_age_group_twointegerUpper age limit of age group two.
sub_people_age_group_two_discountintegerDiscount in percent for age group two.
sub_people_age_group_two_freeintegerNumber of free places for age group two.
sub_people_age_group_threeintegerUpper age limit of age group three.
sub_people_age_group_three_discountintegerDiscount in percent for age group three.
sub_people_age_group_three_freeintegerNumber of free places for age group three.
sub_people_age_group_fourintegerUpper age limit of age group four.
sub_people_age_group_four_discountintegerDiscount in percent for age group four.
sub_people_age_group_four_freeintegerNumber of free places for age group four.
price_is_bruttobooleanWhether the prices are gross prices including tax.
skustringArtikelnummer (Stock Keeping Unit)
barcodestringBarcode (ISBN, UPC, GTIN usw.)
companyCRMCompanyCompany the billing item belongs to.
parentPredefinedBillingItem5Parent billing item, for example for variants.
is_preferredbooleanThe item is preferred and shown first.
is_defaultbooleanThe item is the default for its type.
is_discountbooleanThe item is a discount.
is_freebooleanThe item is free of charge.
is_passivebooleanThe item is passive and cannot be selected anymore.
is_globalbooleanThe item is available for all companies.
inventory_countintegerNumber of pieces in stock, if the item is a product.
stock_itembooleanThis is flag for items that can be ordered at any time
producer_guarantee_yearsnumber (float)Herstellergarantie in Jahren (ganze Jahre oder ,5-Schritte, siehe ProductGuaranteeYears). Grundlage fuer das EU GARAN Label (nur bei Garantie > 2 Jahre zulaessig). Producer guarantee of durability in years (whole or .5 steps), basis for the EU GARAN label.
producer_brandstringHersteller / Marke, die die Haltbarkeitsgarantie gibt - editierbares Feld "Brand/Trademark" des EU GARAN Labels. Producer / brand offering the commercial guarantee of durability.
energy_label_attachmentAttachment10Energielabel (EU Energieverbrauchskennzeichnung) als Bild/PDF fuer Shop, Warenkorb und Mail. EU energy label image/PDF of this product.
garan_label_attachmentAttachment10Grosses EU GARAN Label (DVO 2025/1960): kostenlose Haltbarkeitsgarantie des Herstellers von mehr als zwei Jahren, mit Jahren, Marke und Modell. Full EU GARAN label (commercial guarantee of durability > 2 years).
garan_label_pictogram_attachmentAttachment10"Nested label" / Piktogramm des EU GARAN Labels: zeigt nur die Jahre, beim Klick/Hover muss das grosse Label (garanLabelAttachment) erscheinen. EU GARAN "nested label" pictogram showing only the years; links to the full label online.
public_categorystringCategory of the item shown publicly.
condition_booking_content_typeBookingContentType12Item applies only to bookings with this content type (e.g. flight type). Null = all content types.
usage_time_baseintegerSection time pair used for usage billing: BaseBookingRealUsage::BILLING_TYPE_BLOCK_TIME or BILLING_TYPE_FLIGHT_TIME. Null = follow the usage record's billingType.
base_locationBaseLocation10Location this charge belongs to (e.g. airport landing/takeoff fee), category CATEGORY_LOCATION
condition_day_of_week_maskintegerDay-of-week bitmask (Mon=1 ... Sun=64, see DayOfWeekBitmaskHelper). Null = every day.
condition_first_usage_onlybooleanCharge applies only once per usage record (first matching section, quantity 1)
budget_grant_countintegerNumber of event sign-ups this product grants when purchased (null = no budget)
budget_create_oncebooleanIf true, budget is only created once per person+product combination. For recurring subscriptions: monthly payment but yearly budget.
ticket_quotaintegerTicketverkauf (BaseEvent::isTicketSalesEnabled): Kontingent dieser Ticketart (Event-Preis). Null = nur das Teilnehmerlimit des Events zählt.
ticket_sale_startstring (date-time)Ticketverkauf: Verkaufsstart dieser Ticketart (z. B. Frühbucher ab), null = sofort.
ticket_sale_endstring (date-time)Ticketverkauf: Verkaufsende dieser Ticketart (z. B. Frühbucher bis), null = bis zum Anmeldeschluss.
ticket_seat_zonestringTicketverkauf mit Sitzplan: Diese Ticketart gilt nur für Plätze dieser Preiszone (BaseLocationPlanItem::seatZone), null = für jeden Platz.
cancellation_term_unitstringAllowed cancellation terms for this subscription product. Null / empty = inherit the club default from settings. See CancellationTermCalculator::TERM_UNITS.
cancellation_term_datesstringComma separated list of fixed cancellation dates in DD.MM format, e.g. "31.03,30.06,30.09,31.12". Only used when cancellationTermUnit is CUSTOM.
cancellation_notice_valueintegerNumeric value of the notice period before the cancellation term. Null = inherit from settings.
cancellation_notice_unitstringUnit of the notice period: DAYS, WEEKS or MONTHS. Null = inherit from settings.
- … 6 more fields
storage_locationStorageLocationStorage location of the product.
Show fields (2)
idintegerPrimary key of the storage location. Internal ID.
namestringName of the entity.
product_namestringName of the product.
skustringStock keeping unit of the product.
barcodestringBarcode of the product.
manufacturerstringManufacturer of the product.
storage_location_namestringName of the storage location.
is_default_locationbooleanThe storage location is the default location of the product.
target_countintegerTarget stock count.
current_countintegerCounted stock.
positionintegerPosition of the item in the report.
curl --request POST \
--url https://your-instance.iw-erp.de/api/product/inventory/report_items \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '{}'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://your-instance.iw-erp.de/api/product/inventory/report_items', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/product/inventory/report_items"
payload = {}
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://your-instance.iw-erp.de/api/product/inventory/report_items', [
'body' => '{}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/product/inventory/report_items"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/product/inventory/report_items")
.post(body)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/product/inventory/report_items"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/inventory_report_item_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/inventory_report_item.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await InventoryReportItemController.post(InventoryReportItem.fromJson({}));
if (result.success) {
print(result.data);
}{
"id": 42,
"product_name": "Beispiel",
"storage_location_name": "Beispiel",
"product": {
"name": "Beispiel",
"description": "Text",
"id": 42,
"internal_description": "Text",
"fixed_hours": 1.5,
"fixed_price": 49.9,
"fixed_price_base_unit": 49.9,
"price_fixed_hours": 49.9,
"price_additional_hours": 49.9,
"name_additional_hours": "string"
},
"storage_location": {
"id": 42,
"name": "Beispiel"
},
"sku": "string",
"barcode": "string",
"manufacturer": "string",
"is_default_location": true,
"target_count": 1
}Returns a single InventoryReportItem with the given id
GET/api/product/inventory/report_items/{identifier}
Path parameters
identifierrequiredstring |
Responses
200Returns a single InventoryReportItemInventoryReportItem
Show fields (12)
idintegerPrimary key of the inventory report item. Internal ID.
productPredefinedBillingItem5Product that is counted.
Show fields (81)
idintegerPrimary key of the mapped billing item. Internal ID.
namestringrequiredName of the billing item.
descriptionstringrequiredDescription of the billing item shown to the customer.
internal_descriptionstringInternal description of the billing item, not shown to the customer.
fixed_hoursnumber (float)Fixed number of hours billed.
fixed_pricenumber (float)Fixed price billed.
fixed_price_base_unitnumber (float)Base unit for the fixed price.
price_fixed_hoursnumber (float)Price for the fixed hours.
price_additional_hoursnumber (float)Price for each additional hour.
name_additional_hoursstringName of the additional hours item.
description_additional_hoursstringDescription of the additional hours item.
time_billed_on_ticket_closebooleanWhether the time is billed when the ticket is closed.
billing_typeBillingItemTypeBilling item type.
buying_pricenumber (float)Purchase price of the item.
recurrenceCRMRecurrenceRecurrence the billing item follows.
deletedbooleanWhether the billing item is deleted.
condition_date_afterstring (date-time)The item applies only to dates after this date.
condition_date_beforestring (date-time)The item applies only to dates before this date.
condition_country_codestringCountry code the item applies to.
condition_zip_code_fromstringStart of the postal code range the item applies to.
condition_zip_code_tostringEnd of the postal code range the item applies to.
condition_time_after_hourintegerThe item applies only after this hour of the day.
condition_max_lengthintegerMaximum length the item applies to.
condition_time_before_hourintegerThe item applies only before this hour of the day.
condition_sub_access_tagAccessTagAccess tag a subscription must have for the item to apply.
condition_show_despite_missing_access_tagbooleanWhether the item is shown even if the access tag is missing.
condition_sub_free_logicstringFree-form condition logic for the subscription.
fixed_price_logicstringFree-form logic that calculates the fixed price.
sub_self_service_addbooleanWhether members can add the subscription themselves.
sub_self_service_deletebooleanWhether members can cancel the subscription themselves.
sub_self_service_add_fixed_pricenumber (float)Fixed price charged when members add the subscription themselves.
sub_self_service_delete_fixed_pricenumber (float)Fixed price charged when members cancel the subscription themselves.
sub_pre_paidbooleanWhether the subscription is paid in advance.
sub_only_billed_after_startbooleanWhether the subscription is only billed after its start date.
sub_people_age_group_oneintegerUpper age limit of age group one.
sub_people_age_group_one_discountintegerDiscount in percent for age group one.
sub_people_age_group_one_freeintegerNumber of free places for age group one.
sub_people_age_group_twointegerUpper age limit of age group two.
sub_people_age_group_two_discountintegerDiscount in percent for age group two.
sub_people_age_group_two_freeintegerNumber of free places for age group two.
sub_people_age_group_threeintegerUpper age limit of age group three.
sub_people_age_group_three_discountintegerDiscount in percent for age group three.
sub_people_age_group_three_freeintegerNumber of free places for age group three.
sub_people_age_group_fourintegerUpper age limit of age group four.
sub_people_age_group_four_discountintegerDiscount in percent for age group four.
sub_people_age_group_four_freeintegerNumber of free places for age group four.
price_is_bruttobooleanWhether the prices are gross prices including tax.
skustringArtikelnummer (Stock Keeping Unit)
barcodestringBarcode (ISBN, UPC, GTIN usw.)
companyCRMCompanyCompany the billing item belongs to.
parentPredefinedBillingItem5Parent billing item, for example for variants.
is_preferredbooleanThe item is preferred and shown first.
is_defaultbooleanThe item is the default for its type.
is_discountbooleanThe item is a discount.
is_freebooleanThe item is free of charge.
is_passivebooleanThe item is passive and cannot be selected anymore.
is_globalbooleanThe item is available for all companies.
inventory_countintegerNumber of pieces in stock, if the item is a product.
stock_itembooleanThis is flag for items that can be ordered at any time
producer_guarantee_yearsnumber (float)Herstellergarantie in Jahren (ganze Jahre oder ,5-Schritte, siehe ProductGuaranteeYears). Grundlage fuer das EU GARAN Label (nur bei Garantie > 2 Jahre zulaessig). Producer guarantee of durability in years (whole or .5 steps), basis for the EU GARAN label.
producer_brandstringHersteller / Marke, die die Haltbarkeitsgarantie gibt - editierbares Feld "Brand/Trademark" des EU GARAN Labels. Producer / brand offering the commercial guarantee of durability.
energy_label_attachmentAttachment10Energielabel (EU Energieverbrauchskennzeichnung) als Bild/PDF fuer Shop, Warenkorb und Mail. EU energy label image/PDF of this product.
garan_label_attachmentAttachment10Grosses EU GARAN Label (DVO 2025/1960): kostenlose Haltbarkeitsgarantie des Herstellers von mehr als zwei Jahren, mit Jahren, Marke und Modell. Full EU GARAN label (commercial guarantee of durability > 2 years).
garan_label_pictogram_attachmentAttachment10"Nested label" / Piktogramm des EU GARAN Labels: zeigt nur die Jahre, beim Klick/Hover muss das grosse Label (garanLabelAttachment) erscheinen. EU GARAN "nested label" pictogram showing only the years; links to the full label online.
public_categorystringCategory of the item shown publicly.
condition_booking_content_typeBookingContentType12Item applies only to bookings with this content type (e.g. flight type). Null = all content types.
usage_time_baseintegerSection time pair used for usage billing: BaseBookingRealUsage::BILLING_TYPE_BLOCK_TIME or BILLING_TYPE_FLIGHT_TIME. Null = follow the usage record's billingType.
base_locationBaseLocation10Location this charge belongs to (e.g. airport landing/takeoff fee), category CATEGORY_LOCATION
condition_day_of_week_maskintegerDay-of-week bitmask (Mon=1 ... Sun=64, see DayOfWeekBitmaskHelper). Null = every day.
condition_first_usage_onlybooleanCharge applies only once per usage record (first matching section, quantity 1)
budget_grant_countintegerNumber of event sign-ups this product grants when purchased (null = no budget)
budget_create_oncebooleanIf true, budget is only created once per person+product combination. For recurring subscriptions: monthly payment but yearly budget.
ticket_quotaintegerTicketverkauf (BaseEvent::isTicketSalesEnabled): Kontingent dieser Ticketart (Event-Preis). Null = nur das Teilnehmerlimit des Events zählt.
ticket_sale_startstring (date-time)Ticketverkauf: Verkaufsstart dieser Ticketart (z. B. Frühbucher ab), null = sofort.
ticket_sale_endstring (date-time)Ticketverkauf: Verkaufsende dieser Ticketart (z. B. Frühbucher bis), null = bis zum Anmeldeschluss.
ticket_seat_zonestringTicketverkauf mit Sitzplan: Diese Ticketart gilt nur für Plätze dieser Preiszone (BaseLocationPlanItem::seatZone), null = für jeden Platz.
cancellation_term_unitstringAllowed cancellation terms for this subscription product. Null / empty = inherit the club default from settings. See CancellationTermCalculator::TERM_UNITS.
cancellation_term_datesstringComma separated list of fixed cancellation dates in DD.MM format, e.g. "31.03,30.06,30.09,31.12". Only used when cancellationTermUnit is CUSTOM.
cancellation_notice_valueintegerNumeric value of the notice period before the cancellation term. Null = inherit from settings.
cancellation_notice_unitstringUnit of the notice period: DAYS, WEEKS or MONTHS. Null = inherit from settings.
- … 6 more fields
storage_locationStorageLocationStorage location of the product.
Show fields (2)
idintegerPrimary key of the storage location. Internal ID.
namestringName of the entity.
product_namestringName of the product.
skustringStock keeping unit of the product.
barcodestringBarcode of the product.
manufacturerstringManufacturer of the product.
storage_location_namestringName of the storage location.
is_default_locationbooleanThe storage location is the default location of the product.
target_countintegerTarget stock count.
current_countintegerCounted stock.
positionintegerPosition of the item in the report.
curl --request GET \
--url https://your-instance.iw-erp.de/api/product/inventory/report_items/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/product/inventory/report_items/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/product/inventory/report_items/42"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://your-instance.iw-erp.de/api/product/inventory/report_items/42', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/product/inventory/report_items/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/product/inventory/report_items/42")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/product/inventory/report_items/42"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/inventory_report_item_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await InventoryReportItemController.get('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"product_name": "Beispiel",
"storage_location_name": "Beispiel",
"product": {
"name": "Beispiel",
"description": "Text",
"id": 42,
"internal_description": "Text",
"fixed_hours": 1.5,
"fixed_price": 49.9,
"fixed_price_base_unit": 49.9,
"price_fixed_hours": 49.9,
"price_additional_hours": 49.9,
"name_additional_hours": "string"
},
"storage_location": {
"id": 42,
"name": "Beispiel"
},
"sku": "string",
"barcode": "string",
"manufacturer": "string",
"is_default_location": true,
"target_count": 1
}Updates a single InventoryReportItem
PUT/api/product/inventory/report_items/{identifier}
Path parameters
identifierrequiredstring |
Request body application/json
dataInventoryReportItem2
Responses
200Updates a single InventoryReportItemInventoryReportItem
Show fields (12)
idintegerPrimary key of the inventory report item. Internal ID.
productPredefinedBillingItem5Product that is counted.
Show fields (81)
idintegerPrimary key of the mapped billing item. Internal ID.
namestringrequiredName of the billing item.
descriptionstringrequiredDescription of the billing item shown to the customer.
internal_descriptionstringInternal description of the billing item, not shown to the customer.
fixed_hoursnumber (float)Fixed number of hours billed.
fixed_pricenumber (float)Fixed price billed.
fixed_price_base_unitnumber (float)Base unit for the fixed price.
price_fixed_hoursnumber (float)Price for the fixed hours.
price_additional_hoursnumber (float)Price for each additional hour.
name_additional_hoursstringName of the additional hours item.
description_additional_hoursstringDescription of the additional hours item.
time_billed_on_ticket_closebooleanWhether the time is billed when the ticket is closed.
billing_typeBillingItemTypeBilling item type.
buying_pricenumber (float)Purchase price of the item.
recurrenceCRMRecurrenceRecurrence the billing item follows.
deletedbooleanWhether the billing item is deleted.
condition_date_afterstring (date-time)The item applies only to dates after this date.
condition_date_beforestring (date-time)The item applies only to dates before this date.
condition_country_codestringCountry code the item applies to.
condition_zip_code_fromstringStart of the postal code range the item applies to.
condition_zip_code_tostringEnd of the postal code range the item applies to.
condition_time_after_hourintegerThe item applies only after this hour of the day.
condition_max_lengthintegerMaximum length the item applies to.
condition_time_before_hourintegerThe item applies only before this hour of the day.
condition_sub_access_tagAccessTagAccess tag a subscription must have for the item to apply.
condition_show_despite_missing_access_tagbooleanWhether the item is shown even if the access tag is missing.
condition_sub_free_logicstringFree-form condition logic for the subscription.
fixed_price_logicstringFree-form logic that calculates the fixed price.
sub_self_service_addbooleanWhether members can add the subscription themselves.
sub_self_service_deletebooleanWhether members can cancel the subscription themselves.
sub_self_service_add_fixed_pricenumber (float)Fixed price charged when members add the subscription themselves.
sub_self_service_delete_fixed_pricenumber (float)Fixed price charged when members cancel the subscription themselves.
sub_pre_paidbooleanWhether the subscription is paid in advance.
sub_only_billed_after_startbooleanWhether the subscription is only billed after its start date.
sub_people_age_group_oneintegerUpper age limit of age group one.
sub_people_age_group_one_discountintegerDiscount in percent for age group one.
sub_people_age_group_one_freeintegerNumber of free places for age group one.
sub_people_age_group_twointegerUpper age limit of age group two.
sub_people_age_group_two_discountintegerDiscount in percent for age group two.
sub_people_age_group_two_freeintegerNumber of free places for age group two.
sub_people_age_group_threeintegerUpper age limit of age group three.
sub_people_age_group_three_discountintegerDiscount in percent for age group three.
sub_people_age_group_three_freeintegerNumber of free places for age group three.
sub_people_age_group_fourintegerUpper age limit of age group four.
sub_people_age_group_four_discountintegerDiscount in percent for age group four.
sub_people_age_group_four_freeintegerNumber of free places for age group four.
price_is_bruttobooleanWhether the prices are gross prices including tax.
skustringArtikelnummer (Stock Keeping Unit)
barcodestringBarcode (ISBN, UPC, GTIN usw.)
companyCRMCompanyCompany the billing item belongs to.
parentPredefinedBillingItem5Parent billing item, for example for variants.
is_preferredbooleanThe item is preferred and shown first.
is_defaultbooleanThe item is the default for its type.
is_discountbooleanThe item is a discount.
is_freebooleanThe item is free of charge.
is_passivebooleanThe item is passive and cannot be selected anymore.
is_globalbooleanThe item is available for all companies.
inventory_countintegerNumber of pieces in stock, if the item is a product.
stock_itembooleanThis is flag for items that can be ordered at any time
producer_guarantee_yearsnumber (float)Herstellergarantie in Jahren (ganze Jahre oder ,5-Schritte, siehe ProductGuaranteeYears). Grundlage fuer das EU GARAN Label (nur bei Garantie > 2 Jahre zulaessig). Producer guarantee of durability in years (whole or .5 steps), basis for the EU GARAN label.
producer_brandstringHersteller / Marke, die die Haltbarkeitsgarantie gibt - editierbares Feld "Brand/Trademark" des EU GARAN Labels. Producer / brand offering the commercial guarantee of durability.
energy_label_attachmentAttachment10Energielabel (EU Energieverbrauchskennzeichnung) als Bild/PDF fuer Shop, Warenkorb und Mail. EU energy label image/PDF of this product.
garan_label_attachmentAttachment10Grosses EU GARAN Label (DVO 2025/1960): kostenlose Haltbarkeitsgarantie des Herstellers von mehr als zwei Jahren, mit Jahren, Marke und Modell. Full EU GARAN label (commercial guarantee of durability > 2 years).
garan_label_pictogram_attachmentAttachment10"Nested label" / Piktogramm des EU GARAN Labels: zeigt nur die Jahre, beim Klick/Hover muss das grosse Label (garanLabelAttachment) erscheinen. EU GARAN "nested label" pictogram showing only the years; links to the full label online.
public_categorystringCategory of the item shown publicly.
condition_booking_content_typeBookingContentType12Item applies only to bookings with this content type (e.g. flight type). Null = all content types.
usage_time_baseintegerSection time pair used for usage billing: BaseBookingRealUsage::BILLING_TYPE_BLOCK_TIME or BILLING_TYPE_FLIGHT_TIME. Null = follow the usage record's billingType.
base_locationBaseLocation10Location this charge belongs to (e.g. airport landing/takeoff fee), category CATEGORY_LOCATION
condition_day_of_week_maskintegerDay-of-week bitmask (Mon=1 ... Sun=64, see DayOfWeekBitmaskHelper). Null = every day.
condition_first_usage_onlybooleanCharge applies only once per usage record (first matching section, quantity 1)
budget_grant_countintegerNumber of event sign-ups this product grants when purchased (null = no budget)
budget_create_oncebooleanIf true, budget is only created once per person+product combination. For recurring subscriptions: monthly payment but yearly budget.
ticket_quotaintegerTicketverkauf (BaseEvent::isTicketSalesEnabled): Kontingent dieser Ticketart (Event-Preis). Null = nur das Teilnehmerlimit des Events zählt.
ticket_sale_startstring (date-time)Ticketverkauf: Verkaufsstart dieser Ticketart (z. B. Frühbucher ab), null = sofort.
ticket_sale_endstring (date-time)Ticketverkauf: Verkaufsende dieser Ticketart (z. B. Frühbucher bis), null = bis zum Anmeldeschluss.
ticket_seat_zonestringTicketverkauf mit Sitzplan: Diese Ticketart gilt nur für Plätze dieser Preiszone (BaseLocationPlanItem::seatZone), null = für jeden Platz.
cancellation_term_unitstringAllowed cancellation terms for this subscription product. Null / empty = inherit the club default from settings. See CancellationTermCalculator::TERM_UNITS.
cancellation_term_datesstringComma separated list of fixed cancellation dates in DD.MM format, e.g. "31.03,30.06,30.09,31.12". Only used when cancellationTermUnit is CUSTOM.
cancellation_notice_valueintegerNumeric value of the notice period before the cancellation term. Null = inherit from settings.
cancellation_notice_unitstringUnit of the notice period: DAYS, WEEKS or MONTHS. Null = inherit from settings.
- … 6 more fields
storage_locationStorageLocationStorage location of the product.
Show fields (2)
idintegerPrimary key of the storage location. Internal ID.
namestringName of the entity.
product_namestringName of the product.
skustringStock keeping unit of the product.
barcodestringBarcode of the product.
manufacturerstringManufacturer of the product.
storage_location_namestringName of the storage location.
is_default_locationbooleanThe storage location is the default location of the product.
target_countintegerTarget stock count.
current_countintegerCounted stock.
positionintegerPosition of the item in the report.
curl --request PUT \
--url https://your-instance.iw-erp.de/api/product/inventory/report_items/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '{}'const options = {
method: 'PUT',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://your-instance.iw-erp.de/api/product/inventory/report_items/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/product/inventory/report_items/42"
payload = {}
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PUT', 'https://your-instance.iw-erp.de/api/product/inventory/report_items/42', [
'body' => '{}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Put,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/product/inventory/report_items/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/product/inventory/report_items/42")
.put(body)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/product/inventory/report_items/42"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/inventory_report_item_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/inventory_report_item.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await InventoryReportItemController.put(InventoryReportItem.fromJson({}));
if (result.success) {
print(result.data);
}{
"id": 42,
"product_name": "Beispiel",
"storage_location_name": "Beispiel",
"product": {
"name": "Beispiel",
"description": "Text",
"id": 42,
"internal_description": "Text",
"fixed_hours": 1.5,
"fixed_price": 49.9,
"fixed_price_base_unit": 49.9,
"price_fixed_hours": 49.9,
"price_additional_hours": 49.9,
"name_additional_hours": "string"
},
"storage_location": {
"id": 42,
"name": "Beispiel"
},
"sku": "string",
"barcode": "string",
"manufacturer": "string",
"is_default_location": true,
"target_count": 1
}Updates a single InventoryReportItem
PATCH/api/product/inventory/report_items/{identifier}
Path parameters
identifierrequiredstring |
Request body application/json
dataInventoryReportItem2
Responses
200Updates a single InventoryReportItemInventoryReportItem
Show fields (12)
idintegerPrimary key of the inventory report item. Internal ID.
productPredefinedBillingItem5Product that is counted.
Show fields (81)
idintegerPrimary key of the mapped billing item. Internal ID.
namestringrequiredName of the billing item.
descriptionstringrequiredDescription of the billing item shown to the customer.
internal_descriptionstringInternal description of the billing item, not shown to the customer.
fixed_hoursnumber (float)Fixed number of hours billed.
fixed_pricenumber (float)Fixed price billed.
fixed_price_base_unitnumber (float)Base unit for the fixed price.
price_fixed_hoursnumber (float)Price for the fixed hours.
price_additional_hoursnumber (float)Price for each additional hour.
name_additional_hoursstringName of the additional hours item.
description_additional_hoursstringDescription of the additional hours item.
time_billed_on_ticket_closebooleanWhether the time is billed when the ticket is closed.
billing_typeBillingItemTypeBilling item type.
buying_pricenumber (float)Purchase price of the item.
recurrenceCRMRecurrenceRecurrence the billing item follows.
deletedbooleanWhether the billing item is deleted.
condition_date_afterstring (date-time)The item applies only to dates after this date.
condition_date_beforestring (date-time)The item applies only to dates before this date.
condition_country_codestringCountry code the item applies to.
condition_zip_code_fromstringStart of the postal code range the item applies to.
condition_zip_code_tostringEnd of the postal code range the item applies to.
condition_time_after_hourintegerThe item applies only after this hour of the day.
condition_max_lengthintegerMaximum length the item applies to.
condition_time_before_hourintegerThe item applies only before this hour of the day.
condition_sub_access_tagAccessTagAccess tag a subscription must have for the item to apply.
condition_show_despite_missing_access_tagbooleanWhether the item is shown even if the access tag is missing.
condition_sub_free_logicstringFree-form condition logic for the subscription.
fixed_price_logicstringFree-form logic that calculates the fixed price.
sub_self_service_addbooleanWhether members can add the subscription themselves.
sub_self_service_deletebooleanWhether members can cancel the subscription themselves.
sub_self_service_add_fixed_pricenumber (float)Fixed price charged when members add the subscription themselves.
sub_self_service_delete_fixed_pricenumber (float)Fixed price charged when members cancel the subscription themselves.
sub_pre_paidbooleanWhether the subscription is paid in advance.
sub_only_billed_after_startbooleanWhether the subscription is only billed after its start date.
sub_people_age_group_oneintegerUpper age limit of age group one.
sub_people_age_group_one_discountintegerDiscount in percent for age group one.
sub_people_age_group_one_freeintegerNumber of free places for age group one.
sub_people_age_group_twointegerUpper age limit of age group two.
sub_people_age_group_two_discountintegerDiscount in percent for age group two.
sub_people_age_group_two_freeintegerNumber of free places for age group two.
sub_people_age_group_threeintegerUpper age limit of age group three.
sub_people_age_group_three_discountintegerDiscount in percent for age group three.
sub_people_age_group_three_freeintegerNumber of free places for age group three.
sub_people_age_group_fourintegerUpper age limit of age group four.
sub_people_age_group_four_discountintegerDiscount in percent for age group four.
sub_people_age_group_four_freeintegerNumber of free places for age group four.
price_is_bruttobooleanWhether the prices are gross prices including tax.
skustringArtikelnummer (Stock Keeping Unit)
barcodestringBarcode (ISBN, UPC, GTIN usw.)
companyCRMCompanyCompany the billing item belongs to.
parentPredefinedBillingItem5Parent billing item, for example for variants.
is_preferredbooleanThe item is preferred and shown first.
is_defaultbooleanThe item is the default for its type.
is_discountbooleanThe item is a discount.
is_freebooleanThe item is free of charge.
is_passivebooleanThe item is passive and cannot be selected anymore.
is_globalbooleanThe item is available for all companies.
inventory_countintegerNumber of pieces in stock, if the item is a product.
stock_itembooleanThis is flag for items that can be ordered at any time
producer_guarantee_yearsnumber (float)Herstellergarantie in Jahren (ganze Jahre oder ,5-Schritte, siehe ProductGuaranteeYears). Grundlage fuer das EU GARAN Label (nur bei Garantie > 2 Jahre zulaessig). Producer guarantee of durability in years (whole or .5 steps), basis for the EU GARAN label.
producer_brandstringHersteller / Marke, die die Haltbarkeitsgarantie gibt - editierbares Feld "Brand/Trademark" des EU GARAN Labels. Producer / brand offering the commercial guarantee of durability.
energy_label_attachmentAttachment10Energielabel (EU Energieverbrauchskennzeichnung) als Bild/PDF fuer Shop, Warenkorb und Mail. EU energy label image/PDF of this product.
garan_label_attachmentAttachment10Grosses EU GARAN Label (DVO 2025/1960): kostenlose Haltbarkeitsgarantie des Herstellers von mehr als zwei Jahren, mit Jahren, Marke und Modell. Full EU GARAN label (commercial guarantee of durability > 2 years).
garan_label_pictogram_attachmentAttachment10"Nested label" / Piktogramm des EU GARAN Labels: zeigt nur die Jahre, beim Klick/Hover muss das grosse Label (garanLabelAttachment) erscheinen. EU GARAN "nested label" pictogram showing only the years; links to the full label online.
public_categorystringCategory of the item shown publicly.
condition_booking_content_typeBookingContentType12Item applies only to bookings with this content type (e.g. flight type). Null = all content types.
usage_time_baseintegerSection time pair used for usage billing: BaseBookingRealUsage::BILLING_TYPE_BLOCK_TIME or BILLING_TYPE_FLIGHT_TIME. Null = follow the usage record's billingType.
base_locationBaseLocation10Location this charge belongs to (e.g. airport landing/takeoff fee), category CATEGORY_LOCATION
condition_day_of_week_maskintegerDay-of-week bitmask (Mon=1 ... Sun=64, see DayOfWeekBitmaskHelper). Null = every day.
condition_first_usage_onlybooleanCharge applies only once per usage record (first matching section, quantity 1)
budget_grant_countintegerNumber of event sign-ups this product grants when purchased (null = no budget)
budget_create_oncebooleanIf true, budget is only created once per person+product combination. For recurring subscriptions: monthly payment but yearly budget.
ticket_quotaintegerTicketverkauf (BaseEvent::isTicketSalesEnabled): Kontingent dieser Ticketart (Event-Preis). Null = nur das Teilnehmerlimit des Events zählt.
ticket_sale_startstring (date-time)Ticketverkauf: Verkaufsstart dieser Ticketart (z. B. Frühbucher ab), null = sofort.
ticket_sale_endstring (date-time)Ticketverkauf: Verkaufsende dieser Ticketart (z. B. Frühbucher bis), null = bis zum Anmeldeschluss.
ticket_seat_zonestringTicketverkauf mit Sitzplan: Diese Ticketart gilt nur für Plätze dieser Preiszone (BaseLocationPlanItem::seatZone), null = für jeden Platz.
cancellation_term_unitstringAllowed cancellation terms for this subscription product. Null / empty = inherit the club default from settings. See CancellationTermCalculator::TERM_UNITS.
cancellation_term_datesstringComma separated list of fixed cancellation dates in DD.MM format, e.g. "31.03,30.06,30.09,31.12". Only used when cancellationTermUnit is CUSTOM.
cancellation_notice_valueintegerNumeric value of the notice period before the cancellation term. Null = inherit from settings.
cancellation_notice_unitstringUnit of the notice period: DAYS, WEEKS or MONTHS. Null = inherit from settings.
- … 6 more fields
storage_locationStorageLocationStorage location of the product.
Show fields (2)
idintegerPrimary key of the storage location. Internal ID.
namestringName of the entity.
product_namestringName of the product.
skustringStock keeping unit of the product.
barcodestringBarcode of the product.
manufacturerstringManufacturer of the product.
storage_location_namestringName of the storage location.
is_default_locationbooleanThe storage location is the default location of the product.
target_countintegerTarget stock count.
current_countintegerCounted stock.
positionintegerPosition of the item in the report.
curl --request PATCH \
--url https://your-instance.iw-erp.de/api/product/inventory/report_items/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '{}'const options = {
method: 'PATCH',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://your-instance.iw-erp.de/api/product/inventory/report_items/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/product/inventory/report_items/42"
payload = {}
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PATCH', 'https://your-instance.iw-erp.de/api/product/inventory/report_items/42', [
'body' => '{}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Patch,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/product/inventory/report_items/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/product/inventory/report_items/42")
.patch(body)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/product/inventory/report_items/42"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with package:http (no controller in the iw_erp_api package)
import 'dart:convert';
import 'package:http/http.dart' as http;
final response = await http.patch(
Uri.parse('https://your-instance.iw-erp.de/api/product/inventory/report_items/42'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({}),
);
print(response.body);{
"id": 42,
"product_name": "Beispiel",
"storage_location_name": "Beispiel",
"product": {
"name": "Beispiel",
"description": "Text",
"id": 42,
"internal_description": "Text",
"fixed_hours": 1.5,
"fixed_price": 49.9,
"fixed_price_base_unit": 49.9,
"price_fixed_hours": 49.9,
"price_additional_hours": 49.9,
"name_additional_hours": "string"
},
"storage_location": {
"id": 42,
"name": "Beispiel"
},
"sku": "string",
"barcode": "string",
"manufacturer": "string",
"is_default_location": true,
"target_count": 1
}