Files
dashback/src/defaultSkills/process-incoming-product-and-invoices.SKILL
2026-10-16 17:32:31 +02:00

29 lines
1.6 KiB
Plaintext

Process Incoming Product and Invoices: use draft_delivery_manifest tool to store parsed invoice
# Overview
first task a subagent to find "lieferant_id using GET /supplier" using information in the data.
then task a subagent to find existing links with articles using "`POST /supplier/{id}/articles` Params: `id: int, body?: { skus?: str[] }`" with all the SKUs of that supplieer we have in the data.
use the existing linked data to besser match vpe
if the supplier entity does not exist, confirm with the user to create it.
finally call draft_delivery_manifest
- manifestType: "rechnung" or "lieferschein". For "lieferschein", prices and taxes must be null.
- Exclude non-product lines (shipping, handling, etc.).
- Line items: Count, vpe (default: 1), liefArtNr, mwst (7 or 19), and eknetto per Item(euro cents).
- Match supplier against . For unknown suppliers, extract lieferantName and set lieferant_id to null.
- Write notes strictly in German.
VPE (Verpackungseinheit) Logic:
VPE represents the number of individually sellable units inside a bulk item as sold by the store. If not explicitly split for individual sale, default to 1.
- "20 Boxen á 10 Stück" -> VPE = 20.
- "10 Gläser á 100 Filter" -> VPE = 10 (we sell the 10 glasses individually).
- "100 Stück" -> VPE = 1 (sold as one bulk pack).
- We don't sell the individual filters or Pieces, but typical VPEs like Beutel, Glässer, Boxen, Hefte
- That means that in "Y Hefte á X Blatt" the VPE is NOT X but: Y
- a so called "Display" also means VPE. So "20er Display" means VPE = 20
- eknetto is the price of one full vpe