InventoryReportItem
Liefert eine Liste der InventoryReportItem-Objekte.
GET/api/product/inventory/report_items
Query-Parameter
idstring | |
inventoryReportstring | |
productstring | |
storageLocationstring | |
productNamestring | |
skustring | |
barcodestring | |
manufacturerstring | |
storageLocationNamestring | |
isDefaultLocationboolean | |
targetCountstring | |
currentCountstring | |
positionstring | |
searchStringstring | Text, nach dem in der Liste gesucht wird |
orderFieldNamestring | Name des Bestellfelds |
orderFieldSortstring | SortiermodusErlaubt: DESCASC |
pageinteger | Seite der Liste |
pageSizeinteger | Anzahl der Einträge je Seite |
withMaxPageNumberstring | gibt die Anzahl verfügbarer Seiten als Header zurück, wenn dies gesetzt ist |
Antworten
200Liefert eine Liste der InventoryReportItem-Objekte.array<InventoryReportItem>
Felder anzeigen (12)
idintegerPrimärschlüssel der Inventurberichts-Position. Interne ID.
productPredefinedBillingItem5Produkt, das gezählt wird.
Felder anzeigen (81)
idintegerPrimärschlüssel der zugeordneten Abrechnungsposition. Interne ID.
namestringPflichtName der Abrechnungsposition.
descriptionstringPflichtBeschreibung des Abrechnungspostens, die dem Kunden angezeigt wird.
internal_descriptionstringInterne Beschreibung der Abrechnungsposition, wird dem Kunden nicht angezeigt.
fixed_hoursnumber (float)Feste Anzahl abgerechneter Stunden.
fixed_pricenumber (float)Fester abgerechneter Preis.
fixed_price_base_unitnumber (float)Basiseinheit für den Festpreis.
price_fixed_hoursnumber (float)Preis für die Pauschalstunden.
price_additional_hoursnumber (float)Preis für jede weitere Stunde.
name_additional_hoursstringName des Zusatzstunden-Postens.
description_additional_hoursstringBeschreibung des Zusatzstundenpostens.
time_billed_on_ticket_closebooleanOb die Zeit beim Schließen des Tickets abgerechnet wird.
billing_typeBillingItemTypeTyp der Abrechnungsposition.
buying_pricenumber (float)Einkaufspreis der Position.
recurrenceCRMRecurrenceWiederholung, der die Abrechnungsposition folgt.
deletedbooleanOb die Abrechnungsposition gelöscht ist.
condition_date_afterstring (date-time)Der Posten gilt nur für Termine nach diesem Datum.
condition_date_beforestring (date-time)Der Posten gilt nur für Termine vor diesem Datum.
condition_country_codestringLändercode, für den der Posten gilt.
condition_zip_code_fromstringBeginn des PLZ-Bereichs, für den die Position gilt.
condition_zip_code_tostringEnde des PLZ-Bereichs, auf den der Posten zutrifft.
condition_time_after_hourintegerDer Posten gilt nur ab dieser Tagesstunde.
condition_max_lengthintegerMaximale Länge, für die der Eintrag gilt.
condition_time_before_hourintegerDer Posten gilt nur bis zu dieser Tagesstunde.
condition_sub_access_tagAccessTagZugriffs-Tag, das ein Abonnement haben muss, damit der Eintrag gilt.
condition_show_despite_missing_access_tagbooleanOb die Position auch dann angezeigt wird, wenn das Zugriffs-Tag fehlt.
condition_sub_free_logicstringFreie Bedingungslogik für das Abo.
fixed_price_logicstringFreie Logik, die den Festpreis berechnet.
sub_self_service_addbooleanOb Mitglieder das Abonnement selbst hinzufügen können.
sub_self_service_deletebooleanOb Mitglieder das Abonnement selbst kündigen können.
sub_self_service_add_fixed_pricenumber (float)Fester Preis, der berechnet wird, wenn Mitglieder das Abo selbst hinzufügen.
sub_self_service_delete_fixed_pricenumber (float)Fester Preis, der berechnet wird, wenn Mitglieder das Abo selbst kündigen.
sub_pre_paidbooleanOb das Abonnement im Voraus bezahlt wird.
sub_only_billed_after_startbooleanOb das Abonnement erst nach seinem Beginn abgerechnet wird.
sub_people_age_group_oneintegerObere Altersgrenze der Altersgruppe eins.
sub_people_age_group_one_discountintegerRabatt in Prozent für Altersgruppe eins.
sub_people_age_group_one_freeintegerAnzahl der freien Plätze für Altersgruppe eins.
sub_people_age_group_twointegerObere Altersgrenze der Altersgruppe zwei.
sub_people_age_group_two_discountintegerRabatt in Prozent für Altersgruppe zwei.
sub_people_age_group_two_freeintegerAnzahl der freien Plätze für Altersgruppe zwei.
sub_people_age_group_threeintegerObere Altersgrenze der Altersgruppe drei.
sub_people_age_group_three_discountintegerRabatt in Prozent für Altersgruppe drei.
sub_people_age_group_three_freeintegerAnzahl der freien Plätze für Altersgruppe drei.
sub_people_age_group_fourintegerObere Altersgrenze der Altersgruppe vier.
sub_people_age_group_four_discountintegerRabatt in Prozent für Altersgruppe vier.
sub_people_age_group_four_freeintegerAnzahl der freien Plätze für Altersgruppe vier.
price_is_bruttobooleanOb die Preise Bruttopreise inklusive Steuer sind.
skustringArtikelnummer (Stock Keeping Unit)
barcodestringBarcode (ISBN, UPC, GTIN usw.)
companyCRMCompanyUnternehmen, zu dem der Abrechnungsposten gehört.
parentPredefinedBillingItem5Übergeordneter Abrechnungsposten, zum Beispiel für Varianten.
is_preferredbooleanDer Posten ist bevorzugt und wird zuerst angezeigt.
is_defaultbooleanDer Posten ist der Standard für seinen Typ.
is_discountbooleanDer Posten ist ein Rabatt.
is_freebooleanDer Posten ist kostenfrei.
is_passivebooleanDer Posten ist passiv und kann nicht mehr ausgewählt werden.
is_globalbooleanDer Posten ist für alle Unternehmen verfügbar.
inventory_countintegerBestand an Stück, sofern der Gegenstand ein Produkt ist.
stock_itembooleanDies ist ein Kennzeichen für Artikel, die jederzeit bestellt werden können
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_brandstringHersteller / Marke, die die Haltbarkeitsgarantie gibt - editierbares Feld "Brand/Trademark" des EU GARAN Labels.
energy_label_attachmentAttachment10Energielabel (EU-Energieverbrauchskennzeichnung) als Bild/PDF für Shop, Warenkorb und E-Mail. EU-Energielabel als Bild/PDF dieses Produkts.
garan_label_attachmentAttachment10Grosses EU GARAN Label (DVO 2025/1960): kostenlose Haltbarkeitsgarantie des Herstellers von mehr als zwei Jahren, mit Jahren, Marke und Modell.
garan_label_pictogram_attachmentAttachment10„Nested label“ / Piktogramm des EU-GARAN-Labels: zeigt nur die Jahre, beim Klick/Hover muss das große Label (garanLabelAttachment) erscheinen. EU-GARAN-„nested label“-Piktogramm, das nur die Jahre zeigt; verlinkt auf das vollständige Label online.
public_categorystringKategorie des öffentlich angezeigten Postens.
condition_booking_content_typeBookingContentType12Eintrag gilt nur für Buchungen mit diesem Inhaltstyp (z. B. Flugtyp). Null = alle Inhaltstypen.
usage_time_baseintegerZeitpaar des Abschnitts für die Nutzungsabrechnung: BaseBookingRealUsage::BILLING_TYPE_BLOCK_TIME oder BILLING_TYPE_FLIGHT_TIME. Null = billingType des Nutzungsdatensatzes übernehmen.
base_locationBaseLocation10Standort, zu dem diese Gebühr gehört (z. B. Flughafen-Lande-/Startgebühr), Kategorie CATEGORY_LOCATION
condition_day_of_week_maskintegerWochentags-Bitmaske (Mo=1 ... So=64, siehe DayOfWeekBitmaskHelper). Null = jeden Tag.
condition_first_usage_onlybooleanDie Gebühr wird nur einmal je Nutzungssatz angewendet (erster passender Abschnitt, Menge 1)
budget_grant_countintegerAnzahl der Veranstaltungsanmeldungen, die dieses Produkt beim Kauf gewährt (null = kein Kontingent)
budget_create_oncebooleanWenn true, wird das Budget nur einmal pro Kombination aus Person und Produkt angelegt. Bei wiederkehrenden Abonnements: monatliche Zahlung, aber jährliches Budget.
ticket_quotaintegerTicketverkauf (BaseEvent::isTicketSalesEnabled): Kontingent dieser Ticketart (Event-Preis). Null = nur das Teilnehmerlimit der Veranstaltung 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_unitstringZulässige Kündigungsfristen für dieses Abonnement-Produkt. Null / leer = Standard des Vereins aus den Einstellungen übernehmen. Siehe CancellationTermCalculator::TERM_UNITS.
cancellation_term_datesstringKommagetrennte Liste fester Kündigungstermine im Format TT.MM, z. B. "31.03,30.06,30.09,31.12". Wird nur verwendet, wenn cancellationTermUnit CUSTOM ist.
cancellation_notice_valueintegerNumerischer Wert der Kündigungsfrist vor dem Kündigungstermin. Null = von den Einstellungen übernehmen.
cancellation_notice_unitstringEinheit der Frist: DAYS, WEEKS oder MONTHS. Null = aus den Einstellungen übernehmen.
- … 6 weitere Felder
storage_locationStorageLocationLagerort des Produkts.
Felder anzeigen (2)
idintegerPrimärschlüssel des Lagerorts. Interne ID.
namestringName der Einheit.
product_namestringName des Produkts.
skustringArtikelnummer (SKU) des Produkts.
barcodestringBarcode des Produkts.
manufacturerstringHersteller des Produkts.
storage_location_namestringName des Lagerorts.
is_default_locationbooleanDer Lagerort ist der Standardlagerort des Produkts.
target_countintegerZiel-Lagerbestand.
current_countintegerGezählter Bestand.
positionintegerPosition des Eintrags im Bericht.
curl --request GET \
--url https://eure-instanz.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://eure-instanz.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://eure-instanz.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://eure-instanz.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://eure-instanz.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://eure-instanz.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://eure-instanz.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 mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/inventory_report_item_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.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
}
]Erstellt einen einzelnen InventoryReportItem
POST/api/product/inventory/report_items
Request-Body application/json
dataInventoryReportItem2
Antworten
200Erstellt einen einzelnen InventoryReportItemInventoryReportItem
Felder anzeigen (12)
idintegerPrimärschlüssel der Inventurberichts-Position. Interne ID.
productPredefinedBillingItem5Produkt, das gezählt wird.
Felder anzeigen (81)
idintegerPrimärschlüssel der zugeordneten Abrechnungsposition. Interne ID.
namestringPflichtName der Abrechnungsposition.
descriptionstringPflichtBeschreibung des Abrechnungspostens, die dem Kunden angezeigt wird.
internal_descriptionstringInterne Beschreibung der Abrechnungsposition, wird dem Kunden nicht angezeigt.
fixed_hoursnumber (float)Feste Anzahl abgerechneter Stunden.
fixed_pricenumber (float)Fester abgerechneter Preis.
fixed_price_base_unitnumber (float)Basiseinheit für den Festpreis.
price_fixed_hoursnumber (float)Preis für die Pauschalstunden.
price_additional_hoursnumber (float)Preis für jede weitere Stunde.
name_additional_hoursstringName des Zusatzstunden-Postens.
description_additional_hoursstringBeschreibung des Zusatzstundenpostens.
time_billed_on_ticket_closebooleanOb die Zeit beim Schließen des Tickets abgerechnet wird.
billing_typeBillingItemTypeTyp der Abrechnungsposition.
buying_pricenumber (float)Einkaufspreis der Position.
recurrenceCRMRecurrenceWiederholung, der die Abrechnungsposition folgt.
deletedbooleanOb die Abrechnungsposition gelöscht ist.
condition_date_afterstring (date-time)Der Posten gilt nur für Termine nach diesem Datum.
condition_date_beforestring (date-time)Der Posten gilt nur für Termine vor diesem Datum.
condition_country_codestringLändercode, für den der Posten gilt.
condition_zip_code_fromstringBeginn des PLZ-Bereichs, für den die Position gilt.
condition_zip_code_tostringEnde des PLZ-Bereichs, auf den der Posten zutrifft.
condition_time_after_hourintegerDer Posten gilt nur ab dieser Tagesstunde.
condition_max_lengthintegerMaximale Länge, für die der Eintrag gilt.
condition_time_before_hourintegerDer Posten gilt nur bis zu dieser Tagesstunde.
condition_sub_access_tagAccessTagZugriffs-Tag, das ein Abonnement haben muss, damit der Eintrag gilt.
condition_show_despite_missing_access_tagbooleanOb die Position auch dann angezeigt wird, wenn das Zugriffs-Tag fehlt.
condition_sub_free_logicstringFreie Bedingungslogik für das Abo.
fixed_price_logicstringFreie Logik, die den Festpreis berechnet.
sub_self_service_addbooleanOb Mitglieder das Abonnement selbst hinzufügen können.
sub_self_service_deletebooleanOb Mitglieder das Abonnement selbst kündigen können.
sub_self_service_add_fixed_pricenumber (float)Fester Preis, der berechnet wird, wenn Mitglieder das Abo selbst hinzufügen.
sub_self_service_delete_fixed_pricenumber (float)Fester Preis, der berechnet wird, wenn Mitglieder das Abo selbst kündigen.
sub_pre_paidbooleanOb das Abonnement im Voraus bezahlt wird.
sub_only_billed_after_startbooleanOb das Abonnement erst nach seinem Beginn abgerechnet wird.
sub_people_age_group_oneintegerObere Altersgrenze der Altersgruppe eins.
sub_people_age_group_one_discountintegerRabatt in Prozent für Altersgruppe eins.
sub_people_age_group_one_freeintegerAnzahl der freien Plätze für Altersgruppe eins.
sub_people_age_group_twointegerObere Altersgrenze der Altersgruppe zwei.
sub_people_age_group_two_discountintegerRabatt in Prozent für Altersgruppe zwei.
sub_people_age_group_two_freeintegerAnzahl der freien Plätze für Altersgruppe zwei.
sub_people_age_group_threeintegerObere Altersgrenze der Altersgruppe drei.
sub_people_age_group_three_discountintegerRabatt in Prozent für Altersgruppe drei.
sub_people_age_group_three_freeintegerAnzahl der freien Plätze für Altersgruppe drei.
sub_people_age_group_fourintegerObere Altersgrenze der Altersgruppe vier.
sub_people_age_group_four_discountintegerRabatt in Prozent für Altersgruppe vier.
sub_people_age_group_four_freeintegerAnzahl der freien Plätze für Altersgruppe vier.
price_is_bruttobooleanOb die Preise Bruttopreise inklusive Steuer sind.
skustringArtikelnummer (Stock Keeping Unit)
barcodestringBarcode (ISBN, UPC, GTIN usw.)
companyCRMCompanyUnternehmen, zu dem der Abrechnungsposten gehört.
parentPredefinedBillingItem5Übergeordneter Abrechnungsposten, zum Beispiel für Varianten.
is_preferredbooleanDer Posten ist bevorzugt und wird zuerst angezeigt.
is_defaultbooleanDer Posten ist der Standard für seinen Typ.
is_discountbooleanDer Posten ist ein Rabatt.
is_freebooleanDer Posten ist kostenfrei.
is_passivebooleanDer Posten ist passiv und kann nicht mehr ausgewählt werden.
is_globalbooleanDer Posten ist für alle Unternehmen verfügbar.
inventory_countintegerBestand an Stück, sofern der Gegenstand ein Produkt ist.
stock_itembooleanDies ist ein Kennzeichen für Artikel, die jederzeit bestellt werden können
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_brandstringHersteller / Marke, die die Haltbarkeitsgarantie gibt - editierbares Feld "Brand/Trademark" des EU GARAN Labels.
energy_label_attachmentAttachment10Energielabel (EU-Energieverbrauchskennzeichnung) als Bild/PDF für Shop, Warenkorb und E-Mail. EU-Energielabel als Bild/PDF dieses Produkts.
garan_label_attachmentAttachment10Grosses EU GARAN Label (DVO 2025/1960): kostenlose Haltbarkeitsgarantie des Herstellers von mehr als zwei Jahren, mit Jahren, Marke und Modell.
garan_label_pictogram_attachmentAttachment10„Nested label“ / Piktogramm des EU-GARAN-Labels: zeigt nur die Jahre, beim Klick/Hover muss das große Label (garanLabelAttachment) erscheinen. EU-GARAN-„nested label“-Piktogramm, das nur die Jahre zeigt; verlinkt auf das vollständige Label online.
public_categorystringKategorie des öffentlich angezeigten Postens.
condition_booking_content_typeBookingContentType12Eintrag gilt nur für Buchungen mit diesem Inhaltstyp (z. B. Flugtyp). Null = alle Inhaltstypen.
usage_time_baseintegerZeitpaar des Abschnitts für die Nutzungsabrechnung: BaseBookingRealUsage::BILLING_TYPE_BLOCK_TIME oder BILLING_TYPE_FLIGHT_TIME. Null = billingType des Nutzungsdatensatzes übernehmen.
base_locationBaseLocation10Standort, zu dem diese Gebühr gehört (z. B. Flughafen-Lande-/Startgebühr), Kategorie CATEGORY_LOCATION
condition_day_of_week_maskintegerWochentags-Bitmaske (Mo=1 ... So=64, siehe DayOfWeekBitmaskHelper). Null = jeden Tag.
condition_first_usage_onlybooleanDie Gebühr wird nur einmal je Nutzungssatz angewendet (erster passender Abschnitt, Menge 1)
budget_grant_countintegerAnzahl der Veranstaltungsanmeldungen, die dieses Produkt beim Kauf gewährt (null = kein Kontingent)
budget_create_oncebooleanWenn true, wird das Budget nur einmal pro Kombination aus Person und Produkt angelegt. Bei wiederkehrenden Abonnements: monatliche Zahlung, aber jährliches Budget.
ticket_quotaintegerTicketverkauf (BaseEvent::isTicketSalesEnabled): Kontingent dieser Ticketart (Event-Preis). Null = nur das Teilnehmerlimit der Veranstaltung 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_unitstringZulässige Kündigungsfristen für dieses Abonnement-Produkt. Null / leer = Standard des Vereins aus den Einstellungen übernehmen. Siehe CancellationTermCalculator::TERM_UNITS.
cancellation_term_datesstringKommagetrennte Liste fester Kündigungstermine im Format TT.MM, z. B. "31.03,30.06,30.09,31.12". Wird nur verwendet, wenn cancellationTermUnit CUSTOM ist.
cancellation_notice_valueintegerNumerischer Wert der Kündigungsfrist vor dem Kündigungstermin. Null = von den Einstellungen übernehmen.
cancellation_notice_unitstringEinheit der Frist: DAYS, WEEKS oder MONTHS. Null = aus den Einstellungen übernehmen.
- … 6 weitere Felder
storage_locationStorageLocationLagerort des Produkts.
Felder anzeigen (2)
idintegerPrimärschlüssel des Lagerorts. Interne ID.
namestringName der Einheit.
product_namestringName des Produkts.
skustringArtikelnummer (SKU) des Produkts.
barcodestringBarcode des Produkts.
manufacturerstringHersteller des Produkts.
storage_location_namestringName des Lagerorts.
is_default_locationbooleanDer Lagerort ist der Standardlagerort des Produkts.
target_countintegerZiel-Lagerbestand.
current_countintegerGezählter Bestand.
positionintegerPosition des Eintrags im Bericht.
curl --request POST \
--url https://eure-instanz.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://eure-instanz.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://eure-instanz.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://eure-instanz.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://eure-instanz.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://eure-instanz.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://eure-instanz.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 mit dem Package iw_erp_api
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 = 'eure-instanz.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
}Liefert ein einzelnes InventoryReportItem-Objekt mit der angegebenen ID.
GET/api/product/inventory/report_items/{identifier}
Pfad-Parameter
identifierPflichtstring |
Antworten
200Liefert ein einzelnes InventoryReportItem-Objekt.InventoryReportItem
Felder anzeigen (12)
idintegerPrimärschlüssel der Inventurberichts-Position. Interne ID.
productPredefinedBillingItem5Produkt, das gezählt wird.
Felder anzeigen (81)
idintegerPrimärschlüssel der zugeordneten Abrechnungsposition. Interne ID.
namestringPflichtName der Abrechnungsposition.
descriptionstringPflichtBeschreibung des Abrechnungspostens, die dem Kunden angezeigt wird.
internal_descriptionstringInterne Beschreibung der Abrechnungsposition, wird dem Kunden nicht angezeigt.
fixed_hoursnumber (float)Feste Anzahl abgerechneter Stunden.
fixed_pricenumber (float)Fester abgerechneter Preis.
fixed_price_base_unitnumber (float)Basiseinheit für den Festpreis.
price_fixed_hoursnumber (float)Preis für die Pauschalstunden.
price_additional_hoursnumber (float)Preis für jede weitere Stunde.
name_additional_hoursstringName des Zusatzstunden-Postens.
description_additional_hoursstringBeschreibung des Zusatzstundenpostens.
time_billed_on_ticket_closebooleanOb die Zeit beim Schließen des Tickets abgerechnet wird.
billing_typeBillingItemTypeTyp der Abrechnungsposition.
buying_pricenumber (float)Einkaufspreis der Position.
recurrenceCRMRecurrenceWiederholung, der die Abrechnungsposition folgt.
deletedbooleanOb die Abrechnungsposition gelöscht ist.
condition_date_afterstring (date-time)Der Posten gilt nur für Termine nach diesem Datum.
condition_date_beforestring (date-time)Der Posten gilt nur für Termine vor diesem Datum.
condition_country_codestringLändercode, für den der Posten gilt.
condition_zip_code_fromstringBeginn des PLZ-Bereichs, für den die Position gilt.
condition_zip_code_tostringEnde des PLZ-Bereichs, auf den der Posten zutrifft.
condition_time_after_hourintegerDer Posten gilt nur ab dieser Tagesstunde.
condition_max_lengthintegerMaximale Länge, für die der Eintrag gilt.
condition_time_before_hourintegerDer Posten gilt nur bis zu dieser Tagesstunde.
condition_sub_access_tagAccessTagZugriffs-Tag, das ein Abonnement haben muss, damit der Eintrag gilt.
condition_show_despite_missing_access_tagbooleanOb die Position auch dann angezeigt wird, wenn das Zugriffs-Tag fehlt.
condition_sub_free_logicstringFreie Bedingungslogik für das Abo.
fixed_price_logicstringFreie Logik, die den Festpreis berechnet.
sub_self_service_addbooleanOb Mitglieder das Abonnement selbst hinzufügen können.
sub_self_service_deletebooleanOb Mitglieder das Abonnement selbst kündigen können.
sub_self_service_add_fixed_pricenumber (float)Fester Preis, der berechnet wird, wenn Mitglieder das Abo selbst hinzufügen.
sub_self_service_delete_fixed_pricenumber (float)Fester Preis, der berechnet wird, wenn Mitglieder das Abo selbst kündigen.
sub_pre_paidbooleanOb das Abonnement im Voraus bezahlt wird.
sub_only_billed_after_startbooleanOb das Abonnement erst nach seinem Beginn abgerechnet wird.
sub_people_age_group_oneintegerObere Altersgrenze der Altersgruppe eins.
sub_people_age_group_one_discountintegerRabatt in Prozent für Altersgruppe eins.
sub_people_age_group_one_freeintegerAnzahl der freien Plätze für Altersgruppe eins.
sub_people_age_group_twointegerObere Altersgrenze der Altersgruppe zwei.
sub_people_age_group_two_discountintegerRabatt in Prozent für Altersgruppe zwei.
sub_people_age_group_two_freeintegerAnzahl der freien Plätze für Altersgruppe zwei.
sub_people_age_group_threeintegerObere Altersgrenze der Altersgruppe drei.
sub_people_age_group_three_discountintegerRabatt in Prozent für Altersgruppe drei.
sub_people_age_group_three_freeintegerAnzahl der freien Plätze für Altersgruppe drei.
sub_people_age_group_fourintegerObere Altersgrenze der Altersgruppe vier.
sub_people_age_group_four_discountintegerRabatt in Prozent für Altersgruppe vier.
sub_people_age_group_four_freeintegerAnzahl der freien Plätze für Altersgruppe vier.
price_is_bruttobooleanOb die Preise Bruttopreise inklusive Steuer sind.
skustringArtikelnummer (Stock Keeping Unit)
barcodestringBarcode (ISBN, UPC, GTIN usw.)
companyCRMCompanyUnternehmen, zu dem der Abrechnungsposten gehört.
parentPredefinedBillingItem5Übergeordneter Abrechnungsposten, zum Beispiel für Varianten.
is_preferredbooleanDer Posten ist bevorzugt und wird zuerst angezeigt.
is_defaultbooleanDer Posten ist der Standard für seinen Typ.
is_discountbooleanDer Posten ist ein Rabatt.
is_freebooleanDer Posten ist kostenfrei.
is_passivebooleanDer Posten ist passiv und kann nicht mehr ausgewählt werden.
is_globalbooleanDer Posten ist für alle Unternehmen verfügbar.
inventory_countintegerBestand an Stück, sofern der Gegenstand ein Produkt ist.
stock_itembooleanDies ist ein Kennzeichen für Artikel, die jederzeit bestellt werden können
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_brandstringHersteller / Marke, die die Haltbarkeitsgarantie gibt - editierbares Feld "Brand/Trademark" des EU GARAN Labels.
energy_label_attachmentAttachment10Energielabel (EU-Energieverbrauchskennzeichnung) als Bild/PDF für Shop, Warenkorb und E-Mail. EU-Energielabel als Bild/PDF dieses Produkts.
garan_label_attachmentAttachment10Grosses EU GARAN Label (DVO 2025/1960): kostenlose Haltbarkeitsgarantie des Herstellers von mehr als zwei Jahren, mit Jahren, Marke und Modell.
garan_label_pictogram_attachmentAttachment10„Nested label“ / Piktogramm des EU-GARAN-Labels: zeigt nur die Jahre, beim Klick/Hover muss das große Label (garanLabelAttachment) erscheinen. EU-GARAN-„nested label“-Piktogramm, das nur die Jahre zeigt; verlinkt auf das vollständige Label online.
public_categorystringKategorie des öffentlich angezeigten Postens.
condition_booking_content_typeBookingContentType12Eintrag gilt nur für Buchungen mit diesem Inhaltstyp (z. B. Flugtyp). Null = alle Inhaltstypen.
usage_time_baseintegerZeitpaar des Abschnitts für die Nutzungsabrechnung: BaseBookingRealUsage::BILLING_TYPE_BLOCK_TIME oder BILLING_TYPE_FLIGHT_TIME. Null = billingType des Nutzungsdatensatzes übernehmen.
base_locationBaseLocation10Standort, zu dem diese Gebühr gehört (z. B. Flughafen-Lande-/Startgebühr), Kategorie CATEGORY_LOCATION
condition_day_of_week_maskintegerWochentags-Bitmaske (Mo=1 ... So=64, siehe DayOfWeekBitmaskHelper). Null = jeden Tag.
condition_first_usage_onlybooleanDie Gebühr wird nur einmal je Nutzungssatz angewendet (erster passender Abschnitt, Menge 1)
budget_grant_countintegerAnzahl der Veranstaltungsanmeldungen, die dieses Produkt beim Kauf gewährt (null = kein Kontingent)
budget_create_oncebooleanWenn true, wird das Budget nur einmal pro Kombination aus Person und Produkt angelegt. Bei wiederkehrenden Abonnements: monatliche Zahlung, aber jährliches Budget.
ticket_quotaintegerTicketverkauf (BaseEvent::isTicketSalesEnabled): Kontingent dieser Ticketart (Event-Preis). Null = nur das Teilnehmerlimit der Veranstaltung 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_unitstringZulässige Kündigungsfristen für dieses Abonnement-Produkt. Null / leer = Standard des Vereins aus den Einstellungen übernehmen. Siehe CancellationTermCalculator::TERM_UNITS.
cancellation_term_datesstringKommagetrennte Liste fester Kündigungstermine im Format TT.MM, z. B. "31.03,30.06,30.09,31.12". Wird nur verwendet, wenn cancellationTermUnit CUSTOM ist.
cancellation_notice_valueintegerNumerischer Wert der Kündigungsfrist vor dem Kündigungstermin. Null = von den Einstellungen übernehmen.
cancellation_notice_unitstringEinheit der Frist: DAYS, WEEKS oder MONTHS. Null = aus den Einstellungen übernehmen.
- … 6 weitere Felder
storage_locationStorageLocationLagerort des Produkts.
Felder anzeigen (2)
idintegerPrimärschlüssel des Lagerorts. Interne ID.
namestringName der Einheit.
product_namestringName des Produkts.
skustringArtikelnummer (SKU) des Produkts.
barcodestringBarcode des Produkts.
manufacturerstringHersteller des Produkts.
storage_location_namestringName des Lagerorts.
is_default_locationbooleanDer Lagerort ist der Standardlagerort des Produkts.
target_countintegerZiel-Lagerbestand.
current_countintegerGezählter Bestand.
positionintegerPosition des Eintrags im Bericht.
curl --request GET \
--url https://eure-instanz.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://eure-instanz.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://eure-instanz.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://eure-instanz.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://eure-instanz.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://eure-instanz.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://eure-instanz.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 mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/inventory_report_item_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.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
}Aktualisiert ein einzelnes InventoryReportItem
PUT/api/product/inventory/report_items/{identifier}
Pfad-Parameter
identifierPflichtstring |
Request-Body application/json
dataInventoryReportItem2
Antworten
200Aktualisiert ein einzelnes InventoryReportItemInventoryReportItem
Felder anzeigen (12)
idintegerPrimärschlüssel der Inventurberichts-Position. Interne ID.
productPredefinedBillingItem5Produkt, das gezählt wird.
Felder anzeigen (81)
idintegerPrimärschlüssel der zugeordneten Abrechnungsposition. Interne ID.
namestringPflichtName der Abrechnungsposition.
descriptionstringPflichtBeschreibung des Abrechnungspostens, die dem Kunden angezeigt wird.
internal_descriptionstringInterne Beschreibung der Abrechnungsposition, wird dem Kunden nicht angezeigt.
fixed_hoursnumber (float)Feste Anzahl abgerechneter Stunden.
fixed_pricenumber (float)Fester abgerechneter Preis.
fixed_price_base_unitnumber (float)Basiseinheit für den Festpreis.
price_fixed_hoursnumber (float)Preis für die Pauschalstunden.
price_additional_hoursnumber (float)Preis für jede weitere Stunde.
name_additional_hoursstringName des Zusatzstunden-Postens.
description_additional_hoursstringBeschreibung des Zusatzstundenpostens.
time_billed_on_ticket_closebooleanOb die Zeit beim Schließen des Tickets abgerechnet wird.
billing_typeBillingItemTypeTyp der Abrechnungsposition.
buying_pricenumber (float)Einkaufspreis der Position.
recurrenceCRMRecurrenceWiederholung, der die Abrechnungsposition folgt.
deletedbooleanOb die Abrechnungsposition gelöscht ist.
condition_date_afterstring (date-time)Der Posten gilt nur für Termine nach diesem Datum.
condition_date_beforestring (date-time)Der Posten gilt nur für Termine vor diesem Datum.
condition_country_codestringLändercode, für den der Posten gilt.
condition_zip_code_fromstringBeginn des PLZ-Bereichs, für den die Position gilt.
condition_zip_code_tostringEnde des PLZ-Bereichs, auf den der Posten zutrifft.
condition_time_after_hourintegerDer Posten gilt nur ab dieser Tagesstunde.
condition_max_lengthintegerMaximale Länge, für die der Eintrag gilt.
condition_time_before_hourintegerDer Posten gilt nur bis zu dieser Tagesstunde.
condition_sub_access_tagAccessTagZugriffs-Tag, das ein Abonnement haben muss, damit der Eintrag gilt.
condition_show_despite_missing_access_tagbooleanOb die Position auch dann angezeigt wird, wenn das Zugriffs-Tag fehlt.
condition_sub_free_logicstringFreie Bedingungslogik für das Abo.
fixed_price_logicstringFreie Logik, die den Festpreis berechnet.
sub_self_service_addbooleanOb Mitglieder das Abonnement selbst hinzufügen können.
sub_self_service_deletebooleanOb Mitglieder das Abonnement selbst kündigen können.
sub_self_service_add_fixed_pricenumber (float)Fester Preis, der berechnet wird, wenn Mitglieder das Abo selbst hinzufügen.
sub_self_service_delete_fixed_pricenumber (float)Fester Preis, der berechnet wird, wenn Mitglieder das Abo selbst kündigen.
sub_pre_paidbooleanOb das Abonnement im Voraus bezahlt wird.
sub_only_billed_after_startbooleanOb das Abonnement erst nach seinem Beginn abgerechnet wird.
sub_people_age_group_oneintegerObere Altersgrenze der Altersgruppe eins.
sub_people_age_group_one_discountintegerRabatt in Prozent für Altersgruppe eins.
sub_people_age_group_one_freeintegerAnzahl der freien Plätze für Altersgruppe eins.
sub_people_age_group_twointegerObere Altersgrenze der Altersgruppe zwei.
sub_people_age_group_two_discountintegerRabatt in Prozent für Altersgruppe zwei.
sub_people_age_group_two_freeintegerAnzahl der freien Plätze für Altersgruppe zwei.
sub_people_age_group_threeintegerObere Altersgrenze der Altersgruppe drei.
sub_people_age_group_three_discountintegerRabatt in Prozent für Altersgruppe drei.
sub_people_age_group_three_freeintegerAnzahl der freien Plätze für Altersgruppe drei.
sub_people_age_group_fourintegerObere Altersgrenze der Altersgruppe vier.
sub_people_age_group_four_discountintegerRabatt in Prozent für Altersgruppe vier.
sub_people_age_group_four_freeintegerAnzahl der freien Plätze für Altersgruppe vier.
price_is_bruttobooleanOb die Preise Bruttopreise inklusive Steuer sind.
skustringArtikelnummer (Stock Keeping Unit)
barcodestringBarcode (ISBN, UPC, GTIN usw.)
companyCRMCompanyUnternehmen, zu dem der Abrechnungsposten gehört.
parentPredefinedBillingItem5Übergeordneter Abrechnungsposten, zum Beispiel für Varianten.
is_preferredbooleanDer Posten ist bevorzugt und wird zuerst angezeigt.
is_defaultbooleanDer Posten ist der Standard für seinen Typ.
is_discountbooleanDer Posten ist ein Rabatt.
is_freebooleanDer Posten ist kostenfrei.
is_passivebooleanDer Posten ist passiv und kann nicht mehr ausgewählt werden.
is_globalbooleanDer Posten ist für alle Unternehmen verfügbar.
inventory_countintegerBestand an Stück, sofern der Gegenstand ein Produkt ist.
stock_itembooleanDies ist ein Kennzeichen für Artikel, die jederzeit bestellt werden können
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_brandstringHersteller / Marke, die die Haltbarkeitsgarantie gibt - editierbares Feld "Brand/Trademark" des EU GARAN Labels.
energy_label_attachmentAttachment10Energielabel (EU-Energieverbrauchskennzeichnung) als Bild/PDF für Shop, Warenkorb und E-Mail. EU-Energielabel als Bild/PDF dieses Produkts.
garan_label_attachmentAttachment10Grosses EU GARAN Label (DVO 2025/1960): kostenlose Haltbarkeitsgarantie des Herstellers von mehr als zwei Jahren, mit Jahren, Marke und Modell.
garan_label_pictogram_attachmentAttachment10„Nested label“ / Piktogramm des EU-GARAN-Labels: zeigt nur die Jahre, beim Klick/Hover muss das große Label (garanLabelAttachment) erscheinen. EU-GARAN-„nested label“-Piktogramm, das nur die Jahre zeigt; verlinkt auf das vollständige Label online.
public_categorystringKategorie des öffentlich angezeigten Postens.
condition_booking_content_typeBookingContentType12Eintrag gilt nur für Buchungen mit diesem Inhaltstyp (z. B. Flugtyp). Null = alle Inhaltstypen.
usage_time_baseintegerZeitpaar des Abschnitts für die Nutzungsabrechnung: BaseBookingRealUsage::BILLING_TYPE_BLOCK_TIME oder BILLING_TYPE_FLIGHT_TIME. Null = billingType des Nutzungsdatensatzes übernehmen.
base_locationBaseLocation10Standort, zu dem diese Gebühr gehört (z. B. Flughafen-Lande-/Startgebühr), Kategorie CATEGORY_LOCATION
condition_day_of_week_maskintegerWochentags-Bitmaske (Mo=1 ... So=64, siehe DayOfWeekBitmaskHelper). Null = jeden Tag.
condition_first_usage_onlybooleanDie Gebühr wird nur einmal je Nutzungssatz angewendet (erster passender Abschnitt, Menge 1)
budget_grant_countintegerAnzahl der Veranstaltungsanmeldungen, die dieses Produkt beim Kauf gewährt (null = kein Kontingent)
budget_create_oncebooleanWenn true, wird das Budget nur einmal pro Kombination aus Person und Produkt angelegt. Bei wiederkehrenden Abonnements: monatliche Zahlung, aber jährliches Budget.
ticket_quotaintegerTicketverkauf (BaseEvent::isTicketSalesEnabled): Kontingent dieser Ticketart (Event-Preis). Null = nur das Teilnehmerlimit der Veranstaltung 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_unitstringZulässige Kündigungsfristen für dieses Abonnement-Produkt. Null / leer = Standard des Vereins aus den Einstellungen übernehmen. Siehe CancellationTermCalculator::TERM_UNITS.
cancellation_term_datesstringKommagetrennte Liste fester Kündigungstermine im Format TT.MM, z. B. "31.03,30.06,30.09,31.12". Wird nur verwendet, wenn cancellationTermUnit CUSTOM ist.
cancellation_notice_valueintegerNumerischer Wert der Kündigungsfrist vor dem Kündigungstermin. Null = von den Einstellungen übernehmen.
cancellation_notice_unitstringEinheit der Frist: DAYS, WEEKS oder MONTHS. Null = aus den Einstellungen übernehmen.
- … 6 weitere Felder
storage_locationStorageLocationLagerort des Produkts.
Felder anzeigen (2)
idintegerPrimärschlüssel des Lagerorts. Interne ID.
namestringName der Einheit.
product_namestringName des Produkts.
skustringArtikelnummer (SKU) des Produkts.
barcodestringBarcode des Produkts.
manufacturerstringHersteller des Produkts.
storage_location_namestringName des Lagerorts.
is_default_locationbooleanDer Lagerort ist der Standardlagerort des Produkts.
target_countintegerZiel-Lagerbestand.
current_countintegerGezählter Bestand.
positionintegerPosition des Eintrags im Bericht.
curl --request PUT \
--url https://eure-instanz.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://eure-instanz.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://eure-instanz.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://eure-instanz.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://eure-instanz.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://eure-instanz.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://eure-instanz.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 mit dem Package iw_erp_api
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 = 'eure-instanz.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
}Aktualisiert ein einzelnes InventoryReportItem
PATCH/api/product/inventory/report_items/{identifier}
Pfad-Parameter
identifierPflichtstring |
Request-Body application/json
dataInventoryReportItem2
Antworten
200Aktualisiert ein einzelnes InventoryReportItemInventoryReportItem
Felder anzeigen (12)
idintegerPrimärschlüssel der Inventurberichts-Position. Interne ID.
productPredefinedBillingItem5Produkt, das gezählt wird.
Felder anzeigen (81)
idintegerPrimärschlüssel der zugeordneten Abrechnungsposition. Interne ID.
namestringPflichtName der Abrechnungsposition.
descriptionstringPflichtBeschreibung des Abrechnungspostens, die dem Kunden angezeigt wird.
internal_descriptionstringInterne Beschreibung der Abrechnungsposition, wird dem Kunden nicht angezeigt.
fixed_hoursnumber (float)Feste Anzahl abgerechneter Stunden.
fixed_pricenumber (float)Fester abgerechneter Preis.
fixed_price_base_unitnumber (float)Basiseinheit für den Festpreis.
price_fixed_hoursnumber (float)Preis für die Pauschalstunden.
price_additional_hoursnumber (float)Preis für jede weitere Stunde.
name_additional_hoursstringName des Zusatzstunden-Postens.
description_additional_hoursstringBeschreibung des Zusatzstundenpostens.
time_billed_on_ticket_closebooleanOb die Zeit beim Schließen des Tickets abgerechnet wird.
billing_typeBillingItemTypeTyp der Abrechnungsposition.
buying_pricenumber (float)Einkaufspreis der Position.
recurrenceCRMRecurrenceWiederholung, der die Abrechnungsposition folgt.
deletedbooleanOb die Abrechnungsposition gelöscht ist.
condition_date_afterstring (date-time)Der Posten gilt nur für Termine nach diesem Datum.
condition_date_beforestring (date-time)Der Posten gilt nur für Termine vor diesem Datum.
condition_country_codestringLändercode, für den der Posten gilt.
condition_zip_code_fromstringBeginn des PLZ-Bereichs, für den die Position gilt.
condition_zip_code_tostringEnde des PLZ-Bereichs, auf den der Posten zutrifft.
condition_time_after_hourintegerDer Posten gilt nur ab dieser Tagesstunde.
condition_max_lengthintegerMaximale Länge, für die der Eintrag gilt.
condition_time_before_hourintegerDer Posten gilt nur bis zu dieser Tagesstunde.
condition_sub_access_tagAccessTagZugriffs-Tag, das ein Abonnement haben muss, damit der Eintrag gilt.
condition_show_despite_missing_access_tagbooleanOb die Position auch dann angezeigt wird, wenn das Zugriffs-Tag fehlt.
condition_sub_free_logicstringFreie Bedingungslogik für das Abo.
fixed_price_logicstringFreie Logik, die den Festpreis berechnet.
sub_self_service_addbooleanOb Mitglieder das Abonnement selbst hinzufügen können.
sub_self_service_deletebooleanOb Mitglieder das Abonnement selbst kündigen können.
sub_self_service_add_fixed_pricenumber (float)Fester Preis, der berechnet wird, wenn Mitglieder das Abo selbst hinzufügen.
sub_self_service_delete_fixed_pricenumber (float)Fester Preis, der berechnet wird, wenn Mitglieder das Abo selbst kündigen.
sub_pre_paidbooleanOb das Abonnement im Voraus bezahlt wird.
sub_only_billed_after_startbooleanOb das Abonnement erst nach seinem Beginn abgerechnet wird.
sub_people_age_group_oneintegerObere Altersgrenze der Altersgruppe eins.
sub_people_age_group_one_discountintegerRabatt in Prozent für Altersgruppe eins.
sub_people_age_group_one_freeintegerAnzahl der freien Plätze für Altersgruppe eins.
sub_people_age_group_twointegerObere Altersgrenze der Altersgruppe zwei.
sub_people_age_group_two_discountintegerRabatt in Prozent für Altersgruppe zwei.
sub_people_age_group_two_freeintegerAnzahl der freien Plätze für Altersgruppe zwei.
sub_people_age_group_threeintegerObere Altersgrenze der Altersgruppe drei.
sub_people_age_group_three_discountintegerRabatt in Prozent für Altersgruppe drei.
sub_people_age_group_three_freeintegerAnzahl der freien Plätze für Altersgruppe drei.
sub_people_age_group_fourintegerObere Altersgrenze der Altersgruppe vier.
sub_people_age_group_four_discountintegerRabatt in Prozent für Altersgruppe vier.
sub_people_age_group_four_freeintegerAnzahl der freien Plätze für Altersgruppe vier.
price_is_bruttobooleanOb die Preise Bruttopreise inklusive Steuer sind.
skustringArtikelnummer (Stock Keeping Unit)
barcodestringBarcode (ISBN, UPC, GTIN usw.)
companyCRMCompanyUnternehmen, zu dem der Abrechnungsposten gehört.
parentPredefinedBillingItem5Übergeordneter Abrechnungsposten, zum Beispiel für Varianten.
is_preferredbooleanDer Posten ist bevorzugt und wird zuerst angezeigt.
is_defaultbooleanDer Posten ist der Standard für seinen Typ.
is_discountbooleanDer Posten ist ein Rabatt.
is_freebooleanDer Posten ist kostenfrei.
is_passivebooleanDer Posten ist passiv und kann nicht mehr ausgewählt werden.
is_globalbooleanDer Posten ist für alle Unternehmen verfügbar.
inventory_countintegerBestand an Stück, sofern der Gegenstand ein Produkt ist.
stock_itembooleanDies ist ein Kennzeichen für Artikel, die jederzeit bestellt werden können
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_brandstringHersteller / Marke, die die Haltbarkeitsgarantie gibt - editierbares Feld "Brand/Trademark" des EU GARAN Labels.
energy_label_attachmentAttachment10Energielabel (EU-Energieverbrauchskennzeichnung) als Bild/PDF für Shop, Warenkorb und E-Mail. EU-Energielabel als Bild/PDF dieses Produkts.
garan_label_attachmentAttachment10Grosses EU GARAN Label (DVO 2025/1960): kostenlose Haltbarkeitsgarantie des Herstellers von mehr als zwei Jahren, mit Jahren, Marke und Modell.
garan_label_pictogram_attachmentAttachment10„Nested label“ / Piktogramm des EU-GARAN-Labels: zeigt nur die Jahre, beim Klick/Hover muss das große Label (garanLabelAttachment) erscheinen. EU-GARAN-„nested label“-Piktogramm, das nur die Jahre zeigt; verlinkt auf das vollständige Label online.
public_categorystringKategorie des öffentlich angezeigten Postens.
condition_booking_content_typeBookingContentType12Eintrag gilt nur für Buchungen mit diesem Inhaltstyp (z. B. Flugtyp). Null = alle Inhaltstypen.
usage_time_baseintegerZeitpaar des Abschnitts für die Nutzungsabrechnung: BaseBookingRealUsage::BILLING_TYPE_BLOCK_TIME oder BILLING_TYPE_FLIGHT_TIME. Null = billingType des Nutzungsdatensatzes übernehmen.
base_locationBaseLocation10Standort, zu dem diese Gebühr gehört (z. B. Flughafen-Lande-/Startgebühr), Kategorie CATEGORY_LOCATION
condition_day_of_week_maskintegerWochentags-Bitmaske (Mo=1 ... So=64, siehe DayOfWeekBitmaskHelper). Null = jeden Tag.
condition_first_usage_onlybooleanDie Gebühr wird nur einmal je Nutzungssatz angewendet (erster passender Abschnitt, Menge 1)
budget_grant_countintegerAnzahl der Veranstaltungsanmeldungen, die dieses Produkt beim Kauf gewährt (null = kein Kontingent)
budget_create_oncebooleanWenn true, wird das Budget nur einmal pro Kombination aus Person und Produkt angelegt. Bei wiederkehrenden Abonnements: monatliche Zahlung, aber jährliches Budget.
ticket_quotaintegerTicketverkauf (BaseEvent::isTicketSalesEnabled): Kontingent dieser Ticketart (Event-Preis). Null = nur das Teilnehmerlimit der Veranstaltung 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_unitstringZulässige Kündigungsfristen für dieses Abonnement-Produkt. Null / leer = Standard des Vereins aus den Einstellungen übernehmen. Siehe CancellationTermCalculator::TERM_UNITS.
cancellation_term_datesstringKommagetrennte Liste fester Kündigungstermine im Format TT.MM, z. B. "31.03,30.06,30.09,31.12". Wird nur verwendet, wenn cancellationTermUnit CUSTOM ist.
cancellation_notice_valueintegerNumerischer Wert der Kündigungsfrist vor dem Kündigungstermin. Null = von den Einstellungen übernehmen.
cancellation_notice_unitstringEinheit der Frist: DAYS, WEEKS oder MONTHS. Null = aus den Einstellungen übernehmen.
- … 6 weitere Felder
storage_locationStorageLocationLagerort des Produkts.
Felder anzeigen (2)
idintegerPrimärschlüssel des Lagerorts. Interne ID.
namestringName der Einheit.
product_namestringName des Produkts.
skustringArtikelnummer (SKU) des Produkts.
barcodestringBarcode des Produkts.
manufacturerstringHersteller des Produkts.
storage_location_namestringName des Lagerorts.
is_default_locationbooleanDer Lagerort ist der Standardlagerort des Produkts.
target_countintegerZiel-Lagerbestand.
current_countintegerGezählter Bestand.
positionintegerPosition des Eintrags im Bericht.
curl --request PATCH \
--url https://eure-instanz.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://eure-instanz.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://eure-instanz.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://eure-instanz.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://eure-instanz.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://eure-instanz.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://eure-instanz.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 mit package:http (kein Controller im Package iw_erp_api)
import 'dart:convert';
import 'package:http/http.dart' as http;
final response = await http.patch(
Uri.parse('https://eure-instanz.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
}