backend: name: github repo: vans-diy-bastelbedarf/website branch: main base_url: https://vans-diy-bastelbedarf-cms-auth.dogfather1608.workers.dev # Bilder, die VanVan hier hochlädt, landen automatisch hier im Projekt und sind danach # unter /img/products/ auf der Website erreichbar. media_folder: "public/img/products" public_folder: "/img/products" collections: - name: products label: Produkte label_singular: Produkt folder: src/content/products create: true delete: true slug: "{{fields.slug}}" identifier_field: slug extension: json format: json summary: "{{name.de}} — {{preis}} €" fields: - label: "Interner Code (URL) — nach Veröffentlichung nicht mehr ändern!" name: slug widget: string hint: "Nur Kleinbuchstaben, Zahlen und Bindestriche, z.B. wolke-plushie-lavendel" - label: "📷 Fotos" name: bilder widget: list required: false hint: "Hier Fotos hochladen oder per Drag & Drop reinziehen. Das erste Foto ist das Hauptbild." field: { label: Foto, name: bild, widget: image } - label: Name name: name widget: object fields: - { label: Deutsch, name: de, widget: string } - { label: Englisch, name: en, widget: string } - { label: "Schweizerdeutsch", name: ch, widget: string } - { label: Französisch, name: fr, widget: string } - label: Artikelnummer name: artikelnummer widget: string required: false - label: Kategorie name: kategorie widget: relation collection: categories search_fields: ["name.de"] value_field: "slug" display_fields: ["name.de"] - label: "Unterkategorie (optional)" name: unterkategorie widget: string required: false hint: "Interner Code der Unterkategorie eintragen, z.B. kuh-frieda (siehe Kategorien-Bereich)" - { label: "Preis (in Euro)", name: preis, widget: number, value_type: float, step: 0.01 } - label: "Alter Preis (nur ausfüllen, wenn im Sale)" name: preisAlt widget: number value_type: float step: 0.01 required: false - { label: "Bestand (Anzahl auf Lager)", name: bestand, widget: number, value_type: int } - label: Beschreibung name: beschreibung widget: object fields: - { label: Deutsch, name: de, widget: text } - { label: Englisch, name: en, widget: text } - { label: "Schweizerdeutsch", name: ch, widget: text } - { label: Französisch, name: fr, widget: text } - { label: Material, name: material, widget: string, required: false } - { label: "Größe / Maße", name: groesse, widget: string, required: false } - label: Farben name: farben widget: list required: false hint: "Eine Farbe pro Zeile, z.B. Lavendel" - { label: Lieferumfang, name: lieferumfang, widget: string, required: false } - { label: Pflegehinweise, name: pflegehinweise, widget: string, required: false } - { label: Lieferzeit, name: lieferzeit, widget: string, required: false } - label: Auszeichnungen name: badges widget: select multiple: true required: false options: - { label: Neu, value: neu } - { label: Bestseller, value: bestseller } - { label: "Im Sale", value: sale } - { label: Handgemacht, value: handgemacht } - label: "🚚 Eigene Versandkosten (nur für Einzelkauf dieses Produkts)" name: versand widget: object required: false hint: "Gilt NUR, wenn jemand genau 1 Stück von genau diesem Produkt kauft. Bei mehreren Produkten/Stück im Warenkorb gilt automatisch die allgemeine Versandkosten-Staffel (siehe eigener Bereich 'Versandkosten-Staffel' im Menü links). Leer lassen = Staffel gilt auch beim Einzelkauf." fields: - { label: "Deutschland (€)", name: de, widget: number, value_type: float, step: 0.01, required: false } - { label: "Österreich (€)", name: at, widget: number, value_type: float, step: 0.01, required: false } - { label: "Schweiz (€)", name: ch, widget: number, value_type: float, step: 0.01, required: false } - { label: "Luxemburg (€)", name: lu, widget: number, value_type: float, step: 0.01, required: false } - name: categories label: Kategorien label_singular: Kategorie folder: src/content/categories create: true delete: false slug: "{{fields.slug}}" identifier_field: slug extension: json format: json summary: "{{name.de}}" fields: - label: "Interner Code (URL) — nach Veröffentlichung nicht mehr ändern!" name: slug widget: string - label: "Reihenfolge (0 = zuerst)" name: order widget: number value_type: int - label: Name name: name widget: object fields: - { label: Deutsch, name: de, widget: string } - { label: Englisch, name: en, widget: string } - { label: "Schweizerdeutsch", name: ch, widget: string } - { label: Französisch, name: fr, widget: string } - label: Beschreibung name: description widget: object fields: - { label: Deutsch, name: de, widget: text } - { label: Englisch, name: en, widget: text } - { label: "Schweizerdeutsch", name: ch, widget: text } - { label: Französisch, name: fr, widget: text } - label: "Icon (Emoji)" name: icon widget: string hint: "z.B. 🧸" - label: Unterkategorien name: subcategories widget: list required: false summary: "{{fields.name.de}}" fields: - { label: "Interner Code (URL)", name: slug, widget: string } - label: Name name: name widget: object fields: - { label: Deutsch, name: de, widget: string } - { label: Englisch, name: en, widget: string } - { label: "Schweizerdeutsch", name: ch, widget: string } - { label: Französisch, name: fr, widget: string } - name: versandkosten label: "🚚 Versandkosten-Staffel" files: - name: staffel label: "Versandkosten-Staffel nach Warenwert" file: src/content/versandstaffel.json description: > Gilt automatisch im Warenkorb/an der Kasse, sobald jemand mehrere Produkte oder mehrere Stück kauft (bei genau 1 Stück von 1 Produkt gilt stattdessen der eigene Versandpreis am Produkt, falls dort einer eingetragen ist). Ab 75 € Warenwert ist der Versand immer kostenlos, unabhängig von dieser Tabelle. fields: - label: Deutschland name: de widget: list summary: "ab {{fields.abWarenwert}} € → {{fields.kosten}} €" fields: - { label: "Ab Warenwert (€)", name: abWarenwert, widget: number, value_type: float, step: 0.01 } - { label: "Versandkosten (€)", name: kosten, widget: number, value_type: float, step: 0.01 } - label: Österreich name: at widget: list summary: "ab {{fields.abWarenwert}} € → {{fields.kosten}} €" fields: - { label: "Ab Warenwert (€)", name: abWarenwert, widget: number, value_type: float, step: 0.01 } - { label: "Versandkosten (€)", name: kosten, widget: number, value_type: float, step: 0.01 } - label: Schweiz name: ch widget: list summary: "ab {{fields.abWarenwert}} € → {{fields.kosten}} €" fields: - { label: "Ab Warenwert (€)", name: abWarenwert, widget: number, value_type: float, step: 0.01 } - { label: "Versandkosten (€)", name: kosten, widget: number, value_type: float, step: 0.01 } - label: Luxemburg name: lu widget: list summary: "ab {{fields.abWarenwert}} € → {{fields.kosten}} €" fields: - { label: "Ab Warenwert (€)", name: abWarenwert, widget: number, value_type: float, step: 0.01 } - { label: "Versandkosten (€)", name: kosten, widget: number, value_type: float, step: 0.01 }