Agentenwerk
oss opencart catalog import rehearsal
Walks a staged product-catalog import through the pinned OpenCart source in a private, non-root database and reports what the native code makes of it at each stage: how many masters and variants survive, whether option values stay attached to the right products, and how the resulting catalog behaves in a localized cart. The point is to find the damage before the import touches a live shop, where a broken option mapping shows up as a customer ordering a variant that does not exist.
POST https://agent.halowerk.com/v1/oss-opencart-catalog-import-rehearsalEingaben
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| locales | array | Ja | |
| taxonomy | array | Ja | |
| stages | array | Ja |
Vollständiges Eingabeschema anzeigen
{
"type": "object",
"properties": {
"locales": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z]{2}-[a-z]{2}$",
"minLength": 5,
"maxLength": 5
},
"minItems": 1,
"maxItems": 4
},
"taxonomy": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ref": {
"type": "string",
"pattern": "^[a-z][a-z0-9_-]{0,31}$",
"minLength": 1,
"maxLength": 32
},
"type": {
"enum": [
"select",
"radio"
]
},
"names": {
"type": "array",
"items": {
"type": "object",
"properties": {
"locale": {
"type": "string",
"pattern": "^[a-z]{2}-[a-z]{2}$",
"minLength": 5,
"maxLength": 5
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[^\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\ud800-\\udfff]*$"
}
},
"required": [
"locale",
"name"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 4
},
"values": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ref": {
"type": "string",
"pattern": "^[a-z][a-z0-9_-]{0,31}$",
"minLength": 1,
"maxLength": 32
},
"names": {
"type": "array",
"items": {
"type": "object",
"properties": {
"locale": {
"type": "string",
"pattern": "^[a-z]{2}-[a-z]{2}$",
"minLength": 5,
"maxLength": 5
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[^\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\ud800-\\udfff]*$"
}
},
"required": [
"locale",
"name"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 4
}
},
"required": [
"ref",
"names"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 8
}
},
"required": [
"ref",
"type",
"names",
"values"
],
"additionalProperties": false
},
"minItems": 0,
"maxItems": 8
},
"stages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ref": {
"type": "string",
"pattern": "^[a-z][a-z0-9_-]{0,31}$",
"minLength": 1,
"maxLength": 32
},
"masters": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ref": {
"type": "string",
"pattern": "^[a-z][a-z0-9_-]{0,31}$",
"minLength": 1,
"maxLength": 32
},
"sku": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[^\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\ud800-\\udfff]*$"
},
"quantity": {
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"price": {
"type": "string",
"pattern": "^(?:0|[1-9][0-9]{0,4})(?:\\.[0-9]{1,4})?$",
"maxLength": 10
},
"weight": {
"type": "string",
"pattern": "^(?:0|[1-9][0-9]{0,4})(?:\\.[0-9]{1,4})?$",
"maxLength": 10
},
"points": {
"type": "integer",
"minimum": 0,
"maximum": 1000
},
"minimum": {
"type": "integer",
"minimum": 1,
"maximum": 100
},
"subtract": {
"type": "boolean"
},
"shipping": {
"type": "boolean"
},
"enabled": {
"type": "boolean"
},
"descriptions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"locale": {
"type": "string",
"pattern": "^[a-z]{2}-[a-z]{2}$",
"minLength": 5,
"maxLength": 5
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"pattern": "^[^\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\ud800-\\udfff]*$"
},
"description": {
"type": "string",
"minLength": 0,
"maxLength": 2048,
"pattern": "^[^\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\ud800-\\udfff]*$"
},
"meta_title": {
"type": "string",
"minLength": 0,
"maxLength": 255,
"pattern": "^[^\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\ud800-\\udfff]*$"
},
"meta_description": {
"type": "string",
"minLength": 0,
"maxLength": 255,
"pattern": "^[^\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\ud800-\\udfff]*$"
},
"meta_keyword": {
"type": "string",
"minLength": 0,
"maxLength": 255,
"pattern": "^[^\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\ud800-\\udfff]*$"
}
},
"required": [
"locale",
"name",
"description",
"meta_title",
"meta_description",
"meta_keyword"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 4
},
"options": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ref": {
"type": "string",
"pattern": "^[a-z][a-z0-9_-]{0,31}$",
"minLength": 1,
"maxLength": 32
},
"required": {
"type": "boolean"
},
"values": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ref": {
"type": "string",
"pattern": "^[a-z][a-z0-9_-]{0,31}$",
"minLength": 1,
"maxLength": 32
},
"quantity": {
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"subtract": {
"type": "boolean"
},
"price": {
"type": "string",
"pattern": "^(?:0|[1-9][0-9]{0,4})(?:\\.[0-9]{1,4})?$",
"maxLength": 10
},
"points": {
"type": "integer",
"minimum": 0,
"maximum": 1000
},
"weight": {
"type": "string",
"pattern": "^(?:0|[1-9][0-9]{0,4})(?:\\.[0-9]{1,4})?$",
"maxLength": 10
}
},
"required": [
"ref",
"quantity",
"subtract",
"price",
"points",
"weight"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 8
}
},
"required": [
"ref",
"required",
"values"
],
"additionalProperties": false
},
"minItems": 0,
"maxItems": 4
}
},
"required": [
"ref",
"sku",
"quantity",
"price",
"weight",
"points",
"minimum",
"subtract",
"shipping",
"enabled",
"descriptions",
"options"
],
"additionalProperties": false
},
"minItems": 0,
"maxItems": 8
},
"variants": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ref": {
"type": "string",
"pattern": "^[a-z][a-z0-9_-]{0,31}$",
"minLength": 1,
"maxLength": 32
},
"master": {
"type": "string",
"pattern": "^[a-z][a-z0-9_-]{0,31}$",
"minLength": 1,
"maxLength": 32
},
"sku": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[^\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\ud800-\\udfff]*$"
},
"quantity": {
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"selection": {
"type": "array",
"items": {
"type": "object",
"properties": {
"option": {
"type": "string",
"pattern": "^[a-z][a-z0-9_-]{0,31}$",
"minLength": 1,
"maxLength": 32
},
"value": {
"type": "string",
"pattern": "^[a-z][a-z0-9_-]{0,31}$",
"minLength": 1,
"maxLength": 32
}
},
"required": [
"option",
"value"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 4
},
"overrides": {
"type": "object",
"properties": {
"price": {
"type": "string",
"pattern": "^(?:0|[1-9][0-9]{0,4})(?:\\.[0-9]{1,4})?$",
"maxLength": 10
},
"weight": {
"type": "string",
"pattern": "^(?:0|[1-9][0-9]{0,4})(?:\\.[0-9]{1,4})?$",
"maxLength": 10
},
"points": {
"type": "integer",
"minimum": 0,
"maximum": 1000
},
"minimum": {
"type": "integer",
"minimum": 1,
"maximum": 100
},
"subtract": {
"type": "boolean"
},
"shipping": {
"type": "boolean"
},
"enabled": {
"type": "boolean"
},
"descriptions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"locale": {
"type": "string",
"pattern": "^[a-z]{2}-[a-z]{2}$",
"minLength": 5,
"maxLength": 5
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"pattern": "^[^\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\ud800-\\udfff]*$"
},
"description": {
"type": "string",
"minLength": 0,
"maxLength": 2048,
"pattern": "^[^\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\ud800-\\udfff]*$"
},
"meta_title": {
"type": "string",
"minLength": 0,
"maxLength": 255,
"pattern": "^[^\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\ud800-\\udfff]*$"
},
"meta_description": {
"type": "string",
"minLength": 0,
"maxLength": 255,
"pattern": "^[^\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\ud800-\\udfff]*$"
},
"meta_keyword": {
"type": "string",
"minLength": 0,
"maxLength": 255,
"pattern": "^[^\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\ud800-\\udfff]*$"
}
},
"required": [
"locale"
],
"additionalProperties": false
},
"minItems": 0,
"maxItems": 4
}
},
"required": [],
"additionalProperties": false
}
},
"required": [
"ref",
"master",
"sku",
"quantity",
"selection",
"overrides"
],
"additionalProperties": false
},
"minItems": 0,
"maxItems": 16
}
},
"required": [
"ref",
"masters",
"variants"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 4
}
},
"required": [
"locales",
"taxonomy",
"stages"
],
"additionalProperties": false
}Veröffentlichtes Eingabebeispiel
{
"locales": [
"de-de",
"en-gb"
],
"taxonomy": [
{
"ref": "colour",
"type": "select",
"names": [
{
"locale": "de-de",
"name": "Farbe 🎨"
},
{
"locale": "en-gb",
"name": "Colour"
}
],
"values": [
{
"ref": "blue",
"names": [
{
"locale": "de-de",
"name": "Blau"
},
{
"locale": "en-gb",
"name": "Blue"
}
]
},
{
"ref": "green",
"names": [
{
"locale": "de-de",
"name": "Grün"
},
{
"locale": "en-gb",
"name": "Green"
}
]
},
{
"ref": "red",
"names": [
{
"locale": "de-de",
"name": "Rot"
},
{
"locale": "en-gb",
"name": "Red"
}
]
}
]
},
{
"ref": "size",
"type": "radio",
"names": [
{
"locale": "de-de",
"name": "Größe"
},
{
"locale": "en-gb",
"name": "Size"
}
],
"values": [
{
"ref": "large",
"names": [
{
"locale": "de-de",
"name": "Groß"
},
{
"locale": "en-gb",
"name": "Large"
}
]
},
{
"ref": "medium",
"names": [
{
"locale": "de-de",
"name": "Mittel"
},
{
"locale": "en-gb",
"name": "Medium"
}
]
}
]
}
],
"stages": [
{
"ref": "initial",
"masters": [
{
"ref": "book",
"sku": "book",
"quantity": 20,
"price": "5.0000",
"weight": "1.0000",
"points": 0,
"minimum": 1,
"subtract": true,
"shipping": false,
"enabled": true,
"descriptions": [
{
"locale": "de-de",
"name": "book Name",
"description": "Native import: book Name\nO'Reilly & <b>UTF-8</b>",
"meta_title": "book Name",
"meta_description": "Synthetic fixture",
"meta_keyword": ""
},
{
"locale": "en-gb",
"name": "book name",
"description": "Native import: book name\nO'Reilly & <b>UTF-8</b>",
"meta_title": "book name",
"meta_description": "Synthetic fixture",
"meta_keyword": ""
}
],
"options": []
},
{
"ref": "shirt",
"sku": "shirt-master",
"quantity": 20,
"price": "10.0000",
"weight": "1.0000",
"points": 4,
"minimum": 1,
"subtract": true,
"shipping": true,
"enabled": true,
"descriptions": [
{
"locale": "de-de",
"name": "shirt Name",
"description": "Native import: shirt Name\nO'Reilly & <b>UTF-8</b>",
"meta_title": "shirt Name",
"meta_description": "Synthetic fixture",
"meta_keyword": ""
},
{
"locale": "en-gb",
"name": "shirt name",
"description": "Native import: shirt name\nO'Reilly & <b>UTF-8</b>",
"meta_title": "shirt name",
"meta_description": "Synthetic fixture",
"meta_keyword": ""
}
],
"options": [
{
"ref": "colour",
"required": true,
"values": [
{
"ref": "blue",
"quantity": 9,
"subtract": true,
"price": "3.0000",
"points": 2,
"weight": "0.2500"
},
{
"ref": "red",
"quantity": 1,
"subtract": true,
"price": "2.0000",
"points": 2,
"weight": "0.2500"
}
]
},
{
"ref": "size",
"required": true,
"values": [
{
"ref": "large",
"quantity": 9,
"subtract": true,
"price": "1.0000",
"points": 2,
"weight": "0.2500"
},
{
"ref": "medium",
"quantity": 9,
"subtract": true,
"price": "0.0000",
"points": 2,
"weight": "0.2500"
}
]
}
]
}
],
"variants": [
{
"ref": "variant-a",
"master": "shirt",
"sku": "shirt-red-m",
"quantity": 3,
"selection": [
{
"option": "colour",
"value": "red"
},
{
"option": "size",
"value": "medium"
}
],
"overrides": {
"descriptions": [
{
"locale": "de-de",
"name": "Rotes Sondermodell"
}
]
}
},
{
"ref": "variant-b",
"master": "shirt",
"sku": "shirt-blue-l",
"quantity": 7,
"selection": [
{
"option": "colour",
"value": "blue"
},
{
"option": "size",
"value": "large"
}
],
"overrides": {
"price": "17.0000",
"minimum": 3,
"points": 0,
"descriptions": []
}
}
]
},
{
"ref": "updated",
"masters": [
{
"ref": "book",
"sku": "book",
"quantity": 20,
"price": "5.0000",
"weight": "1.0000",
"points": 0,
"minimum": 1,
"subtract": true,
"shipping": false,
"enabled": true,
"descriptions": [
{
"locale": "de-de",
"name": "book Name",
"description": "Native import: book Name\nO'Reilly & <b>UTF-8</b>",
"meta_title": "book Name",
"meta_description": "Synthetic fixture",
"meta_keyword": ""
},
{
"locale": "en-gb",
"name": "book name",
"description": "Native import: book name\nO'Reilly & <b>UTF-8</b>",
"meta_title": "book name",
"meta_description": "Synthetic fixture",
"meta_keyword": ""
}
],
"options": []
},
{
"ref": "shirt",
"sku": "shirt-master",
"quantity": 20,
"price": "12.0000",
"weight": "1.0000",
"points": 4,
"minimum": 1,
"subtract": true,
"shipping": true,
"enabled": true,
"descriptions": [
{
"locale": "de-de",
"name": "Aktualisiertes Shirt",
"description": "Native import: Aktualisiertes Shirt\nO'Reilly & <b>UTF-8</b>",
"meta_title": "Aktualisiertes Shirt",
"meta_description": "Synthetic fixture",
"meta_keyword": ""
},
{
"locale": "en-gb",
"name": "Updated shirt",
"description": "Native import: Updated shirt\nO'Reilly & <b>UTF-8</b>",
"meta_title": "Updated shirt",
"meta_description": "Synthetic fixture",
"meta_keyword": ""
}
],
"options": [
{
"ref": "colour",
"required": true,
"values": [
{
"ref": "blue",
"quantity": 9,
"subtract": true,
"price": "4.0000",
"points": 2,
"weight": "0.2500"
},
{
"ref": "green",
"quantity": 9,
"subtract": true,
"price": "1.0000",
"points": 2,
"weight": "0.2500"
}
]
},
{
"ref": "size",
"required": true,
"values": [
{
"ref": "large",
"quantity": 9,
"subtract": true,
"price": "1.0000",
"points": 2,
"weight": "0.2500"
},
{
"ref": "medium",
"quantity": 9,
"subtract": true,
"price": "0.0000",
"points": 2,
"weight": "0.2500"
}
]
}
]
}
],
"variants": [
{
"ref": "variant-a",
"master": "shirt",
"sku": "shirt-red-m",
"quantity": 3,
"selection": [
{
"option": "colour",
"value": "green"
},
{
"option": "size",
"value": "medium"
}
],
"overrides": {
"descriptions": [
{
"locale": "de-de",
"name": "Grünes Sondermodell"
}
]
}
},
{
"ref": "variant-b",
"master": "shirt",
"sku": "shirt-blue-l",
"quantity": 1,
"selection": [
{
"option": "colour",
"value": "blue"
},
{
"option": "size",
"value": "large"
}
],
"overrides": {
"descriptions": []
}
}
]
},
{
"ref": "retired",
"masters": [
{
"ref": "shirt",
"sku": "shirt-master",
"quantity": 20,
"price": "12.0000",
"weight": "1.0000",
"points": 4,
"minimum": 1,
"subtract": true,
"shipping": true,
"enabled": false,
"descriptions": [
{
"locale": "de-de",
"name": "Aktualisiertes Shirt",
"description": "Native import: Aktualisiertes Shirt\nO'Reilly & <b>UTF-8</b>",
"meta_title": "Aktualisiertes Shirt",
"meta_description": "Synthetic fixture",
"meta_keyword": ""
},
{
"locale": "en-gb",
"name": "Updated shirt",
"description": "Native import: Updated shirt\nO'Reilly & <b>UTF-8</b>",
"meta_title": "Updated shirt",
"meta_description": "Synthetic fixture",
"meta_keyword": ""
}
],
"options": [
{
"ref": "colour",
"required": true,
"values": [
{
"ref": "blue",
"quantity": 9,
"subtract": true,
"price": "4.0000",
"points": 2,
"weight": "0.2500"
},
{
"ref": "green",
"quantity": 9,
"subtract": true,
"price": "1.0000",
"points": 2,
"weight": "0.2500"
}
]
}
]
}
],
"variants": [
{
"ref": "variant-a",
"master": "shirt",
"sku": "shirt-red-m",
"quantity": 3,
"selection": [
{
"option": "colour",
"value": "green"
}
],
"overrides": {
"descriptions": [
{
"locale": "de-de",
"name": "Grünes Sondermodell"
}
],
"enabled": true,
"price": "21.0000"
}
}
]
}
]
}Ergebnis & Dokumentation
Maschinenlesbare Dokumentation dieses Hubs
Quelle dieser Seite: der veröffentlichte HALOWERK-Katalog. Stand: 2026-11-01, 15:19 UTC.
Weitere Endpunkte dieses Hubs
- Agentenwerk0,002 USDC
a2a card validate
POSThttps://agent.halowerk.com/v1/a2a-card-validateValidates an Agent Card document against the A2A convention and returns findings by severity: error (the card is unusable as published), warning (works, but a consuming agent will guess), info (recommended field absent).
- Agentenwerk0,003 USDC
artifact receipt
POSThttps://agent.halowerk.com/v1/artifact-receiptSeal binds an exact UTF-8 content SHA-256 digest and expiry to a HALOWERK Ed25519 signature; verify checks signature, expiry and optional exact content. The service public key is included. This attests digest receipt only, not truth, legal
- Agentenwerk0,001 USDC
base64 codec
POSThttps://agent.halowerk.com/v1/base64-codecConverts text to padded standard Base64 or decodes canonical Base64 to valid UTF-8. Rejects noncanonical padding, whitespace, URL-safe alphabet and invalid decoded UTF-8.