Поля маніфесту розширення
code, version, platform, capabilities, entrypoints, settings_schema та інші обов’язкові поля.
Усі поля нижче обов’язкові. Зайві поля не допускаються.
- code — 2–120 символів: малі латинські літери, цифри, «.», «_», «-»; починається з літери або цифри. Напр. acme.delivery.
- name, vendor — назва пакета й розробника, до 180 символів.
- version — SemVer: 1.4.0 або 2.0.0-beta.1.
- platform — сумісні версії Tobto.shop: "^1.0" або ">=1.0.1 <2.0".
- trust_level — community для сторонніх розробників (official і verified — лише для перевірених Tobto.shop видавців).
- capabilities — від 1 до 16 можливостей із закритого переліку: catalog.read, payment.intent.create, payment.webhook.handle, payment.refund.create, payment.reconcile, shipping.quote, shipping.shipment, shipping.labels, shipping.tracking, fiscal.receipt.issue, fiscal.refund.issue, fiscal.reconcile, marketplace.yml.export, marketplace.yml.diagnostics, mcp.catalog.read, mcp.cart.create.
- entrypoints — об’єкт «можливість → повне ім’я PHP-класу»; ключі мають точно збігатися з capabilities.
- permissions — права адмінки, які додає розширення (до 100), напр. settings.fiscal.manage.
- hooks — події, на які підписується розширення (до 100).
- settings_schema — JSON Schema налаштувань: type "object", additionalProperties false, типи string, integer, number, boolean. Для секретів — format "password" разом із writeOnly: true.
- migrations — список шляхів до *.migration.json (може бути порожнім).
- safe_mode_compatible — true, якщо розширення може працювати в безпечному режимі магазину.
Приклад (скорочено, з офіційного розширення Checkbox):
{
"code": "checkbox",
"name": "Checkbox",
"vendor": "LaraCart",
"version": "1.0.1",
"platform": "^1.0",
"trust_level": "official",
"capabilities": ["fiscal.receipt.issue", "fiscal.refund.issue", "fiscal.reconcile"],
"permissions": ["settings.fiscal.manage"],
"hooks": ["fiscal.before_issue"],
"entrypoints": {
"fiscal.receipt.issue": "LaraCart\\Official\\Checkbox\\CheckboxProvider",
"...": "..."
},
"settings_schema": {
"type": "object",
"additionalProperties": false,
"required": [],
"properties": {}
},
"migrations": [],
"safe_mode_compatible": false
} Сторонні скрипти в браузері (browser_origins) дозволені лише пакетам рівня official або verified з manifest_contract_version: 3. Пакет community з browser_origins не пройде перевірку.