Vælg farve
Klik på en farve
Vælg
Opret ny kunde
Udfyld som minimum navn og email

📦 Levering — metode & adresse

📝 Ordre-bemærkning

Vises i Woo-ordren (internal_notes).

💰 Manuel rabat

%
Trækkes fra subtotal (efter mængderabat, opstart og ordrehåndtering). Tom værdi = ingen rabat.

⏱️ Ekstra arbejdstid

Ingen ekstra tid
TETOS
v1.279e · Tekstil-tryk.dk · Powered by Claude AI
Priser og rabatter
Markup (indkøb → salgspris)
Fra (kr)Til (kr)Faktor
Til-kolonnen beregnes selv ud fra næste trins Fra-værdi
Tryk-priser ✓ Gemt
Globale pris-presets der bruges på tværs af alle kategorier. Ændrer du prisen her, opdateres alle kategorier automatisk.
Indlæser…
Trykmål og priser pr. position · Lille ≤10×10 cm · Stort ≤26×35 cm · XL >26×35 cm
Forside og bagside deler samme mål — sæt cm på forside-rækken. Ærmer: sæt cm på V. ærme-rækken.
Position Lille Stort Ekstra stort
B × H (cm) Pris (kr) B × H (cm) Pris (kr) B × H (cm) Pris (kr)
Forside × × ×
Bagside 10 × 10 26 × 35 —
Venstre ærme × — altid lille —
Højre ærme 8 × 8 — altid lille —
Setup og rabat
Setup pr. printposition
kr (ingen rabat)
Ordrehåndtering
kr — fast gebyr pr. tilbud (ingen rabat)
Timepris (filtilretning)
kr/time — afregnes pr. 15 min · ekskl. moms
Rabat pr. stk.
% — på tekstil + tryk
Maks. rabat
%
Produktkategorier
Indlæser kategorier fra Supabase…
Datafundament: tabellen produkt_kategorier i Supabase (oprettet v1.108). Smart-default detectProductCategory() matcher mod detect_keywords + produktnavn + product_type.
Mockups
Tøj-illustrationer der bruges som baggrund for tryk-zoner. Tænd/sluk for hvilke der vises i mockup-dropdownen, og omdøb dem hvis du vil.
Indlæser…
Katalog-status
Tøj-katalogerne synkroniseres automatisk fra leverandørerne. Du behøver normalt ikke gøre noget her.
Stanley Stella
Auto-sync 1× dagligt kl. 06:00
EUR/DKK kurs: (SS-priser omregnes automatisk)
L-shop
Lager auto-sync 4× dagligt · Katalog manuelt 1×/år
Labelfree
Auto-sync 4× dagligt · REST API · Priser i DKK
ID® Identity
Produkter + lager: auto-sync dagligt · Nettopriser: upload manuelt
Hent filen på id.dk → My ID → Download produktdatafil. Kolonnen Linjebeløb er vores nettopris — den er det eneste markup regner på. Upload igen når ID regulerer priser.
📊 Kategori-mapping diagnose
Find produktType-værdier der lander i "Andet" — bruges til at fixe getMetaCategory()
▶ Avanceret · Årlig L-shop katalog-upload
💾 Permanent gem i Supabase — bruges 1× årligt når L-shop sender en ny prisliste. Træk artikel- + Major-fil ind (begge som ZIP). Filerne uploades og gemmes direkte i databasen.
💾
Træk ZIP-filer hertil — eller klik for at vælge (gemmer i Supabase)

✨ AI-billede generering

Generér realistiske produktbilleder med model + dit design via Google Gemini. Pris ca. 0,27 kr pr. billede (~80 øre for alle 3 modeller).

Få din API-key gratis på aistudio.google.com/apikey. VIGTIGT: Sæt rate-limits på key'en så du ikke risikerer høje regninger.

Hvordan virker det?
  1. Tilbuds-builder: knap "✨ Generér AI-billede" ved hver tøjlinje med design uploadet
  2. 3 billeder genereres (mand + kvinde + teen) i én klik
  3. De gemmes i Supabase så samme produkt+design ikke regenereres senere
  4. I PDF tilbud + ordreseddel: AI-billederne erstatter skitse-mockup på detalje-side
  5. Leverandør-foto + dit design sendes til Gemini, som returnerer realistisk billede

🛒 WooCommerce-integration

Send accepterede tilbud direkte til tekstil-tryk.dk som WooCommerce-ordrer. Status: v1.198 = forberedelse — rigtig afsendelse kommer i v1.199.

Sendt i alt
—
Sidste 7 dage
—
Fejlede
—
API-status
⚠ Ikke testet
Konfiguration

💡 App-password får du fra udvikleren — formatet er 6 grupper af 4 tegn med mellemrum (fx Xxxx Xxxx Xxxx Xxxx Xxxx Xxxx).
🔐 Vigtigt: Felterne ovenfor er kun til reference/dokumentation. De ægte credentials skal sættes som Netlify environment variables: WOO_API_URL, WOO_API_USERNAME, WOO_API_PASSWORD (i Netlify Dashboard → Site settings → Environment variables). Det er sikrere end at gemme dem i klient-storage.
🔌 Test forbindelse-knappen kalder Netlify-function (woo-test-auth) der bruger env vars og laver Basic Auth-kald. Ingen CORS-problemer.

API-vejledning

Hvilke felter sendes til Woo og hvor de kommer fra i TETOS

📦 Produkter (products[])
Woo-felt Kilde i TETOS Eksempel
product_typegarment.source mapped"stanleystella" / "lshop"
product_skuSS: style_code · L-shop: catalog_nr"STTU755"
colorSS: color_code · L-shop: color-navn"C727" / "Navy"
sizeslinje.sizeQtys{"M": 5, "L": 10}
print_areaslinje.positions (mapped)["front_medium", "back_large"]
priceSlutpris pr. styk inkl. tryk + rabat131.50
🎨 Print-area mapping (12 navne)
TETOS Woo print_area Note
Front · Lille (10×10)front_small
Front · Stort (26×35)front_medium
Front · Ekstra stort (37×47)front_large⚠ ny i Woo
Back · Lille (10×10)back_small
Back · Stort (26×35)back_medium
Back · Ekstra stort (37×47)back_large⚠ ny i Woo
Ærme venstre (sleeve_l)left_sleeve
Ærme højre (sleeve_r)right_sleeve
Cap · Kasket (11×5)cap_fronteneste cap-position pt
(fremtidig)cap_leftikke implementeret
(fremtidig)cap_rightikke implementeret
(fremtidig)cap_backikke implementeret
👤 Kunde + leveringsadresse
customer: fra tilbud.kunde (navn, firma, CVR, email, telefon, adresse)
shipping: fra tilbud.leveringsadresse (eller fallback til kunde-adresse)
type: "b2b" hvis CVR udfyldt, ellers "b2c"
📋 Meta-felter
tetos_quote_number: tilbud.nummer (fx "T-2026-049")
title: tilbud.titel
internal_notes: tilbud.linjer.orderNote (frit ordre-bemærkningsfelt, v1.244)
⚠️ Begrænsninger og fremtidige forbedringer
  • Labelfree/Storm sendes som product_type: "stormtekstil" (med k, v1.239).
  • L-shop sendes som product_type: "l-shop" (bindestreg) og medsender altid articles[] (v1.239).
  • front_large / back_large er nye i Woo — udvikler implementerer reaktivt når de kommer i brug.
  • Mængderabat indlejres i price-feltet som rabatteret pris pr. styk. Woo ser ikke separat rabat.
  • Levering: gratis i Woo (75 kr administrationsgebyr er bagt ind i produktpris via markup).
  • Caps: kun cap_front bruges pt. Cap_left/right/back kan tilføjes senere.
  • SS color_codes: 4-cifrede (C001, C727). L-shop bruger color-navne ("Navy", "Black").
Seneste afsendte ordrer
Ingen tilbud sendt endnu. Når "Send til Woo"-funktionen aktiveres i v1.199, vises afsendte ordrer her med Woo-ordrenummer og status.
🚚 Fragt

Fragt beregnes som fast beløb + procent af ordrens total ekskl. moms. På hvert tilbud kan du sætte flueben i Fri fragt for at fjerne fragten.

Eksempel: ordre på 2.000 kr ekskl. moms → fragt = 69 + 60 = 129 kr
Ordredetaljer
Vises i tilbuds-listen og PDF
💳 Betalingsmetode
🚚 Leveringsmetode
Klik for GLS-metode + evt. anden adresse
⏱️ Produktionstid
Ordrer efter kl. 11.00 → næste hverdag
Tøj
Vælg vare, størrelse og antal pr. størrelse. Samme print gælder alle linjer.
Prisoversigt
Tekstil efter rabat
0 kr
Tryk efter rabat
0 kr
Total inkl. moms
0 kr
Tilbudstekst
Tilbudsteksten vises her efter du klikker "Generer tilbudstekst" i Beregn tilbud.
Medarbejdere
Brugere der kan oprette tilbud. Vælges ved login og gemmes på tilbud/ordrer.
Eksterne tjenester
Anthropic Claude AI
Bruges til AI-email-parsing · ANTHROPIC_KEY ligger i Netlify env vars (ikke længere nødvendig her)
Server-side
Stanley Stella
Auto-sync 1× dagligt · credentials i GitHub secrets
Auto-synced
L-shop
FTP lager-sync 4× dagligt · credentials i GitHub secrets
Auto-synced
Labelfree
REST API auto-sync 4× dagligt · credentials i GitHub secrets (STORM_USERNAME, STORM_PASSWORD)
Auto-synced
▶ Avanceret · Database-konfiguration
Supabase-credentials er hardcodede i appen. Disse felter overskriver kun lokalt i din browser — bruges fx til at pege til et test-miljø.
Project URL
Anon Key
Katalog

Intet katalog indlæst endnu. Upload en fil under Indstillinger.

Kundeoversigt 0 kunder

Indlæser kunder...

Opret ny kunde
CVR-nummer
Firmanavn
Kontaktperson
Email
Telefon
Adresse
Postnr / By
Noter
Fast rabat (%)
Udfyldes automatisk på nye tilbud · kan ændres pr. tilbud
Alle tilbud

Indlæser tilbud...

Ordrer

Indlæser ordrer...

Debug log fejlfinding
Log starter her...\n