B2Base

Bürokratie vereinfachen durch Standards

Benutzer-Werkzeuge

Webseiten-Werkzeuge


schemes:products:product

Produkte und Leistungen

B2Base · 1.0.0-draft.1 · Projektentwurf

Katalogeinträge mit mehrsprachigen Bezeichnungen, Kennungen, Mengen und optionalem Preis.

Bibliothek · Produkte und Leistungen · Internationale Grundregeln

Direkt verwenden

Austauschschema (JSON) · Schema für den Designer · Beispieldaten

Austauschschema: vollständige Strukturprüfung mit JSON Schema 2020-12. Designer-Fassung: gleiche Datenfelder mit reduzierten Strukturregeln zur Feldübernahme. Anleitung und Grenzen

Felder im Überblick

Feld Typ Pflicht im Modul Bedeutung
id string Ja Katalogkennung.
kind string Ja Art des Angebots.
names array Ja Bezeichnungen mit Sprache.
identifiers array Nein Optionale Kennungen einschließlich System.
quantity object Nein Menge einer Verkaufseinheit.
price object Nein Optionaler Preis; Steuer- und Preisbedingungen im Geschäftsprofil festlegen.
manufacturer object Nein Verweis auf eine separat gespeicherte Person oder juristische Person; kein JSON-Schema-Verweis.
extensions object Nein Vereinbarte Erweiterungen; Schlüssel als absolute URI des Herausgebers. Keine stillschweigende Änderung von Kernfeldern.

Pflichtangaben gelten für das jeweilige Objekt, wenn dieses Modul verwendet wird. Zusätzliche Alternativen und Statusregeln stehen im Austauschschema. Optionale Felder weglassen, wenn sie unbekannt oder nicht anwendbar sind; ein leeres Pflichtfeld ist kein gültiger Ersatz.

International richtig einsetzen

  • Produktkennung, Lagerbestand und einzelne Bestellung sind verschiedene Datensätze. Dieses Modul beschreibt den Katalogeintrag.
  • quantity ist die Menge einer Verkaufseinheit, nicht der Lagerbestand. Preis, Währung und Steuerbehandlung nicht implizit vermischen.
  • Globale Produktnummern nur mit dem tatsächlich verwendeten Kennungssystem führen; keine Prüfziffernprüfung durch das allgemeine Identifier-Modul.

Gültige Beispiele

Alle Beispiele sind synthetisch. Sie werden mit dem mitgelieferten Schema geprüft; daraus folgt keine fachliche Echtheit oder externe Erreichbarkeit.

Beispiel 1

example-1.json
{
  "id": "urn:example:product:42",
  "kind": "product",
  "names": [
    {
      "text": "Grüner Tee",
      "language": "de"
    },
    {
      "text": "緑茶",
      "language": "ja"
    }
  ],
  "quantity": {
    "value": "0.1",
    "unitCode": "KGM",
    "unitScheme": "https://unece.org/code-list-recommendations"
  },
  "price": {
    "amount": "8.50",
    "currency": "EUR"
  }
}

Umstellung aus dem bisherigen Wiki

Die bisher nur angekündigte Kategorie erhält einen ersten konkreten Standard.

Änderungsübersicht und Migrationsregeln

Vollständiges Schema

Die Datei ist eigenständig: verwendete Bausteine sind unter $defs eingebettet, Referenzen bleiben lokal. $id ist die kanonische Kennung. Die Downloads oben verwenden den aktuellen Server; eine Veröffentlichung unter der kanonischen Domain ist damit nicht behauptet.

product.schema.json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://b2base.eu/schemas/1.0.0-draft.1/products/product.schema.json",
  "title": "Produkte und Leistungen",
  "$comment": "B2Base 1.0.0-draft.1. Projektentwurf, kein durch ISO oder andere Normungsgremien verabschiedeter Standard.",
  "type": "object",
  "description": "Ein Produkt oder eine Leistung.",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "Katalogkennung.",
      "format": "uri"
    },
    "kind": {
      "type": "string",
      "minLength": 1,
      "description": "Art des Angebots.",
      "enum": [
        "product",
        "service"
      ]
    },
    "names": {
      "type": "array",
      "description": "Bezeichnungen mit Sprache.",
      "items": {
        "$ref": "#/$defs/LocalizedText"
      },
      "minItems": 1
    },
    "identifiers": {
      "type": "array",
      "description": "Optionale Kennungen einschließlich System.",
      "items": {
        "$ref": "#/$defs/Identifier"
      }
    },
    "quantity": {
      "$ref": "#/$defs/Quantity",
      "description": "Menge einer Verkaufseinheit."
    },
    "price": {
      "$ref": "#/$defs/Money",
      "description": "Optionaler Preis; Steuer- und Preisbedingungen im Geschäftsprofil festlegen."
    },
    "manufacturer": {
      "$ref": "#/$defs/PartyRef"
    },
    "extensions": {
      "type": "object",
      "description": "Vereinbarte Erweiterungen; Schlüssel als absolute URI des Herausgebers. Keine stillschweigende Änderung von Kernfeldern.",
      "properties": {},
      "additionalProperties": true,
      "propertyNames": {
        "format": "uri"
      }
    }
  },
  "required": [
    "id",
    "kind",
    "names"
  ],
  "additionalProperties": false,
  "$defs": {
    "LocalizedText": {
      "type": "object",
      "description": "Text mit expliziter Sprache; Originalschreibweise erhalten.",
      "properties": {
        "text": {
          "type": "string",
          "minLength": 1,
          "description": "Inhalt in Unicode."
        },
        "language": {
          "$ref": "#/$defs/LanguageTag"
        }
      },
      "required": [
        "text",
        "language"
      ],
      "additionalProperties": false
    },
    "LanguageTag": {
      "type": "string",
      "minLength": 1,
      "description": "BCP-47-Sprachtag, etwa de, zh-Hant-TW, sr-Latn oder x-internal. Das Muster prüft nur die Grundform, nicht Registrierung oder alle BCP-47-Regeln.",
      "pattern": "^[A-Za-z]{1,8}(-[A-Za-z0-9]{1,8})*$"
    },
    "Identifier": {
      "type": "object",
      "description": "Kennung zusammen mit ihrem Namensraum. Führende Nullen, Trennzeichen und Groß-/Kleinschreibung erhalten.",
      "properties": {
        "value": {
          "type": "string",
          "minLength": 1,
          "description": "Kennung als Text."
        },
        "scheme": {
          "type": "string",
          "minLength": 1,
          "description": "URI des Kennungssystems; kein allgemeines weltweites Nummernformat.",
          "format": "uri"
        },
        "type": {
          "type": "string",
          "minLength": 1,
          "description": "Optionale fachliche Bezeichnung."
        },
        "issuer": {
          "$ref": "#/$defs/Issuer"
        },
        "country": {
          "$ref": "#/$defs/CountryCode"
        },
        "validFrom": {
          "type": "string",
          "minLength": 1,
          "description": "Beginn der angegebenen Gültigkeit.",
          "format": "date"
        },
        "validUntil": {
          "type": "string",
          "minLength": 1,
          "description": "Letzter Gültigkeitstag, falls bekannt.",
          "format": "date"
        }
      },
      "required": [
        "value",
        "scheme"
      ],
      "additionalProperties": false
    },
    "Issuer": {
      "type": "object",
      "description": "Aussteller einschließlich internationaler Organisationen.",
      "properties": {
        "authority": {
          "type": "string",
          "minLength": 1,
          "description": "Originalname der Behörde oder Organisation."
        },
        "id": {
          "type": "string",
          "minLength": 1,
          "description": "Stabile Kennung des Ausstellers.",
          "format": "uri"
        },
        "country": {
          "$ref": "#/$defs/CountryCode",
          "description": "Optional: Land des Ausstellers; keine erfundene Länderkennung für internationale Organisationen."
        },
        "region": {
          "type": "string",
          "minLength": 1,
          "description": "Optionale Verwaltungseinheit oder Zuständigkeitsbezeichnung."
        }
      },
      "required": [
        "authority"
      ],
      "additionalProperties": false
    },
    "CountryCode": {
      "type": "string",
      "minLength": 1,
      "description": "ISO 3166-1 Alpha-2, Großbuchstaben. Das Muster prüft nur die Schreibweise; zugewiesenen Code und Gültigkeitszeitpunkt gesondert prüfen.",
      "pattern": "^[A-Z]{2}$"
    },
    "Quantity": {
      "type": "object",
      "description": "Dezimalwert mit maschinenlesbarer Einheit; die Einheit muss zum Messgegenstand passen.",
      "properties": {
        "value": {
          "type": "string",
          "minLength": 1,
          "description": "Dezimaltext ohne Gruppierung oder Exponent.",
          "pattern": "^-?(0|[1-9][0-9]*)(\\.[0-9]+)?$"
        },
        "unitCode": {
          "type": "string",
          "minLength": 1,
          "description": "Code aus dem angegebenen Einheitensystem, etwa MTR, KGM oder MTK nach UN/CEFACT Recommendation 20."
        },
        "unitScheme": {
          "type": "string",
          "minLength": 1,
          "description": "URI des Einheitensystems; Empfänger muss das System unterstützen.",
          "format": "uri"
        }
      },
      "required": [
        "value",
        "unitCode",
        "unitScheme"
      ],
      "additionalProperties": false
    },
    "Money": {
      "type": "object",
      "description": "Exakter Geldbetrag mit expliziter Währung; Dezimaltext verhindert binäre Rundung beim Transport.",
      "properties": {
        "amount": {
          "type": "string",
          "minLength": 1,
          "description": "Vorzeichen erlaubt; Dezimalpunkt, keine Tausendertrennzeichen und kein Exponent.",
          "pattern": "^-?(0|[1-9][0-9]*)(\\.[0-9]+)?$"
        },
        "currency": {
          "$ref": "#/$defs/CurrencyCode"
        }
      },
      "required": [
        "amount",
        "currency"
      ],
      "additionalProperties": false
    },
    "CurrencyCode": {
      "type": "string",
      "minLength": 1,
      "description": "ISO-4217-Währungscode; Schreibweise allein belegt weder Zuweisung noch historische Gültigkeit.",
      "pattern": "^[A-Z]{3}$"
    },
    "PartyRef": {
      "type": "object",
      "description": "Verweis auf eine separat gespeicherte Person oder juristische Person; kein JSON-Schema-Verweis.",
      "properties": {
        "entityType": {
          "type": "string",
          "minLength": 1,
          "description": "Art der referenzierten Einheit.",
          "enum": [
            "person",
            "legalEntity"
          ]
        },
        "id": {
          "type": "string",
          "minLength": 1,
          "description": "Stabile absolute URI oder URN des Datensatzes, nicht dessen Name.",
          "format": "uri"
        },
        "name": {
          "type": "string",
          "minLength": 1,
          "description": "Optionale Anzeige; nicht als Identitätsschlüssel verwenden."
        }
      },
      "required": [
        "entityType",
        "id"
      ],
      "additionalProperties": false
    }
  },
  "examples": [
    {
      "id": "urn:example:product:42",
      "kind": "product",
      "names": [
        {
          "text": "Grüner Tee",
          "language": "de"
        },
        {
          "text": "緑茶",
          "language": "ja"
        }
      ],
      "quantity": {
        "value": "0.1",
        "unitCode": "KGM",
        "unitScheme": "https://unece.org/code-list-recommendations"
      },
      "price": {
        "amount": "8.50",
        "currency": "EUR"
      }
    }
  ]
}

Quellen und Abgrenzung

Quellen geprüft am 8. September 2026. Die B2Base-Felder und ihre Kombination sind ein eigener Entwurf. Code-Register, nationale Regeln, Echtheit, Zeitfolgen und Referenzziele benötigen die im jeweiligen Verfahren vereinbarten Zusatzprüfungen.

Zur Bibliothek · Integration · Häufige Fragen

schemes/products/product.txt · Zuletzt geändert: von 0.0.0.0

Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC0 1.0 Universal
CC0 1.0 Universal Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki