Skip to content

Import and Export Product Content

Download every product's editor content as JSON, edit it in bulk, and import it into your draft for review before you save.

Product content is what you set for each product in the editor: display name and description, tags, badge, summary, TL;DR items, features, requirements, free product actions, 5Metrics and resource update settings, and product SEO. Download it as one JSON file to keep a backup or to edit many products at once, then import the file to fill in the editor.

An import changes your draft only. Check the result in the preview, then save. Nothing on your store changes before you save.

Requirements

RequirementDetail
LanguageThe default language. The option is hidden while you edit a translation, and translations are not part of the file.
PlanExport works on every plan. The fields an import can change depend on your plan, see Plan limits.
FileJSON in the product content format, up to 1 MB. Export a file first and use it as a template.

The file holds storefront content only. Tebex package names, descriptions, prices, and media stay in Tebex; a display name or description in the file replaces them on your storefront only.

Open the dialog

  1. Open your project in the editor.
  2. Select the Product Detail page, then the Product Detail section. The Products Page section on the Products page offers the same dialog.
  3. In the Properties panel, select Import / export next to Product content.

Export

Select Download JSON. The file is named after your store and the date, for example yourstore-product-content-2026-09-25.json. It contains:

  • An entry for every product in your Tebex catalog, {} for products without content yet.
  • _default, the default settings every product uses.
  • Products you configured earlier that are no longer in the catalog.
  • A catalog list with each product's name and slug, so you can find products while you edit.

The export reflects the editor, including changes you have not saved yet.

File format

{
  "format": "taintless.product-content",
  "version": 1,
  "exportedAt": "2026-09-25T10:00:00.000Z",
  "store": "yourstore",
  "products": {
    "_default": { "tags": ["ESX"] },
    "1234567": {
      "tags": ["QBCore", "Qbox", "ESX"],
      "badge": "Popular",
      "badgeColor": "#FF8E49",
      "themeContent": {
        "aurora": {
          "highlights": [
            { "icon": "🚗", "content": "**3D Showroom:** Inspect vehicles from every angle." }
          ],
          "requirements": [
            { "title": "ox_lib", "url": "https://github.com/overextended/ox_lib/releases/latest" }
          ]
        }
      },
      "seo": { "title": "FiveM Vehicle Shop Script for Qbox, QBCore & ESX" }
    }
  },
  "catalog": {
    "1234567": { "name": "Vehicle Shop", "slug": "vehicle-shop" }
  }
}

Products are keyed by Tebex package ID. format and version must match the example; exportedAt, store, and catalog are for reference and are not imported.

KeyEditor fieldValue
displayName, displayDescriptionProduct CopyText. Leave empty to use the Tebex name and description. Not allowed on _default.
tagsBadge & TagsList of text. Spaces are trimmed and repeated tags are removed.
badge, badgeTone, badgeColorProduct Badge, Badge colorText; teal or orange; a hex color such as #FF8E49.
summarySummary on Base and Vault{ "text": "…", "badge": "…" }
features, requirementsFeatures, Requirements on Base and VaultLists of items with icon, content, title, description, and url.
highlightsTL;DR items that Aurora falls back toThe same item list.
themeContent.auroraSummary, Features, Requirements on Aurora{ "highlights": […], "features": […], "requirements": […] }
freeExternalActionFree Product Action{ "enabled": true, "url": "https://…", "label": "…" }. Shows on free products only.
fiveMetricsResource5Metrics ResourceLetters, numbers, -, and _.
resourceName, resourceVersionResource UpdatesSee Resource Update Checks.
seoToolbar → SEO → product{ "title": "…", "description": "…", "ogImageUrl": "…" }. Title up to 70 characters, description up to 320.

On Aurora, the editor saves TL;DR items, features, and requirements under themeContent.aurora. Aurora shows each of those lists whenever it exists, even when it is empty, and otherwise falls back to the top-level list. Base and Vault use the top-level lists only.

  • Aurora renders content, title, and description in TL;DR items and features as rich text: **bold**, *italic*, [label](https://…), {color:#41C4C3}text{/color}, and line breaks (\n). {color:accent} follows your brand color. Base and Vault show feature text as plain text.
  • An icon is an emoji or an icon name such as shield-check, up to 32 characters.
  • In a requirement, title is the name and url is the link.

Import

Replace clears missing fields

In Replace products in file mode, every field a listed product leaves out is cleared from the draft. Use Merge when the file holds only the fields you want to change.

  1. Choose Merge or Replace products in file.
  2. Select Choose file, or paste the JSON and select Check pasted JSON.
  3. Review the preview. Each product shows how many fields are added, changed, and removed; select it to see the fields.
  4. Select Import to draft. The button shows how many products change.
  5. Check the product pages in the preview, then save.

Press Ctrl + Z to undo the whole import in one step.

ModeFields in the fileFields the file leaves outProducts not in the file
MergeReplacedKept. Set a field to null to clear it.Unchanged
Replace products in fileReplacedClearedUnchanged

In Merge mode, objects such as summary and themeContent merge field by field, and a list replaces the whole list. After you save, a field that Replace cleared falls back to the _default settings, and a cleared Aurora list falls back to the top-level list. The preview shows those fields as empty until you save.

What the import checks

The import runs the checks that Save runs, so content it imports passes them again when you save. A product with a problem is skipped and listed with the field to fix, for example requirements[1].url. The other products still import. The import refuses:

  • A link that would not work, such as a javascript: link, or a rich-text link that does not start with https://, http://, mailto:, tel:, /, #, or ?.
  • A free product action whose URL is not a full https:// or http:// address.
  • An icon that contains <, >, {, or }, or is longer than 32 characters.
  • A badge tone other than teal or orange, or a badge color that is not a hex color.
  • An SEO title longer than 70 characters or a description longer than 320.
  • A resource name another product already uses.
  • A share image linked from another site. Add it with Import from URL in the SEO panel first.
  • A display name, description, free product action, resource setting, or SEO on _default.

Notes do not stop the import. You get one when a package ID is not in the product list the editor loaded, when a field is not part of the format and is skipped, when a requirement link has no https:// and shows as text, or when the file was exported from another store.

Plan limits

Fields your plan cannot save are marked in the preview and left out of the import.

ContentPlan
Free product actionEvery plan
Product copy, tags, badges, summaries, lists, 5Metrics, resource updates, _defaultStarter, Pro, or Ultra
Product SEOUltra

Troubleshooting

IssueSolution
"This is not a product content file"The file needs "format": "taintless.product-content" and "version": 1. Export a file and compare
A product is skippedFix the field named next to it and import the file again. Products that already imported show as unchanged
A package ID is not in the product listThe content is imported anyway, in case the editor's product list is out of date. If the ID is wrong, correct it and import again
Fields are marked Needs Starter or Needs UltraYour plan cannot save them, so they were left out
Imported product SEO is missing from the SEO panelThe SEO panel shows saved values. Save your changes first
Save fails with a resource name errorEach resource name can belong to one product. Clear it on the other product first, see Resource Update Checks