inventoryErrorCodes top-level constant
Die Codes, die die Lager-Endpunkte selbst senden (errorCodes.inventory;
register_user_not_allowed steht bei inventoryRequestErrorCodes).
validation traegt errors: [{field, message}], rate_limited traegt
retryAfterSec (dazu die Kopfzeile Retry-After), auch bei
sendWebhookTest nach 20 Probesendungen je Wiener Kalendertag (dann bis
Mitternacht in Wien).
Seit 10.4 hinten angehaengt, in der Reihenfolge des Vertrags: die Codes der
schreibenden Endpunkte. idempotency_key_required (Schluessel fehlt),
idempotency_conflict (derselbe Schluessel mit anderem Inhalt),
exceeds_stock (Abgang, Umbuchung und Zustandswechsel ueberziehen nie),
insufficient_available (Reservierung; details['details'], siehe
inventoryShortfalls), code_taken und external_id_taken (mit field
und articleId des Artikels, dem der Code gehoert), stock_kind_locked,
reservation_not_found, reservation_not_active …
Seit 10.5 dahinter die Codes der Variantengruppen: variant_group_not_found
(unbekannte Kennung), variant_already_exists (die Kombination gibt es in
der Gruppe schon, dann mit articleId der bestehenden Variante, oder sie
steht zweimal in variants; jeweils mit field),
invalid_variant_attributes (ein Merkmal fehlt, ist unbekannt oder sein
Wert steht nicht in der Werteliste; field und errors),
variant_group_inactive (stillgelegte Gruppe: kein addVariant, keine
Aenderung ausser erneutem Stilllegen) und variant_limit (mehr als
variantGroupActiveMax aktive Varianten je Gruppe). Wiederverwendet:
too_many_positions traegt bei Varianten field (variants,
createMatrix bzw. externalIds bei addVariant): die Anfrage braeuchte
mehr Schreibvorgaenge, als in einen Vorgang passen; geschrieben wurde nichts.
Seit 10.7 dahinter die Codes der Inventur: stocktake_not_found,
stocktake_not_open (Zaehlen oder Stornieren ausserhalb der Zaehlung bzw.
an einer Position, die nicht zum Nachzaehlen frei ist), stocktake_closed
(abgeschlossen oder abgebrochen: nichts mehr schreibbar),
stocktake_not_in_review (Nachzaehlen und Abschluss nur in review),
stocktake_closing (der Abschluss bucht gerade), stocktake_location_busy
(am Standort laeuft schon eine Inventur; inventoryBusyStocktakeId nennt
sie), stocktake_review_running (die Pruefung rechnet noch),
stocktake_recount_open (Abschluss, solange Positionen zum Nachzaehlen
offen sind: erst nachzaehlen, dann erneut pruefen), article_not_in_scope,
article_not_tracked, count_not_found, count_already_voided,
serial_already_counted (dieselbe Seriennummer zweimal in einer Runde),
too_many_counts (mehr als stocktakeCountsPerItemMax Zaehlungen je
Position und Runde) und stocktake_not_closed (das Protokoll gibt es erst
nach dem Abschluss, auch nicht fuer eine abgebrochene Inventur).
Implementation
const List<String> inventoryErrorCodes = [
'validation',
'invalid_cursor',
'article_not_found',
'webhook_not_found',
'webhook_limit',
'invalid_webhook_url',
'event_not_subscribed',
'webhook_inactive',
'inventory_api_not_enabled',
'module_inactive',
'rate_limited',
'server_error',
'idempotency_key_required',
'idempotency_conflict',
'location_not_found',
'location_inactive',
'invalid_location',
'invalid_locations',
'invalid_transfer',
'operation_not_found',
'already_reversed',
'reversal_not_possible',
'reversal_not_supported',
'exceeds_stock',
'no_positions',
'too_many_positions',
'invalid_step',
'invalid_quantity',
'invalid_amount',
'invalid_price',
'negative_value',
'invalid_reason',
'note_required',
'withdrawal_type_required',
'invalid_method',
'invalid_stock_kind',
'invalid_minimum',
'invalid_dimensions',
'weight_missing',
'invalid_landed_cost',
'invalid_distribution',
'landed_costs_mismatch',
'return_totals_mismatch',
'lot_not_found',
'invalid_serial',
'serial_required',
'serial_not_allowed',
'serial_already_exists',
'serial_not_in_stock',
'code_taken',
'external_id_taken',
'group_not_found',
'revenue_group_not_found',
'stock_kind_locked',
'article_inactive',
'invalid_position',
'invalid_condition',
'reason_required',
'insufficient_available',
'reservation_not_found',
'reservation_not_active',
'variant_group_not_found',
'variant_already_exists',
'invalid_variant_attributes',
'variant_group_inactive',
'variant_limit',
'stocktake_not_found',
'stocktake_not_open',
'stocktake_closed',
'stocktake_not_in_review',
'stocktake_closing',
'stocktake_location_busy',
'stocktake_review_running',
'stocktake_recount_open',
'article_not_in_scope',
'article_not_tracked',
'count_not_found',
'count_already_voided',
'serial_already_counted',
'too_many_counts',
'stocktake_not_closed',
];