Database Schema Shopware 6.7.8.0
238 tables found. Click a table to see its columns, indexes, and relations.
Shopware 6.7.8.0
Shopware Version
Shopware 5
Shopware 6
Stores named roles (e.g. 'Editor', 'Content Manager') used to group ACL permissions for admin users.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| name | varchar(255) | NO | |
| description | longtext | YES | |
| privileges | json | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| deleted_at | datetime(3) | YES |
Junction table linking admin users (integrations/users) to their assigned ACL roles.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| user_id | binary(16) | NO | Primary Key Foreign Key → user.id |
| acl_role_id | binary(16) | NO | Primary Key Foreign Key → acl_role.id |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Tracks Elasticsearch indexing tasks triggered from the Administration for admin search.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| index | varchar(500) | NO | |
| alias | varchar(500) | NO | |
| entity | varchar(500) | NO | |
| doc_count | int | NO |
Registry of installed Shopware apps (third-party extensions using the App System).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| name | varchar(255) | NO | Unique |
| path | varchar(4096) | YES | |
| author | varchar(255) | YES | |
| copyright | varchar(255) | YES | |
| license | varchar(255) | YES | |
| privacy | varchar(255) | YES | |
| version | varchar(255) | NO | |
| base_app_url | varchar(1024) | YES | |
| active | tinyint(1) | NO | |
| allow_disable | tinyint(1) | NO | |
| configurable | tinyint(1) | NO | |
| icon | mediumblob | YES | |
| app_secret | varchar(255) | YES | |
| modules | json | YES | |
| main_module | json | YES | |
| cookies | json | YES | |
| allowed_hosts | json | YES | |
| integration_id | binary(16) | NO | Index Foreign Key → integration.id |
| acl_role_id | binary(16) | NO | Index Foreign Key → acl_role.id |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| template_load_priority | int | YES | |
| checkout_gateway_url | varchar(255) | YES | |
| self_managed | tinyint(1) | NO | |
| source_type | varchar(20) | NO | |
| source_config | json | NO | |
| in_app_purchases_gateway_url | varchar(255) | YES | |
| requested_privileges | json | NO | |
| context_gateway_url | varchar(255) | YES |
Defines custom action buttons added by apps to Administration module views.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| entity | varchar(255) | NO | |
| view | varchar(255) | NO | |
| url | varchar(255) | NO | |
| action | varchar(255) | NO | Index |
| app_id | binary(16) | NO | Index Foreign Key → app.id |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Translations for app-defined action button labels.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| label | varchar(255) | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| app_action_button_id | binary(16) | NO | Primary Key Foreign Key → app_action_button.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
Custom CMS blocks registered by apps for use in the Shopping Experiences editor.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| app_id | binary(16) | NO | Index Foreign Key → app.id |
| name | varchar(255) | NO | |
| block | json | NO | |
| template | longtext | NO | |
| styles | longtext | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Translations for app-provided CMS block labels and descriptions.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| label | varchar(255) | YES | |
| app_cms_block_id | binary(16) | NO | Primary Key Foreign Key → app_cms_block.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Key-value configuration storage for app-specific settings.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| key | varchar(255) | NO | Primary Key |
| value | longtext | NO |
Custom Flow Builder actions registered by apps (e.g. send data to external service).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| app_id | binary(16) | NO | Index Foreign Key → app.id |
| name | varchar(255) | NO | Unique |
| badge | varchar(255) | YES | |
| url | varchar(500) | NO | |
| delayable | tinyint(1) | NO | |
| parameters | json | YES | |
| config | json | YES | |
| headers | json | YES | |
| requirements | json | YES | |
| icon | mediumblob | YES | |
| sw_icon | varchar(255) | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Translations for app-provided Flow Builder action names and descriptions.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| app_flow_action_id | binary(16) | NO | Primary Key Foreign Key → app_flow_action.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| label | varchar(255) | YES | |
| description | longtext | YES | |
| headline | varchar(255) | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Custom business events registered by apps that can trigger flows.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| app_id | binary(16) | NO | Index Foreign Key → app.id |
| name | varchar(255) | NO | Unique |
| aware | json | NO | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Payment methods provided by apps, linking to the app's payment handler endpoint.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| app_id | binary(16) | YES | Index Foreign Key → app.id |
| payment_method_id | binary(16) | NO | Unique Foreign Key → payment_method.id |
| app_name | varchar(255) | NO | |
| identifier | varchar(255) | NO | |
| pay_url | varchar(255) | YES | |
| finalize_url | varchar(255) | YES | |
| validate_url | varchar(255) | YES | |
| capture_url | varchar(255) | YES | |
| refund_url | varchar(255) | YES | |
| original_media_id | binary(16) | YES | Index Foreign Key → media.id |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| recurring_url | varchar(255) | YES |
Custom rule conditions provided by apps via Twig-based scripts for the Rule Builder.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| app_id | binary(16) | NO | Index Foreign Key → app.id |
| identifier | varchar(255) | NO | |
| active | tinyint(1) | NO | |
| group | varchar(255) | YES | |
| script | longtext | YES | |
| constraints | longblob | YES | |
| config | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Translations for app-provided script-based rule condition labels.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| app_script_condition_id | binary(16) | NO | Primary Key Foreign Key → app_script_condition.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| name | varchar(255) | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Shipping methods provided by apps, linking to the app's shipping handler endpoint.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| app_id | binary(16) | YES | Index Foreign Key → app.id |
| app_name | varchar(255) | NO | |
| shipping_method_id | binary(16) | NO | Unique Foreign Key → shipping_method.id |
| original_media_id | binary(16) | YES | Index Foreign Key → media.id |
| identifier | varchar(255) | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Storefront template overrides and extensions provided by apps.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| template | longtext | NO | |
| path | varchar(1024) | NO | Index |
| active | tinyint(1) | NO | |
| app_id | binary(16) | NO | Index Foreign Key → app.id |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| hash | varchar(32) | YES |
Translations for app metadata (label, description, privacy policy URL).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| app_id | binary(16) | NO | Primary Key Foreign Key → app.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| label | varchar(255) | YES | |
| description | longtext | YES | |
| privacy_policy_extensions | mediumtext | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Persisted shopping carts (serialized) for logged-in customers and guest sessions.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| token | varchar(50) | NO | Primary Key |
| rule_ids | json | NO | |
| created_at | datetime(3) | NO | Index |
| auto_increment | bigint | NO | Unique |
| compressed | tinyint(1) | NO | |
| payload | longblob | YES |
Hierarchical product category tree — the primary navigation and catalog structure.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| version_id | binary(16) | NO | Primary Key |
| auto_increment | int | NO | Unique |
| parent_id | binary(16) | YES | Index Foreign Key → category.id |
| parent_version_id | binary(16) | YES | Foreign Key → category.version_id |
| media_id | binary(16) | YES | Index Foreign Key → media.id |
| cms_page_id | binary(16) | YES | Index Foreign Key → cms_page.id |
| cms_page_version_id | binary(16) | NO | Foreign Key → cms_page.version_id |
| product_stream_id | binary(16) | YES | Index Foreign Key → product_stream.id |
| product_assignment_type | varchar(32) | NO | |
| path | longtext | YES | |
| after_category_id | binary(16) | YES | Index Foreign Key → category.id |
| after_category_version_id | binary(16) | YES | Foreign Key → category.version_id |
| level | int unsigned | NO | Index |
| active | tinyint(1) | NO | |
| child_count | int unsigned | NO | |
| display_nested_products | tinyint unsigned | NO | |
| visible | tinyint unsigned | NO | |
| type | varchar(32) | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| custom_entity_type_id | binary(16) | YES | Index Foreign Key → custom_entity.id |
Junction table linking categories to tags for categorization and filtering.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| category_id | binary(16) | NO | Primary Key Foreign Key → category.id |
| category_version_id | binary(16) | NO | Primary Key Foreign Key → category.version_id |
| tag_id | binary(16) | NO | Primary Key Foreign Key → tag.id |
Translations for category names, descriptions, meta info, and custom fields.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| category_id | binary(16) | NO | Primary Key Foreign Key → category.id |
| category_version_id | binary(16) | NO | Primary Key Foreign Key → category.version_id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| name | varchar(255) | YES | |
| breadcrumb | json | YES | |
| internal_link | binary(16) | YES | |
| link_new_tab | tinyint | YES | |
| link_type | varchar(255) | YES | |
| external_link | mediumtext | YES | |
| description | longtext | YES | |
| meta_title | varchar(255) | YES | |
| meta_description | varchar(255) | YES | |
| keywords | varchar(255) | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| slot_config | json | YES |
Individual content blocks within a CMS section (e.g. image-text, product listing, hero).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| version_id | binary(16) | NO | Primary Key |
| cms_section_id | binary(16) | YES | Index Foreign Key → cms_section.id |
| cms_section_version_id | binary(16) | NO | Foreign Key → cms_section.version_id |
| position | int | NO | |
| section_position | varchar(50) | YES | |
| type | varchar(255) | NO | |
| name | varchar(255) | YES | |
| locked | tinyint(1) | NO | |
| margin_top | varchar(255) | YES | |
| margin_bottom | varchar(255) | YES | |
| margin_left | varchar(255) | YES | |
| margin_right | varchar(255) | YES | |
| background_color | varchar(255) | YES | |
| background_media_id | binary(16) | YES | Index Foreign Key → media.id |
| background_media_mode | varchar(255) | YES | |
| visibility | json | YES | |
| css_class | varchar(255) | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
CMS layout pages (Shopping Experiences) — used for category pages, landing pages, and product detail.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| version_id | binary(16) | NO | Primary Key |
| type | varchar(255) | NO | |
| entity | varchar(255) | YES | |
| preview_media_id | binary(16) | YES | Index Foreign Key → media.id |
| locked | tinyint(1) | NO | |
| css_class | varchar(255) | YES | |
| config | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Translations for CMS page names.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| cms_page_id | binary(16) | NO | Primary Key Foreign Key → cms_page.id |
| cms_page_version_id | binary(16) | NO | Primary Key Foreign Key → cms_page.version_id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| name | varchar(255) | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Sections within a CMS page that define the structural layout (sidebar, full-width, etc.).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| version_id | binary(16) | NO | Primary Key |
| cms_page_id | binary(16) | NO | Index Foreign Key → cms_page.id |
| cms_page_version_id | binary(16) | NO | Foreign Key → cms_page.version_id |
| position | int | NO | |
| type | varchar(255) | NO | |
| name | varchar(255) | YES | |
| locked | tinyint(1) | NO | |
| sizing_mode | varchar(255) | NO | |
| mobile_behavior | varchar(255) | NO | |
| background_color | varchar(255) | YES | |
| background_media_id | binary(16) | YES | Index Foreign Key → media.id |
| background_media_mode | varchar(255) | YES | |
| visibility | json | YES | |
| css_class | varchar(255) | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Individual slots (elements) within a CMS block — the actual content units (text, image, product box).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| version_id | binary(16) | NO | Primary Key |
| cms_block_id | binary(16) | NO | Index Foreign Key → cms_block.id |
| cms_block_version_id | binary(16) | NO | Foreign Key → cms_block.version_id |
| type | varchar(255) | NO | |
| slot | varchar(255) | NO | |
| locked | tinyint(1) | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Translations for CMS slot configuration data (element-specific content).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| cms_slot_id | binary(16) | NO | Primary Key Foreign Key → cms_slot.id |
| cms_slot_version_id | binary(16) | NO | Primary Key Foreign Key → cms_slot.version_id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| config | json | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Audit log of cookie/consent actions taken by storefront visitors (cookie consent tool).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | bigint unsigned | NO | Primary Key |
| consent_name | varchar(100) | NO | Index |
| timestamp | datetime(3) | NO | |
| message | longtext | NO |
Tracks current consent state per visitor session for cookie/privacy compliance.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| name | varchar(100) | NO | Index |
| identifier | varchar(100) | NO | |
| state | varchar(20) | NO | |
| actor | varchar(255) | NO | |
| updated_at | datetime(3) | NO |
Country definitions used for shipping, billing, tax rules, and address validation.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| iso | varchar(255) | YES | |
| position | int | NO | |
| active | tinyint(1) | NO | |
| iso3 | varchar(45) | YES | |
| display_state_in_registration | tinyint(1) | NO | |
| force_state_in_registration | tinyint(1) | NO | |
| check_vat_id_pattern | tinyint(1) | NO | |
| vat_id_pattern | varchar(255) | YES | |
| vat_id_required | tinyint(1) | NO | |
| customer_tax | json | YES | |
| company_tax | json | YES | |
| advanced_postal_code_pattern | varchar(255) | YES | |
| check_advanced_postal_code_pattern | tinyint(1) | NO | |
| check_postal_code_pattern | tinyint(1) | NO | |
| default_postal_code_pattern | varchar(1024) | YES | |
| postal_code_required | tinyint(1) | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| shipping_available | tinyint(1) | NO | |
| is_eu | tinyint(1) | NO |
States/regions/provinces within a country (e.g. US states, German Bundesländer).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| country_id | binary(16) | NO | Index Foreign Key → country.id |
| short_code | varchar(255) | NO | |
| position | int | NO | |
| active | tinyint(1) | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Translations for country state names.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| country_state_id | binary(16) | NO | Primary Key Foreign Key → country_state.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| name | varchar(255) | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Translations for country names and address format configuration.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| country_id | binary(16) | NO | Primary Key Foreign Key → country.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| name | varchar(255) | YES | |
| address_format | json | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Available currencies with exchange rates (factor) and rounding configuration.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| iso_code | char(3) | NO | Unique |
| factor | double | NO | |
| symbol | varchar(255) | NO | |
| position | int | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| item_rounding | json | YES | |
| total_rounding | json | YES | |
| tax_free_from | double | YES |
Country-specific price rounding rules per currency (e.g. CHF rounds to 0.05).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| currency_id | binary(16) | NO | Index Foreign Key → currency.id |
| country_id | binary(16) | NO | Index Foreign Key → country.id |
| item_rounding | json | NO | |
| total_rounding | json | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Translations for currency names and short names.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| currency_id | binary(16) | NO | Primary Key Foreign Key → currency.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| short_name | varchar(255) | YES | |
| name | varchar(255) | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Registry of custom entities defined by apps or plugins (dynamic DB tables via Admin SDK).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| name | varchar(255) | NO | Unique |
| fields | json | NO | |
| app_id | binary(16) | YES | Index Foreign Key → app.id |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| flags | json | YES | |
| plugin_id | binary(16) | YES | Index Foreign Key → plugin.id |
| custom_fields_aware | tinyint(1) | NO | |
| label_property | varchar(255) | YES | |
| deleted_at | datetime(3) | YES |
Individual custom field definitions (name, type, config) within a custom field set.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| name | varchar(255) | NO | Unique |
| type | varchar(255) | NO | |
| config | json | YES | |
| active | tinyint(1) | NO | |
| set_id | binary(16) | YES | Index Foreign Key → custom_field_set.id |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| allow_customer_write | tinyint | NO | |
| allow_cart_expose | tinyint(1) | NO | |
| store_api_aware | tinyint(1) | NO | |
| include_in_search | tinyint(1) | NO |
Groups of custom fields that can be assigned to entities (products, customers, orders, etc.).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| name | varchar(255) | NO | |
| config | json | YES | |
| active | tinyint(1) | NO | |
| app_id | binary(16) | YES | Index Foreign Key → app.id |
| position | int | NO | |
| global | tinyint(1) | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Links custom field sets to the entities they apply to (e.g. product, order, customer).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| set_id | binary(16) | NO | Index Foreign Key → custom_field_set.id |
| entity_name | varchar(64) | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Core customer records — accounts, credentials, default addresses, group assignment, and status.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| auto_increment | bigint unsigned | NO | Unique |
| customer_group_id | binary(16) | NO | Index Foreign Key → customer_group.id |
| requested_customer_group_id | binary(16) | YES | Index |
| sales_channel_id | binary(16) | NO | Index Foreign Key → sales_channel.id |
| language_id | binary(16) | NO | |
| last_payment_method_id | binary(16) | YES | Index Foreign Key → payment_method.id |
| default_billing_address_id | binary(16) | NO | Index |
| default_shipping_address_id | binary(16) | NO | Index |
| customer_number | varchar(255) | NO | |
| salutation_id | binary(16) | YES | Index Foreign Key → salutation.id |
| first_name | varchar(255) | NO | |
| last_name | varchar(255) | NO | |
| company | varchar(255) | YES | |
| password | varchar(1024) | YES | |
| legacy_password | varchar(255) | YES | |
| legacy_encoder | varchar(255) | YES | |
| varchar(254) | NO | Index | |
| title | varchar(100) | YES | |
| vat_ids | json | YES | |
| active | tinyint(1) | NO | |
| double_opt_in_registration | tinyint(1) | NO | |
| double_opt_in_email_sent_date | datetime(3) | YES | |
| double_opt_in_confirm_date | datetime(3) | YES | |
| hash | varchar(255) | YES | Unique |
| guest | tinyint(1) | NO | |
| first_login | datetime(3) | YES | Index |
| last_login | datetime(3) | YES | Index |
| newsletter_sales_channel_ids | json | YES | |
| birthday | date | YES | |
| last_order_date | datetime(3) | YES | |
| order_count | int | NO | |
| order_total_amount | double | YES | |
| custom_fields | json | YES | |
| affiliate_code | varchar(255) | YES | |
| campaign_code | varchar(255) | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| remote_address | varchar(255) | YES | |
| tag_ids | json | YES | |
| bound_sales_channel_id | binary(16) | YES | Index Foreign Key → sales_channel.id |
| created_by_id | binary(16) | YES | Index Foreign Key → user.id |
| updated_by_id | binary(16) | YES | Index Foreign Key → user.id |
| account_type | varchar(255) | NO | |
| review_count | int | NO |
Customer address book entries (billing and shipping addresses).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| customer_id | binary(16) | NO | Index Foreign Key → customer.id |
| country_id | binary(16) | NO | Index Foreign Key → country.id |
| country_state_id | binary(16) | YES | Index Foreign Key → country_state.id |
| company | varchar(255) | YES | |
| department | varchar(255) | YES | |
| salutation_id | binary(16) | YES | Index Foreign Key → salutation.id |
| title | varchar(100) | YES | |
| first_name | varchar(255) | NO | |
| last_name | varchar(255) | NO | |
| street | varchar(255) | NO | |
| zipcode | varchar(50) | YES | |
| city | varchar(70) | NO | |
| phone_number | varchar(40) | YES | |
| additional_address_line1 | varchar(255) | YES | |
| additional_address_line2 | varchar(255) | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Customer groups for differentiated pricing, visibility, and access control (e.g. B2B, VIP).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| display_gross | tinyint(1) | NO | |
| registration_active | tinyint(1) | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Configures which customer groups allow self-registration on which Sales Channels.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| customer_group_id | binary(16) | NO | Primary Key Foreign Key → customer_group.id |
| sales_channel_id | binary(16) | NO | Primary Key Foreign Key → sales_channel.id |
| created_at | datetime(3) | NO |
Translations for customer group names.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| customer_group_id | binary(16) | NO | Primary Key Foreign Key → customer_group.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| name | varchar(255) | YES | |
| custom_fields | json | YES | |
| registration_title | varchar(255) | YES | |
| registration_introduction | longtext | YES | |
| registration_only_company_registration | tinyint(1) | YES | |
| registration_seo_meta_description | longtext | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Password recovery tokens and expiry timestamps for customer account reset.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| customer_id | binary(16) | NO | Unique Foreign Key → customer.id |
| hash | varchar(255) | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Junction table linking customers to tags for segmentation and Flow Builder conditions.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| customer_id | binary(16) | NO | Primary Key Foreign Key → customer.id |
| tag_id | binary(16) | NO | Primary Key Foreign Key → tag.id |
Wishlists owned by customers (one per customer per Sales Channel).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| customer_id | binary(16) | NO | Index Foreign Key → customer.id |
| sales_channel_id | binary(16) | NO | Index Foreign Key → sales_channel.id |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Individual products saved to a customer's wishlist.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| customer_wishlist_id | binary(16) | NO | Index Foreign Key → customer_wishlist.id |
| product_id | binary(16) | NO | Index Foreign Key → product.id |
| product_version_id | binary(16) | NO | Foreign Key → product.version_id |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Delivery time ranges (e.g. '1-3 days', '2-5 business days') assignable to products and shipping methods.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| min | int | NO | |
| max | int | NO | |
| unit | varchar(255) | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Translations for delivery time display names.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| delivery_time_id | binary(16) | NO | Primary Key Foreign Key → delivery_time.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| name | varchar(255) | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Generated documents (invoices, credit notes, delivery notes, cancellations) linked to orders.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| document_type_id | binary(16) | NO | Index Foreign Key → document_type.id |
| referenced_document_id | binary(16) | YES | Index Foreign Key → document.id |
| order_id | binary(16) | NO | Index Foreign Key → order.id |
| order_version_id | binary(16) | NO | Foreign Key → order.version_id |
| config | json | YES | |
| sent | tinyint(1) | NO | |
| static | tinyint(1) | NO | |
| deep_link_code | varchar(32) | NO | Unique |
| document_media_file_id | binary(16) | YES | Index Foreign Key → media.id |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| document_number | varchar(255) | YES | Index |
| document_a11y_media_file_id | binary(16) | YES | Index Foreign Key → media.id |
Document template configuration (number ranges, logos, footer text, tax display) per document type.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| name | varchar(64) | NO | |
| filename_prefix | varchar(64) | YES | |
| filename_suffix | varchar(64) | YES | |
| document_number | varchar(64) | YES | |
| global | tinyint(1) | YES | |
| document_type_id | binary(16) | NO | Index Foreign Key → document_type.id |
| logo_id | binary(16) | YES | Index Foreign Key → media.id |
| config | json | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Sales-Channel-specific overrides for document configuration.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| document_base_config_id | binary(16) | NO | Index Foreign Key → document_base_config.id |
| document_type_id | binary(16) | NO | Index Foreign Key → document_type.id |
| sales_channel_id | binary(16) | YES | Index Foreign Key → sales_channel.id |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Document type definitions (invoice, credit_note, storno, delivery_note).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| technical_name | varchar(255) | NO | Unique |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Translations for document type display names.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| document_type_id | binary(16) | NO | Primary Key Foreign Key → document_type.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| name | varchar(255) | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Tracks Elasticsearch (OpenSearch) re-indexing tasks for the storefront product search.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| index | varchar(500) | NO | |
| alias | varchar(500) | NO | |
| entity | varchar(500) | NO | |
| doc_count | int | NO |
Flow Builder automation definitions — the top-level flow with trigger event and status.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| name | varchar(255) | NO | |
| description | mediumtext | YES | |
| event_name | varchar(255) | NO | Index |
| priority | int | NO | |
| payload | longblob | YES | |
| invalid | tinyint(1) | NO | |
| active | tinyint(1) | NO | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| app_flow_event_id | binary(16) | YES | Index Foreign Key → app_flow_event.id |
Ordered sequence of actions, conditions, and branches within a Flow Builder flow.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| flow_id | binary(16) | NO | Index Foreign Key → flow.id |
| app_flow_action_id | binary(16) | YES | Index Foreign Key → app_flow_action.id |
| parent_id | binary(16) | YES | Index Foreign Key → flow_sequence.id |
| rule_id | binary(16) | YES | Index Foreign Key → rule.id |
| action_name | varchar(255) | YES | |
| config | json | YES | |
| position | int | NO | |
| display_group | int | NO | |
| true_case | tinyint(1) | NO | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Pre-built flow templates that users can import as starting points in Flow Builder.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| name | varchar(255) | NO | |
| config | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Tracks files generated by or uploaded to the import/export system.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| original_name | varchar(255) | NO | |
| path | varchar(255) | NO | |
| expire_date | datetime(3) | NO | |
| size | int | YES | |
| updated_at | datetime(3) | YES | |
| created_at | datetime(3) | NO | |
| access_token | varchar(255) | YES |
Log entries for import/export operations (status, record counts, errors).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| activity | varchar(255) | NO | |
| state | varchar(255) | NO | |
| records | int | NO | |
| username | varchar(255) | YES | |
| profile_name | varchar(255) | YES | |
| user_id | binary(16) | YES | Index Foreign Key → user.id |
| profile_id | binary(16) | YES | Index Foreign Key → import_export_profile.id |
| file_id | binary(16) | YES | Index Foreign Key → import_export_file.id |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| config | json | YES | |
| result | json | YES | |
| invalid_records_log_id | binary(16) | YES | Index Foreign Key → import_export_log.id |
Reusable import/export profile definitions (field mappings, entity type, file format).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| system_default | tinyint unsigned | NO | |
| source_entity | varchar(255) | NO | |
| file_type | varchar(255) | NO | |
| delimiter | varchar(255) | YES | |
| enclosure | varchar(255) | YES | |
| type | varchar(255) | NO | |
| mapping | longtext | YES | |
| update_by | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| config | json | YES | |
| technical_name | varchar(255) | NO | Unique |
Translations for import/export profile labels.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| import_export_profile_id | binary(16) | NO | Primary Key Foreign Key → import_export_profile.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| label | varchar(255) | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Generic increment/counter storage used for click tracking, view counts, and similar metrics.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| pool | varchar(255) | NO | Primary Key |
| cluster | varchar(255) | NO | Primary Key |
| key | varchar(255) | NO | Primary Key |
| count | bigint unsigned | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
API integrations (machine-to-machine) with client ID/secret for the Admin API.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| access_key | varchar(255) | NO | Index |
| secret_access_key | varchar(255) | NO | |
| label | varchar(255) | NO | |
| admin | tinyint(1) | NO | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| last_usage_at | datetime(3) | YES | |
| deleted_at | datetime(3) | YES |
Links API integrations to ACL roles, defining their permission scope.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| integration_id | binary(16) | NO | Primary Key Foreign Key → integration.id |
| acl_role_id | binary(16) | NO | Primary Key Foreign Key → acl_role.id |
Queued cache invalidation tags scheduled for processing by the cache invalidation worker.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| tag | varchar(255) | NO | Unique |
Standalone landing pages with CMS layouts, reachable via custom URLs.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| version_id | binary(16) | NO | Primary Key |
| active | tinyint(1) | NO | |
| cms_page_id | binary(16) | YES | Index Foreign Key → cms_page.id |
| cms_page_version_id | binary(16) | NO | Foreign Key → cms_page.version_id |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Links landing pages to the Sales Channels where they are visible.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| landing_page_id | binary(16) | NO | Primary Key Foreign Key → landing_page.id |
| landing_page_version_id | binary(16) | NO | Primary Key Foreign Key → landing_page.version_id |
| sales_channel_id | binary(16) | NO | Primary Key Foreign Key → sales_channel.id |
Junction table linking landing pages to tags.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| landing_page_id | binary(16) | NO | Primary Key Foreign Key → landing_page.id |
| landing_page_version_id | binary(16) | NO | Primary Key Foreign Key → landing_page.version_id |
| tag_id | binary(16) | NO | Primary Key Foreign Key → tag.id |
Translations for landing page names, URLs, meta title, and meta description.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| landing_page_id | binary(16) | NO | Primary Key Foreign Key → landing_page.id |
| landing_page_version_id | binary(16) | NO | Primary Key Foreign Key → landing_page.version_id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| name | varchar(255) | YES | |
| url | varchar(255) | YES | |
| meta_title | varchar(255) | YES | |
| meta_description | varchar(255) | YES | |
| keywords | varchar(255) | YES | |
| custom_fields | json | YES | |
| slot_config | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Available languages in the system — each linked to a locale and optionally a parent (inheritance).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| name | varchar(50) | NO | |
| parent_id | binary(16) | YES | Index Foreign Key → language.id |
| locale_id | binary(16) | NO | Index Foreign Key → locale.id |
| translation_code_id | binary(16) | YES | Index Foreign Key → locale.id |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| active | tinyint(1) | NO |
Locale definitions (e.g. en-GB, de-DE) providing regional formatting and language codes.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| code | varchar(255) | NO | Unique |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Translations for locale display names (territory and language names).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| locale_id | binary(16) | NO | Primary Key Foreign Key → locale.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| name | varchar(255) | YES | |
| territory | varchar(255) | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
System log entries for errors and debug information (persisted to DB).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| message | longtext | NO | |
| level | smallint | NO | |
| channel | varchar(255) | NO | |
| context | json | YES | |
| extra | json | YES | |
| created_at | datetime(3) | NO | Index |
| updated_at | datetime(3) | YES |
Email templates for transactional emails (order confirmation, password reset, etc.).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| mail_template_type_id | binary(16) | YES | Index Foreign Key → mail_template_type.id |
| system_default | tinyint unsigned | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Media files attached to email templates (e.g. PDF attachments, inline images).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| mail_template_id | binary(16) | NO | Index Foreign Key → mail_template.id |
| language_id | binary(16) | YES | Index Foreign Key → language.id |
| media_id | binary(16) | NO | Index Foreign Key → media.id |
| position | int | NO |
Translations for email template subject, HTML body, and plain-text body.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| mail_template_id | binary(16) | NO | Primary Key Foreign Key → mail_template.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| sender_name | varchar(255) | YES | |
| subject | varchar(255) | YES | |
| description | longtext | YES | |
| content_html | longtext | YES | |
| content_plain | longtext | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Defines available email template types (technical name + associated business event).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| technical_name | varchar(255) | NO | Unique |
| available_entities | longtext | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| template_data | longtext | YES |
Translations for email template type display names.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| mail_template_type_id | binary(16) | NO | Primary Key Foreign Key → mail_template_type.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| name | varchar(255) | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Assigns a primary category per Sales Channel to a product (used for canonical URLs and breadcrumbs).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| product_id | binary(16) | NO | Index Foreign Key → product.id |
| product_version_id | binary(16) | NO | Foreign Key → product.version_id |
| category_id | binary(16) | NO | Index Foreign Key → category.id |
| category_version_id | binary(16) | NO | Foreign Key → category.version_id |
| sales_channel_id | binary(16) | NO | Index Foreign Key → sales_channel.id |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Display units for measurements (e.g. cm, inch, kg) shown in the storefront.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| measurement_system_id | binary(16) | NO | Index Foreign Key → measurement_system.id |
| default | tinyint(1) | NO | |
| type | varchar(20) | NO | |
| short_name | varchar(20) | NO | Unique |
| factor | double | NO | |
| precision | int | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Translations for measurement display unit labels.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| name | varchar(255) | YES | |
| measurement_display_unit_id | binary(16) | NO | Primary Key Foreign Key → measurement_display_unit.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Measurement systems (metric, imperial) for storefront unit display.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| technical_name | varchar(255) | NO | Unique |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Translations for measurement system names.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| name | varchar(255) | YES | |
| measurement_system_id | binary(16) | NO | Primary Key Foreign Key → measurement_system.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Central media library — stores metadata for all uploaded files (images, documents, videos).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| user_id | binary(16) | YES | Index Foreign Key → user.id |
| media_folder_id | binary(16) | YES | Index Foreign Key → media_folder.id |
| mime_type | varchar(255) | YES | |
| file_extension | varchar(50) | YES | Index |
| file_size | int unsigned | YES | |
| meta_data | json | YES | |
| file_name | longtext | YES | Index |
| media_type | longblob | YES | |
| thumbnails_ro | longblob | YES | |
| private | tinyint(1) | NO | |
| uploaded_at | datetime(3) | YES | Index |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| path | varchar(2048) | YES | |
| config | json | YES | |
| file_hash | varchar(32) | YES | Index |
Maps entity types to their default media folder (e.g. product images → 'Product Media').
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| entity | varchar(255) | NO | Unique |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Organizational folders within the media library for grouping media files.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| parent_id | binary(16) | YES | Index Foreign Key → media_folder.id |
| default_folder_id | binary(16) | YES | Unique Foreign Key → media_default_folder.id |
| name | varchar(255) | YES | |
| child_count | int unsigned | NO | |
| path | longtext | YES | |
| media_folder_configuration_id | binary(16) | YES | |
| use_parent_configuration | tinyint(1) | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Thumbnail generation settings and other configuration per media folder.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| create_thumbnails | tinyint(1) | YES | |
| thumbnail_quality | int | YES | |
| media_thumbnail_sizes_ro | longblob | YES | |
| keep_aspect_ratio | tinyint(1) | YES | |
| private | tinyint(1) | YES | |
| no_association | tinyint(1) | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Junction table linking folder configurations to their allowed thumbnail sizes.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| media_folder_configuration_id | binary(16) | NO | Primary Key Foreign Key → media_folder_configuration.id |
| media_thumbnail_size_id | binary(16) | NO | Primary Key Foreign Key → media_thumbnail_size.id |
Generated thumbnail variants of media images with their dimensions and paths.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| media_id | binary(16) | NO | Index Foreign Key → media.id |
| width | int unsigned | NO | |
| height | int unsigned | NO | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| path | varchar(2048) | YES | |
| media_thumbnail_size_id | binary(16) | NO | Index Foreign Key → media_thumbnail_size.id |
Defined thumbnail dimensions (width × height) used for automatic thumbnail generation.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| width | int | NO | Index |
| height | int | NO | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Translations for media alt text, title, and custom fields.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| media_id | binary(16) | NO | Primary Key Foreign Key → media.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| alt | varchar(255) | YES | |
| title | varchar(255) | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Symfony Messenger queue storage table (database transport for async workers).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | bigint | NO | Primary Key |
| body | longtext | NO | |
| headers | longtext | NO | |
| queue_name | varchar(190) | NO | Index |
| created_at | datetime | NO | |
| available_at | datetime | NO | Index |
| delivered_at | datetime | YES | Index |
Runtime statistics for the messenger worker (processed/failed counts).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | bigint unsigned | NO | Primary Key |
| message_type | varchar(255) | NO | |
| time_in_queue | int | NO | |
| created_at | datetime | NO | Index |
Tracks executed database migration versions to prevent re-running migrations.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| class | varchar(255) | NO | Primary Key |
| creation_timestamp | int | NO | |
| update | timestamp(6) | YES | |
| update_destructive | timestamp(6) | YES | |
| message | text | YES |
Newsletter subscriber records with email, status (opt-in/confirmed), and Sales Channel assignment.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| varchar(255) | NO | Index | |
| title | varchar(255) | YES | |
| first_name | varchar(255) | YES | |
| last_name | varchar(255) | YES | |
| zip_code | varchar(255) | YES | |
| city | varchar(255) | YES | |
| street | varchar(255) | YES | |
| status | varchar(255) | NO | |
| hash | varchar(255) | NO | Unique |
| salutation_id | binary(16) | YES | Index Foreign Key → salutation.id |
| language_id | binary(16) | NO | Index Foreign Key → language.id |
| sales_channel_id | binary(16) | NO | Index Foreign Key → sales_channel.id |
| custom_fields | json | YES | |
| confirmed_at | datetime(3) | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Junction table linking newsletter recipients to tags for segmentation.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| newsletter_recipient_id | binary(16) | NO | Primary Key Foreign Key → newsletter_recipient.id |
| tag_id | binary(16) | NO | Primary Key Foreign Key → tag.id |
Admin notification messages (e.g. import complete, app update available) shown in the Administration.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| status | varchar(255) | NO | |
| message | longtext | NO | |
| admin_only | tinyint(1) | NO | |
| required_privileges | json | YES | |
| created_by_integration_id | binary(16) | YES | Index Foreign Key → integration.id |
| created_by_user_id | binary(16) | YES | Index Foreign Key → user.id |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Configurable number ranges for generating sequential document/order numbers (e.g. INV-10001).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| type_id | binary(16) | NO | |
| global | tinyint(1) | NO | |
| pattern | varchar(255) | NO | |
| start | int | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Links number ranges to Sales Channels (each channel can have its own numbering).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| number_range_id | binary(16) | NO | Index Foreign Key → number_range.id |
| sales_channel_id | binary(16) | YES | Index Foreign Key → sales_channel.id |
| number_range_type_id | binary(16) | NO | Index Foreign Key → number_range_type.id |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Current counter state for each number range (the last generated number).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Unique |
| number_range_id | binary(16) | NO | Primary Key |
| last_value | int | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Translations for number range display names.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| number_range_id | binary(16) | NO | Primary Key Foreign Key → number_range.id |
| name | varchar(64) | YES | |
| description | varchar(255) | YES | |
| custom_fields | json | YES | |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Types of number ranges (order, invoice, delivery_note, etc.) — defines what entity uses them.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| technical_name | varchar(64) | YES | Unique |
| global | tinyint(1) | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Translations for number range type names.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| number_range_type_id | binary(16) | NO | Primary Key Foreign Key → number_range_type.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| type_name | varchar(64) | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Tracks OAuth user sessions — used internally for Admin API authentication tokens.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| user_id | binary(16) | NO | Unique Foreign Key → user.id |
| user_sub | varchar(255) | NO | Unique |
| token | json | YES | |
| expiry | datetime | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Core order records — contains order state, totals, currency, billing address reference, and campaign tracking.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| version_id | binary(16) | NO | Primary Key |
| state_id | binary(16) | NO | Index Foreign Key → state_machine_state.id |
| auto_increment | bigint unsigned | NO | Unique |
| order_number | varchar(64) | YES | Index |
| currency_id | binary(16) | NO | Index Foreign Key → currency.id |
| language_id | binary(16) | NO | Index Foreign Key → language.id |
| currency_factor | double | YES | |
| sales_channel_id | binary(16) | NO | Index Foreign Key → sales_channel.id |
| billing_address_id | binary(16) | NO | |
| billing_address_version_id | binary(16) | NO | |
| price | json | NO | |
| order_date_time | datetime(3) | NO | |
| order_date | date | YES | Index |
| amount_total | double | YES | |
| amount_net | double | YES | |
| position_price | double | YES | |
| tax_status | varchar(255) | YES | |
| shipping_costs | json | NO | |
| shipping_total | double | YES | |
| deep_link_code | varchar(32) | YES | Index |
| custom_fields | json | YES | |
| affiliate_code | varchar(255) | YES | |
| campaign_code | varchar(255) | YES | |
| customer_comment | longtext | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| item_rounding | json | YES | |
| total_rounding | json | YES | |
| rule_ids | json | YES | |
| created_by_id | binary(16) | YES | Index Foreign Key → user.id |
| updated_by_id | binary(16) | YES | Index Foreign Key → user.id |
| source | varchar(255) | YES | |
| primary_order_delivery_id | binary(16) | YES | |
| primary_order_delivery_version_id | binary(16) | YES | |
| primary_order_transaction_id | binary(16) | YES | |
| primary_order_transaction_version_id | binary(16) | YES | |
| internal_comment | longtext | YES | |
| tax_calculation_type | varchar(50) | YES |
Snapshot of customer addresses at time of order (immutable copy, not linked to current address book).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| version_id | binary(16) | NO | Primary Key |
| country_id | binary(16) | NO | Index Foreign Key → country.id |
| country_state_id | binary(16) | YES | Index Foreign Key → country_state.id |
| order_id | binary(16) | NO | Index Foreign Key → order.id |
| order_version_id | binary(16) | NO | Foreign Key → order.version_id |
| company | varchar(255) | YES | |
| department | varchar(255) | YES | |
| salutation_id | binary(16) | YES | Index Foreign Key → salutation.id |
| title | varchar(100) | YES | |
| first_name | varchar(255) | NO | |
| last_name | varchar(255) | NO | |
| street | varchar(255) | NO | |
| zipcode | varchar(50) | YES | |
| city | varchar(70) | NO | |
| vat_id | varchar(50) | YES | |
| phone_number | varchar(40) | YES | |
| additional_address_line1 | varchar(255) | YES | |
| additional_address_line2 | varchar(255) | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | Index |
| updated_at | datetime(3) | YES |
Snapshot of customer data at time of order (name, email, customer number, group).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| version_id | binary(16) | NO | Primary Key |
| customer_id | binary(16) | YES | Index Foreign Key → customer.id |
| order_id | binary(16) | NO | Index Foreign Key → order.id |
| order_version_id | binary(16) | NO | Foreign Key → order.version_id |
| varchar(254) | NO | ||
| salutation_id | binary(16) | YES | Index Foreign Key → salutation.id |
| first_name | varchar(255) | NO | |
| last_name | varchar(255) | NO | |
| title | varchar(100) | YES | |
| vat_ids | json | YES | |
| company | varchar(255) | YES | |
| customer_number | varchar(255) | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| remote_address | varchar(255) | YES |
Shipping deliveries within an order — each with its own shipping method, address, and state.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| version_id | binary(16) | NO | Primary Key |
| order_id | binary(16) | NO | Index Foreign Key → order.id |
| order_version_id | binary(16) | NO | Foreign Key → order.version_id |
| state_id | binary(16) | NO | Index Foreign Key → state_machine_state.id |
| shipping_order_address_id | binary(16) | YES | Index Foreign Key → order_address.id |
| shipping_order_address_version_id | binary(16) | YES | Foreign Key → order_address.version_id |
| shipping_method_id | binary(16) | NO | Index Foreign Key → shipping_method.id |
| tracking_codes | json | NO | |
| shipping_date_earliest | date | NO | |
| shipping_date_latest | date | NO | |
| shipping_costs | json | NO | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Individual line items within a delivery (which products/quantities are in which shipment).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| version_id | binary(16) | NO | Primary Key |
| order_delivery_id | binary(16) | NO | Index Foreign Key → order_delivery.id |
| order_delivery_version_id | binary(16) | NO | Foreign Key → order_delivery.version_id |
| order_line_item_id | binary(16) | NO | Index Foreign Key → order_line_item.id |
| order_line_item_version_id | binary(16) | NO | Foreign Key → order_line_item.version_id |
| price | json | NO | |
| total_price | double | YES | |
| unit_price | double | YES | |
| quantity | int | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Order line items — products, promotions, custom items, and credits with prices and quantities.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| version_id | binary(16) | NO | Primary Key |
| order_id | binary(16) | NO | Index Foreign Key → order.id |
| order_version_id | binary(16) | NO | Foreign Key → order.version_id |
| parent_id | binary(16) | YES | Index Foreign Key → order_line_item.id |
| parent_version_id | binary(16) | YES | Foreign Key → order_line_item.version_id |
| identifier | varchar(255) | NO | |
| referenced_id | varchar(255) | YES | |
| product_id | binary(16) | YES | Index Foreign Key → product.id |
| product_version_id | binary(16) | YES | Foreign Key → product.version_id |
| promotion_id | binary(16) | YES | Index Foreign Key → promotion.id |
| label | varchar(255) | NO | |
| description | mediumtext | YES | |
| cover_id | binary(16) | YES | Index Foreign Key → media.id |
| quantity | int | NO | |
| unit_price | double | YES | |
| total_price | double | YES | |
| type | varchar(255) | YES | |
| payload | json | YES | |
| price_definition | json | YES | |
| price | json | NO | |
| stackable | tinyint(1) | NO | |
| removable | tinyint(1) | NO | |
| good | tinyint(1) | NO | |
| position | int | NO | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | Index |
| updated_at | datetime(3) | YES | |
| states | json | YES |
Downloadable file access records for digital product line items.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| version_id | binary(16) | NO | Primary Key |
| position | int | NO | |
| access_granted | tinyint(1) | NO | |
| order_line_item_id | binary(16) | NO | Index Foreign Key → order_line_item.id |
| order_line_item_version_id | binary(16) | NO | Foreign Key → order_line_item.version_id |
| media_id | binary(16) | NO | Index Foreign Key → media.id |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Junction table linking orders to tags for internal organization and Flow Builder conditions.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| order_id | binary(16) | NO | Primary Key Foreign Key → order.id |
| order_version_id | binary(16) | NO | Primary Key Foreign Key → order.version_id |
| tag_id | binary(16) | NO | Primary Key Foreign Key → tag.id |
Payment transactions for an order — each with a payment method and transaction state.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| version_id | binary(16) | NO | Primary Key |
| order_id | binary(16) | NO | Index Foreign Key → order.id |
| order_version_id | binary(16) | NO | Foreign Key → order.version_id |
| state_id | binary(16) | NO | Index Foreign Key → state_machine_state.id |
| payment_method_id | binary(16) | NO | Index Foreign Key → payment_method.id |
| amount | json | NO | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | Index |
| updated_at | datetime(3) | YES | |
| validation_data | json | YES |
Payment captures for a transaction (represents the actual charge of authorized payments).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| order_transaction_id | binary(16) | NO | Index Foreign Key → order_transaction.id |
| order_transaction_version_id | binary(16) | NO | Foreign Key → order_transaction.version_id |
| state_id | binary(16) | NO | Index Foreign Key → state_machine_state.id |
| external_reference | varchar(255) | YES | |
| amount | json | NO | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| version_id | binary(16) | NO | Primary Key |
Refund records for captured payments (partial or full refunds).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| capture_id | binary(16) | NO | Index Foreign Key → order_transaction_capture.id |
| state_id | binary(16) | NO | Index Foreign Key → state_machine_state.id |
| reason | varchar(255) | YES | |
| amount | json | NO | |
| custom_fields | json | YES | |
| external_reference | varchar(255) | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| version_id | binary(16) | NO | Primary Key |
| capture_version_id | binary(16) | YES | Foreign Key → order_transaction_capture.version_id |
Individual line-item positions within a refund (which items/amounts are being refunded).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| refund_id | binary(16) | NO | Index Foreign Key → order_transaction_capture_refund.id |
| order_line_item_id | binary(16) | NO | Index Foreign Key → order_line_item.id |
| order_line_item_version_id | binary(16) | NO | Foreign Key → order_line_item.version_id |
| quantity | int | NO | |
| reason | varchar(255) | YES | |
| external_reference | varchar(255) | YES | |
| amount | json | NO | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| version_id | binary(16) | NO | Primary Key |
| refund_version_id | binary(16) | YES | Foreign Key → order_transaction_capture_refund.version_id |
Available payment methods (e.g. invoice, credit card, PayPal) with handler class and configuration.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| handler_identifier | varchar(255) | NO | |
| position | int | NO | |
| active | tinyint(1) | NO | |
| after_order_enabled | tinyint(1) | NO | |
| availability_rule_id | binary(16) | YES | Index Foreign Key → rule.id |
| plugin_id | binary(16) | YES | Index Foreign Key → plugin.id |
| media_id | binary(16) | YES | Index Foreign Key → media.id |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| technical_name | varchar(255) | NO | Unique |
Translations for payment method names and descriptions.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| payment_method_id | binary(16) | NO | Primary Key Foreign Key → payment_method.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| name | varchar(255) | YES | |
| distinguishable_name | varchar(255) | YES | |
| description | mediumtext | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Short-lived tokens for payment gateway callbacks (return URLs after redirect-based payments).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| token | char(32) | NO | Primary Key |
| expires | datetime(3) | NO | |
| consumed | tinyint(1) | YES |
Registry of installed Composer-based plugins with version, status, and lifecycle metadata.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| name | varchar(255) | NO | Unique |
| base_class | varchar(255) | NO | Unique |
| composer_name | varchar(255) | YES | |
| active | tinyint(1) | NO | |
| managed_by_composer | tinyint(1) | NO | |
| path | varchar(255) | YES | |
| autoload | json | NO | |
| author | varchar(255) | YES | |
| copyright | varchar(255) | YES | |
| license | varchar(255) | YES | |
| version | varchar(255) | NO | |
| upgrade_version | varchar(255) | YES | |
| icon | mediumblob | YES | |
| installed_at | datetime(3) | YES | |
| upgraded_at | datetime(3) | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Translations for plugin display names and descriptions.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| plugin_id | binary(16) | NO | Primary Key Foreign Key → plugin.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| label | varchar(255) | YES | |
| description | longtext | YES | |
| manufacturer_link | text | YES | |
| support_link | text | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Core product entity — the central table for all product data including prices, stock, EAN, and tax assignment.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| version_id | binary(16) | NO | Primary Key |
| auto_increment | int | NO | Unique |
| product_number | varchar(64) | YES | Index |
| active | tinyint unsigned | YES | |
| parent_id | binary(16) | YES | Index Foreign Key → product.id |
| parent_version_id | binary(16) | YES | Foreign Key → product.version_id |
| tax_id | binary(16) | YES | Index Foreign Key → tax.id |
| product_manufacturer_id | binary(16) | YES | Index Foreign Key → product_manufacturer.id |
| product_manufacturer_version_id | binary(16) | YES | Foreign Key → product_manufacturer.version_id |
| delivery_time_id | binary(16) | YES | |
| deliveryTime | binary(16) | YES | |
| product_media_id | binary(16) | YES | Index |
| product_media_version_id | binary(16) | YES | |
| cms_page_id | binary(16) | YES | Index Foreign Key → cms_page.id |
| cms_page_version_id | binary(16) | NO | Foreign Key → cms_page.version_id |
| unit_id | binary(16) | YES | Index Foreign Key → unit.id |
| product_feature_set_id | binary(16) | YES | Index Foreign Key → product_feature_set.id |
| category_tree | json | YES | |
| category_ids | json | YES | |
| stream_ids | json | YES | |
| option_ids | json | YES | |
| property_ids | json | YES | |
| tax | binary(16) | YES | |
| manufacturer | binary(16) | YES | |
| cover | binary(16) | YES | |
| unit | binary(16) | YES | |
| media | binary(16) | YES | |
| prices | binary(16) | YES | |
| visibilities | binary(16) | YES | |
| properties | binary(16) | YES | |
| categories | binary(16) | YES | Index |
| translations | binary(16) | YES | |
| price | json | YES | |
| manufacturer_number | varchar(255) | YES | |
| ean | varchar(255) | YES | |
| sales | int | NO | |
| stock | int | NO | |
| available_stock | int | YES | |
| available | tinyint(1) | NO | |
| restock_time | int | YES | |
| is_closeout | tinyint(1) | YES | |
| purchase_steps | int unsigned | YES | |
| max_purchase | int unsigned | YES | |
| min_purchase | int unsigned | YES | |
| purchase_unit | decimal(11,4) unsigned | YES | |
| reference_unit | decimal(10,3) unsigned | YES | |
| shipping_free | tinyint(1) | YES | |
| purchase_prices | json | YES | |
| mark_as_topseller | tinyint unsigned | YES | |
| weight | decimal(15,6) unsigned | YES | |
| width | decimal(10,3) unsigned | YES | |
| height | decimal(10,3) unsigned | YES | |
| length | decimal(10,3) unsigned | YES | |
| release_date | datetime(3) | YES | |
| tag_ids | json | YES | |
| tags | binary(16) | YES | |
| variant_restrictions | json | YES | |
| created_at | datetime(3) | YES | |
| updated_at | datetime(3) | YES | |
| rating_average | float | YES | |
| display_group | varchar(50) | YES | |
| child_count | int | YES | |
| crossSellings | binary(16) | YES | |
| featureSet | binary(16) | YES | |
| customFieldSets | binary(16) | YES | |
| custom_field_set_selection_active | tinyint(1) | YES | |
| canonical_product_id | binary(16) | YES | Index Foreign Key → product.id |
| canonical_product_version_id | binary(16) | YES | Foreign Key → product.version_id |
| canonicalProduct | binary(16) | YES | |
| cmsPage | binary(16) | YES | |
| cheapest_price | longtext | YES | |
| cheapest_price_accessor | longtext | YES | |
| states | json | YES | |
| variant_listing_config | json | YES | |
| type | varchar(32) | NO | Index |
Junction table directly assigning products to categories.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| product_id | binary(16) | NO | Primary Key Foreign Key → product.id |
| product_version_id | binary(16) | NO | Primary Key Foreign Key → product.version_id |
| category_id | binary(16) | NO | Primary Key Foreign Key → category.id |
| category_version_id | binary(16) | NO | Primary Key Foreign Key → category.version_id |
Denormalized product-to-category mapping including inherited parent categories (for fast filtering).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| product_id | binary(16) | NO | Primary Key Foreign Key → product.id |
| product_version_id | binary(16) | NO | Primary Key Foreign Key → product.version_id |
| category_id | binary(16) | NO | Primary Key Foreign Key → category.id |
| category_version_id | binary(16) | NO | Primary Key Foreign Key → category.version_id |
Variant configuration options (e.g. size: L, color: red) linked to a parent product.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| version_id | binary(16) | NO | Primary Key |
| product_id | binary(16) | NO | Index Foreign Key → product.id |
| product_version_id | binary(16) | NO | Foreign Key → product.version_id |
| property_group_option_id | binary(16) | NO | Index Foreign Key → property_group_option.id |
| price | json | YES | |
| position | int | NO | |
| media_id | binary(16) | YES | Index Foreign Key → media.id |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Cross-selling definitions on products (e.g. 'Accessories', 'Similar items') with sorting and type.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| type | varchar(255) | NO | |
| position | int | NO | |
| sort_by | varchar(255) | NO | |
| sort_direction | varchar(255) | NO | |
| active | tinyint(1) | YES | |
| limit | int | NO | |
| product_id | binary(16) | NO | Index Foreign Key → product.id |
| product_version_id | binary(16) | NO | Foreign Key → product.version_id |
| product_stream_id | binary(16) | YES | Index Foreign Key → product_stream.id |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Manually assigned products within a cross-selling group (when type is 'manual').
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| cross_selling_id | binary(16) | NO | Index Foreign Key → product_cross_selling.id |
| product_id | binary(16) | NO | Index Foreign Key → product.id |
| product_version_id | binary(16) | NO | Foreign Key → product.version_id |
| position | int | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Translations for cross-selling group names.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| product_cross_selling_id | binary(16) | NO | Primary Key Foreign Key → product_cross_selling.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| name | varchar(255) | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Junction table linking products to custom field sets for product-specific custom fields.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| custom_field_set_id | binary(16) | NO | Primary Key Foreign Key → custom_field_set.id |
| product_id | binary(16) | NO | Primary Key Foreign Key → product.id |
| product_version_id | binary(16) | NO | Primary Key Foreign Key → product.version_id |
Digital download files attached to products (for digital/downloadable product types).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| version_id | binary(16) | NO | Primary Key |
| position | int | NO | |
| product_id | binary(16) | NO | Index Foreign Key → product.id |
| product_version_id | binary(16) | NO | Foreign Key → product.version_id |
| media_id | binary(16) | NO | Index Foreign Key → media.id |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Product export/feed configurations (e.g. Google Shopping XML) with template, schedule, and Sales Channel.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| product_stream_id | binary(16) | NO | Index Foreign Key → product_stream.id |
| storefront_sales_channel_id | binary(16) | YES | Index Foreign Key → sales_channel.id |
| sales_channel_id | binary(16) | NO | Index Foreign Key → sales_channel.id |
| sales_channel_domain_id | binary(16) | YES | Index Foreign Key → sales_channel_domain.id |
| file_name | varchar(255) | NO | Unique |
| access_key | varchar(255) | NO | |
| encoding | varchar(255) | NO | |
| file_format | varchar(255) | NO | |
| include_variants | tinyint(1) | YES | |
| generate_by_cronjob | tinyint(1) | NO | |
| generated_at | datetime(3) | YES | |
| interval | int | NO | |
| header_template | longtext | YES | |
| body_template | longtext | YES | |
| footer_template | longtext | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| currency_id | binary(16) | NO | |
| paused_schedule | tinyint(1) | YES | |
| is_running | tinyint(1) | NO |
Feature sets (essential characteristics) that define which product properties to highlight.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| features | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Translations for feature set names and descriptions.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| product_feature_set_id | binary(16) | NO | Primary Key Foreign Key → product_feature_set.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| name | varchar(255) | YES | |
| description | mediumtext | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Dictionary of searchable keywords extracted from products (used by the search indexer).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| keyword | varchar(500) | NO | |
| reversed | varchar(500) | YES |
Product manufacturers/brands with logo, link, and description.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| version_id | binary(16) | NO | Primary Key |
| media_id | binary(16) | YES | Index Foreign Key → media.id |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Translations for manufacturer names and descriptions.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| product_manufacturer_id | binary(16) | NO | Primary Key Foreign Key → product_manufacturer.id |
| product_manufacturer_version_id | binary(16) | NO | Primary Key Foreign Key → product_manufacturer.version_id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| name | varchar(255) | YES | |
| description | longtext | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| link | longtext | YES |
Product images and media assignments with position ordering and cover flag.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| version_id | binary(16) | NO | Primary Key |
| position | int | NO | |
| product_id | binary(16) | NO | Index Foreign Key → product.id |
| product_version_id | binary(16) | NO | Foreign Key → product.version_id |
| media_id | binary(16) | NO | Index Foreign Key → media.id |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Links variant products to their selected property group options (e.g. 'Color: Blue').
| Column | Type | Nullable | Additional |
|---|---|---|---|
| product_id | binary(16) | NO | Primary Key Foreign Key → product.id |
| product_version_id | binary(16) | NO | Primary Key Foreign Key → product.version_id |
| property_group_option_id | binary(16) | NO | Primary Key Foreign Key → property_group_option.id |
Advanced pricing rules — quantity-based graduated prices and currency-specific prices per rule.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| version_id | binary(16) | NO | Primary Key |
| rule_id | binary(16) | NO | Index Foreign Key → rule.id |
| product_id | binary(16) | NO | Index Foreign Key → product.id |
| product_version_id | binary(16) | NO | Foreign Key → product.version_id |
| price | json | NO | |
| quantity_start | int | NO | |
| quantity_end | int | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Assigns filterable property values (e.g. material, color) to products for faceted search.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| product_id | binary(16) | NO | Primary Key Foreign Key → product.id |
| product_version_id | binary(16) | NO | Primary Key Foreign Key → product.version_id |
| property_group_option_id | binary(16) | NO | Primary Key Foreign Key → property_group_option.id |
Customer product reviews with star rating, title, content, and approval status.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| product_id | binary(16) | NO | Index Foreign Key → product.id |
| customer_id | binary(16) | YES | Index Foreign Key → customer.id |
| sales_channel_id | binary(16) | YES | Index Foreign Key → sales_channel.id |
| language_id | binary(16) | YES | Index Foreign Key → language.id |
| external_user | varchar(255) | YES | |
| external_email | varchar(255) | YES | |
| title | varchar(255) | YES | |
| content | longtext | YES | |
| points | double | YES | |
| status | tinyint(1) | YES | |
| comment | longtext | YES | |
| custom_fields | json | YES | |
| updated_at | datetime(3) | YES | |
| created_at | datetime(3) | NO | |
| product_version_id | binary(16) | NO | Foreign Key → product.version_id |
Search configuration per language — ranking weights and behavior for the storefront search.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| language_id | binary(16) | NO | Unique Foreign Key → language.id |
| and_logic | tinyint(1) | NO | |
| min_search_length | smallint | NO | |
| excluded_terms | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Per-field search configuration (which product fields are searchable, their ranking weight).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| product_search_config_id | binary(16) | NO | Index Foreign Key → product_search_config.id |
| custom_field_id | binary(16) | YES | Index Foreign Key → custom_field.id |
| field | varchar(255) | NO | Index |
| tokenize | tinyint(1) | NO | |
| searchable | tinyint(1) | NO | |
| ranking | int | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Pre-computed search keywords per product and language for fast full-text search matching.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| version_id | binary(16) | NO | Primary Key |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| product_id | binary(16) | NO | Index Foreign Key → product.id |
| product_version_id | binary(16) | NO | Foreign Key → product.version_id |
| keyword | varchar(255) | NO | Index |
| ranking | double | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Custom product listing sort orders (e.g. 'Price ascending', 'Bestseller') for category pages.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| url_key | varchar(255) | NO | Unique |
| priority | int unsigned | NO | |
| active | tinyint(1) | NO | |
| fields | json | NO | |
| created_at | datetime(3) | NO | |
| locked | tinyint(1) | NO | |
| updated_at | datetime(3) | YES |
Translations for custom product sorting option labels.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| product_sorting_id | binary(16) | NO | Primary Key Foreign Key → product_sorting.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| label | varchar(255) | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Dynamic product groups (streams) defined by filter rules — products are matched automatically.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| api_filter | json | YES | |
| invalid | tinyint(1) | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| internal | tinyint(1) | NO |
Individual filter conditions within a product stream (e.g. price > 10, manufacturer = X).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| product_stream_id | binary(16) | NO | Index Foreign Key → product_stream.id |
| parent_id | binary(16) | YES | Index Foreign Key → product_stream_filter.id |
| type | varchar(255) | NO | |
| field | varchar(255) | YES | |
| operator | varchar(255) | YES | |
| value | longtext | YES | |
| parameters | longtext | YES | |
| position | int | NO | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Cached/materialized mapping of products matching a product stream (for performance).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| product_id | binary(16) | NO | Primary Key Foreign Key → product.id |
| product_version_id | binary(16) | NO | Primary Key Foreign Key → product.version_id |
| product_stream_id | binary(16) | NO | Primary Key Foreign Key → product_stream.id |
Translations for product stream names and descriptions.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| product_stream_id | binary(16) | NO | Primary Key Foreign Key → product_stream.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| name | varchar(255) | YES | |
| description | mediumtext | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Junction table linking products to tags.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| product_id | binary(16) | NO | Primary Key Foreign Key → product.id |
| product_version_id | binary(16) | NO | Primary Key Foreign Key → product.version_id |
| tag_id | binary(16) | NO | Primary Key Foreign Key → tag.id |
Translations for product names, descriptions, meta info, custom fields, and keyword lists.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| product_id | binary(16) | NO | Primary Key Foreign Key → product.id |
| product_version_id | binary(16) | NO | Primary Key Foreign Key → product.version_id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| meta_description | varchar(255) | YES | |
| name | varchar(255) | YES | |
| keywords | mediumtext | YES | |
| description | mediumtext | YES | |
| meta_title | varchar(255) | YES | |
| pack_unit | varchar(255) | YES | |
| custom_fields | json | YES | |
| slot_config | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| pack_unit_plural | varchar(255) | YES | |
| custom_search_keywords | json | YES |
Controls product visibility per Sales Channel (all, search-only, listing-only, or hidden).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| product_id | binary(16) | NO | Index Foreign Key → product.id |
| product_version_id | binary(16) | NO | Foreign Key → product.version_id |
| sales_channel_id | binary(16) | NO | Index Foreign Key → sales_channel.id |
| visibility | int | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Promotion definitions with validity period, usage limits, and exclusion rules.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| active | tinyint(1) | NO | |
| valid_from | datetime | YES | |
| valid_until | datetime | YES | |
| max_redemptions_global | int | YES | |
| max_redemptions_per_customer | int | YES | |
| priority | int | NO | |
| order_count | int | NO | |
| orders_per_customer_count | json | YES | |
| exclusive | tinyint(1) | NO | |
| code | varchar(255) | YES | Unique |
| use_codes | tinyint(1) | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| customer_restriction | tinyint(1) | NO | |
| prevent_combination | tinyint(1) | NO | |
| exclusion_ids | json | YES | |
| use_individual_codes | tinyint(1) | NO | |
| individual_code_pattern | varchar(255) | YES | Unique |
| use_setgroups | tinyint(1) | NO |
Rules that determine when a promotion's cart conditions are met.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| promotion_id | binary(16) | NO | Primary Key Foreign Key → promotion.id |
| rule_id | binary(16) | NO | Primary Key Foreign Key → rule.id |
Discount definitions within a promotion (percentage, absolute, fixed-unit, or free shipping).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| promotion_id | binary(16) | NO | Index Foreign Key → promotion.id |
| scope | varchar(32) | NO | |
| type | varchar(32) | NO | |
| value | double | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| consider_advanced_rules | tinyint(1) | NO | |
| max_value | float | YES | |
| sorter_key | varchar(255) | YES | |
| applier_key | varchar(255) | YES | |
| usage_key | varchar(255) | YES | |
| picker_key | varchar(255) | YES |
Currency-specific absolute discount values for promotions.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| discount_id | binary(16) | NO | Index Foreign Key → promotion_discount.id |
| currency_id | binary(16) | NO | Index Foreign Key → currency.id |
| price | float | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Additional rule conditions restricting which products a promotion discount applies to.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| discount_id | binary(16) | NO | Primary Key Foreign Key → promotion_discount.id |
| rule_id | binary(16) | NO | Primary Key Foreign Key → rule.id |
Individual single-use promotion codes (unique per customer or per use).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| promotion_id | binary(16) | NO | Index Foreign Key → promotion.id |
| code | varchar(255) | YES | Unique |
| payload | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Rules restricting which orders qualify for a promotion (e.g. min order value).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| promotion_id | binary(16) | NO | Primary Key Foreign Key → promotion.id |
| rule_id | binary(16) | NO | Primary Key Foreign Key → rule.id |
Directly assigns specific customers who are eligible for a promotion.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| promotion_id | binary(16) | NO | Primary Key Foreign Key → promotion.id |
| customer_id | binary(16) | NO | Primary Key Foreign Key → customer.id |
Rule-based customer targeting for promotions (e.g. specific customer groups).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| promotion_id | binary(16) | NO | Primary Key Foreign Key → promotion.id |
| rule_id | binary(16) | NO | Primary Key Foreign Key → rule.id |
Links promotions to the Sales Channels where they are active.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| promotion_id | binary(16) | NO | Index Foreign Key → promotion.id |
| sales_channel_id | binary(16) | NO | Index Foreign Key → sales_channel.id |
| priority | int | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Set group definitions for 'buy X get Y' style promotions (package/group discounts).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| promotion_id | binary(16) | NO | Index Foreign Key → promotion.id |
| packager_key | varchar(255) | NO | |
| sorter_key | varchar(255) | NO | |
| value | double | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Rules defining which products qualify for a promotion set group.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| setgroup_id | binary(16) | NO | Primary Key Foreign Key → promotion_setgroup.id |
| rule_id | binary(16) | NO | Primary Key Foreign Key → rule.id |
Translations for promotion names.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| name | varchar(255) | YES | |
| promotion_id | binary(16) | NO | Primary Key Foreign Key → promotion.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Property groups (e.g. 'Color', 'Size', 'Material') used for variants and filterable properties.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| sorting_type | varchar(50) | NO | |
| display_type | varchar(50) | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| filterable | tinyint(1) | NO | |
| visible_on_product_detail_page | tinyint(1) | YES |
Individual options within a property group (e.g. 'Red', 'Blue', 'XL') with optional color/media.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| property_group_id | binary(16) | NO | Index Foreign Key → property_group.id |
| color_hex_code | varchar(20) | YES | |
| media_id | binary(16) | YES | Index Foreign Key → media.id |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Translations for property option names and positions.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| property_group_option_id | binary(16) | NO | Primary Key Foreign Key → property_group_option.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| name | varchar(255) | YES | |
| position | int | NO | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Translations for property group names and display configuration.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| property_group_id | binary(16) | NO | Primary Key Foreign Key → property_group.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| name | varchar(255) | YES | |
| description | longtext | YES | |
| position | int | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
OAuth2 refresh tokens for Admin API user sessions.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| user_id | binary(16) | NO | |
| token_id | varchar(80) | NO | Unique |
| issued_at | datetime(3) | NO | |
| expires_at | datetime(3) | NO |
Rule Builder rules — reusable conditions used across promotions, shipping, payment, and flows.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| name | varchar(500) | NO | |
| description | longtext | YES | |
| priority | int | NO | |
| payload | longblob | YES | |
| invalid | tinyint(1) | NO | |
| areas | json | YES | |
| module_types | json | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Individual conditions within a rule (nested tree structure with AND/OR logic).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| type | varchar(255) | NO | |
| rule_id | binary(16) | NO | Index Foreign Key → rule.id |
| script_id | binary(16) | YES | Index Foreign Key → app_script_condition.id |
| parent_id | binary(16) | YES | Index Foreign Key → rule_condition.id |
| value | json | YES | |
| position | int | NO | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Sales Channel definitions — each represents a distinct storefront, API endpoint, or POS terminal.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| type_id | binary(16) | NO | Index Foreign Key → sales_channel_type.id |
| short_name | varchar(45) | YES | |
| configuration | json | YES | |
| access_key | varchar(255) | NO | Unique |
| language_id | binary(16) | NO | Index Foreign Key → language.id |
| currency_id | binary(16) | NO | Index Foreign Key → currency.id |
| payment_method_id | binary(16) | NO | Index Foreign Key → payment_method.id |
| shipping_method_id | binary(16) | NO | Index Foreign Key → shipping_method.id |
| country_id | binary(16) | NO | Index Foreign Key → country.id |
| navigation_category_id | binary(16) | NO | Index Foreign Key → category.id |
| navigation_category_version_id | binary(16) | NO | Foreign Key → category.version_id |
| navigation_category_depth | int | NO | |
| hreflang_active | tinyint unsigned | YES | |
| hreflang_default_domain_id | binary(16) | YES | Index Foreign Key → sales_channel_domain.id |
| footer_category_id | binary(16) | YES | Index Foreign Key → category.id |
| footer_category_version_id | binary(16) | YES | Foreign Key → category.version_id |
| service_category_id | binary(16) | YES | Index Foreign Key → category.id |
| service_category_version_id | binary(16) | YES | Foreign Key → category.version_id |
| active | tinyint(1) | NO | |
| maintenance | tinyint(1) | NO | |
| maintenance_ip_whitelist | json | YES | |
| customer_group_id | binary(16) | NO | Index Foreign Key → customer_group.id |
| mail_header_footer_id | binary(16) | YES | Index Foreign Key → mail_header_footer.id |
| payment_method_ids | json | YES | |
| analytics_id | binary(16) | YES | Index Foreign Key → sales_channel_analytics.id |
| tax_calculation_type | varchar(50) | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| home_cms_page_id | binary(16) | YES | Index Foreign Key → cms_page.id |
| home_cms_page_version_id | binary(16) | YES | Foreign Key → cms_page.version_id |
| measurement_units | json | YES |
Google Analytics / tracking configuration per Sales Channel.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| tracking_id | varchar(50) | NO | |
| active | tinyint(1) | NO | |
| track_orders | tinyint(1) | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| anonymize_ip | tinyint(1) | NO | |
| track_offcanvas_cart | tinyint(1) | NO |
Persisted API context/session data for headless Sales Channel API consumers.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| token | varchar(255) | NO | Primary Key |
| payload | json | NO | |
| sales_channel_id | binary(16) | YES | Index Foreign Key → sales_channel.id |
| customer_id | binary(16) | YES | Index Foreign Key → customer.id |
| updated_at | datetime | NO |
Junction table defining which countries are available in a Sales Channel.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| sales_channel_id | binary(16) | NO | Primary Key Foreign Key → sales_channel.id |
| country_id | binary(16) | NO | Primary Key Foreign Key → country.id |
Junction table defining which currencies are available in a Sales Channel.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| sales_channel_id | binary(16) | NO | Primary Key Foreign Key → sales_channel.id |
| currency_id | binary(16) | NO | Primary Key Foreign Key → currency.id |
Storefront domains (URLs) assigned to a Sales Channel, each with language and currency.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| sales_channel_id | binary(16) | NO | Index Foreign Key → sales_channel.id |
| language_id | binary(16) | NO | Index Foreign Key → language.id |
| url | varchar(255) | NO | Unique |
| currency_id | binary(16) | NO | Index Foreign Key → currency.id |
| snippet_set_id | binary(16) | NO | Index Foreign Key → snippet_set.id |
| hreflang_use_only_locale | tinyint unsigned | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| measurement_units | json | YES |
Junction table defining which languages are available in a Sales Channel.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| sales_channel_id | binary(16) | NO | Primary Key Foreign Key → sales_channel.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
Junction table defining which payment methods are available in a Sales Channel.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| sales_channel_id | binary(16) | NO | Primary Key Foreign Key → sales_channel.id |
| payment_method_id | binary(16) | NO | Primary Key Foreign Key → payment_method.id |
Junction table defining which shipping methods are available in a Sales Channel.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| sales_channel_id | binary(16) | NO | Primary Key Foreign Key → sales_channel.id |
| shipping_method_id | binary(16) | NO | Primary Key Foreign Key → shipping_method.id |
Translations for Sales Channel names, home page metadata, and configuration.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| sales_channel_id | binary(16) | NO | Primary Key Foreign Key → sales_channel.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| name | varchar(255) | YES | |
| home_keywords | varchar(255) | YES | |
| home_meta_description | varchar(255) | YES | |
| home_meta_title | varchar(255) | YES | |
| home_name | varchar(255) | YES | |
| home_enabled | tinyint | NO | |
| home_slot_config | json | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Sales Channel types (Storefront, Headless, Product Comparison, etc.).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| cover_url | varchar(500) | YES | |
| icon_name | varchar(255) | YES | |
| screenshot_urls | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Translations for Sales Channel type names and descriptions.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| sales_channel_type_id | binary(16) | NO | Primary Key Foreign Key → sales_channel_type.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| name | varchar(255) | YES | |
| manufacturer | varchar(255) | YES | |
| description | varchar(255) | YES | |
| description_long | longtext | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Salutation options (Mr., Mrs., Mx., etc.) used in customer and address forms.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| salutation_key | varchar(255) | NO | Unique |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Translations for salutation display names and letter salutation patterns.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| salutation_id | binary(16) | NO | Primary Key Foreign Key → salutation.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| display_name | varchar(255) | YES | |
| letter_name | varchar(255) | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Registry of periodic background tasks (e.g. cache cleanup, sitemap generation) with their schedules.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| name | varchar(255) | NO | |
| scheduled_task_class | varchar(512) | NO | Unique |
| run_interval | int | NO | |
| status | varchar(255) | NO | |
| last_execution_time | datetime(3) | YES | |
| next_execution_time | datetime(3) | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| default_run_interval | int | NO |
App scripts (Twig-based) registered for hook execution points (e.g. cart manipulation, custom endpoints).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| script | longtext | NO | |
| hook | varchar(255) | NO | Index |
| name | varchar(1024) | NO | |
| active | tinyint(1) | NO | |
| app_id | binary(16) | YES | Index Foreign Key → app.id |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Generated SEO-friendly URLs for products, categories, and landing pages per Sales Channel and language.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| language_id | binary(16) | NO | Index Foreign Key → language.id |
| sales_channel_id | binary(16) | YES | Index Foreign Key → sales_channel.id |
| foreign_key | binary(16) | NO | Index |
| route_name | varchar(50) | NO | |
| path_info | varchar(750) | NO | |
| seo_path_info | varchar(750) | NO | |
| is_canonical | tinyint(1) | YES | |
| is_modified | tinyint(1) | NO | |
| is_deleted | tinyint(1) | NO | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Configurable URL templates (Twig syntax) used to generate SEO URLs for each entity type.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| sales_channel_id | binary(16) | YES | Index Foreign Key → sales_channel.id |
| route_name | varchar(255) | NO | |
| entity_name | varchar(64) | NO | |
| template | varchar(750) | YES | |
| is_valid | tinyint(1) | NO | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Available shipping methods with delivery time, pricing type, and tax configuration.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| active | tinyint unsigned | NO | |
| position | int | NO | |
| availability_rule_id | binary(16) | YES | Index Foreign Key → rule.id |
| media_id | binary(16) | YES | Index Foreign Key → media.id |
| delivery_time_id | binary(16) | NO | Index Foreign Key → delivery_time.id |
| tax_type | varchar(50) | YES | |
| tax_id | binary(16) | YES | Index Foreign Key → tax.id |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| technical_name | varchar(255) | NO | Unique |
Price rules for shipping methods — quantity/price/weight-based graduated shipping costs.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| shipping_method_id | binary(16) | NO | Index Foreign Key → shipping_method.id |
| calculation | int unsigned | YES | |
| rule_id | binary(16) | YES | Index Foreign Key → rule.id |
| calculation_rule_id | binary(16) | YES | Index Foreign Key → rule.id |
| currency_price | json | YES | |
| quantity_start | double | YES | |
| quantity_end | double | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Junction table linking shipping methods to tags.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| shipping_method_id | binary(16) | NO | Primary Key Foreign Key → shipping_method.id |
| tag_id | binary(16) | NO | Primary Key Foreign Key → tag.id |
Translations for shipping method names, descriptions, and tracking URLs.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| shipping_method_id | binary(16) | NO | Primary Key Foreign Key → shipping_method.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| name | varchar(255) | YES | |
| description | mediumtext | YES | |
| tracking_url | mediumtext | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Storefront and email text snippets (translations) — key-value pairs per snippet set.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| translation_key | varchar(255) | NO | |
| value | longtext | NO | |
| author | varchar(255) | NO | |
| snippet_set_id | binary(16) | NO | Index Foreign Key → snippet_set.id |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Named sets of translation snippets (e.g. 'English (US)', 'Deutsch (formal)') linked to locales.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| name | varchar(255) | NO | |
| base_file | varchar(255) | NO | |
| iso | varchar(255) | NO | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
State machine definitions (order, payment, delivery) that govern status transitions.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| technical_name | varchar(255) | NO | Unique |
| initial_state_id | binary(16) | YES | Index Foreign Key → state_machine_state.id |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Audit log of all state transitions (who changed what state, when, and via which entity).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| state_machine_id | binary(16) | NO | Index Foreign Key → state_machine.id |
| entity_name | varchar(100) | NO | |
| from_state_id | binary(16) | NO | Index Foreign Key → state_machine_state.id |
| to_state_id | binary(16) | NO | Index Foreign Key → state_machine_state.id |
| action_name | varchar(255) | NO | |
| user_id | binary(16) | YES | Index Foreign Key → user.id |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| referenced_id | binary(16) | NO | Index |
| referenced_version_id | binary(16) | NO | |
| integration_id | binary(16) | YES | Index Foreign Key → integration.id |
| internal_comment | text | YES |
Individual states within a state machine (e.g. 'open', 'paid', 'shipped', 'cancelled').
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| technical_name | varchar(255) | NO | Index |
| state_machine_id | binary(16) | NO | Index Foreign Key → state_machine.id |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Translations for state machine state display names.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| state_machine_state_id | binary(16) | NO | Primary Key Foreign Key → state_machine_state.id |
| name | varchar(255) | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Allowed transitions between states in a state machine (from → to with action name).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| action_name | varchar(255) | NO | Index |
| state_machine_id | binary(16) | NO | Index Foreign Key → state_machine.id |
| from_state_id | binary(16) | NO | Index Foreign Key → state_machine_state.id |
| to_state_id | binary(16) | NO | Index Foreign Key → state_machine_state.id |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Translations for state machine names.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| state_machine_id | binary(16) | NO | Primary Key Foreign Key → state_machine.id |
| name | varchar(255) | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Key-value system configuration storage (core settings, plugin config, Sales-Channel-specific overrides).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| configuration_key | varchar(255) | NO | Index |
| configuration_value | json | NO | |
| sales_channel_id | binary(16) | YES | Index Foreign Key → sales_channel.id |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Reusable tags that can be assigned to products, orders, customers, categories, and other entities.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| name | varchar(255) | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Tax rate definitions (e.g. 19% standard, 7% reduced) assigned to products.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| tax_rate | decimal(10,3) | YES | Index |
| name | varchar(255) | NO | |
| position | int | NO | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
External tax calculation providers (apps/plugins that compute tax via API, e.g. Avalara).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| active | tinyint unsigned | NO | |
| priority | int | NO | |
| identifier | varchar(255) | NO | Unique |
| availability_rule_id | binary(16) | YES | Index Foreign Key → rule.id |
| app_id | binary(16) | YES | Index Foreign Key → app.id |
| process_url | varchar(255) | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Translations for tax provider display names.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| tax_provider_id | binary(16) | NO | Primary Key Foreign Key → tax_provider.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| name | varchar(255) | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Country/region-specific tax rate overrides (e.g. different VAT rates for EU countries).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| tax_id | binary(16) | NO | Index Foreign Key → tax.id |
| tax_rule_type_id | binary(16) | NO | Index Foreign Key → tax_rule_type.id |
| country_id | binary(16) | NO | Index Foreign Key → country.id |
| tax_rate | double(10,3) | YES | |
| data | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| active_from | datetime(3) | YES |
Types of tax rules (e.g. 'entire country', 'zip code range', 'individual states').
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| technical_name | varchar(255) | NO | Unique |
| position | int | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Translations for tax rule type names.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| tax_rule_type_id | binary(16) | NO | Primary Key Foreign Key → tax_rule_type.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| type_name | varchar(255) | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Storefront themes with configuration (colors, fonts, layout settings) and parent theme inheritance.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| technical_name | varchar(255) | YES | Unique |
| name | varchar(255) | NO | |
| author | varchar(255) | NO | |
| preview_media_id | binary(16) | YES | Index Foreign Key → media.id |
| parent_theme_id | binary(16) | YES | |
| base_config | json | YES | |
| config_values | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| active | tinyint(1) | YES | |
| theme_json | json | YES |
Compiled/resolved theme configuration values used at runtime (cached theme settings).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| theme_id | binary(16) | NO | Primary Key |
| technical_name | varchar(255) | YES | Unique |
| resolved_config | json | NO | |
| view_inheritance | json | NO | |
| script_files | json | YES | |
| icon_sets | json | NO | |
| updated_at | datetime(3) | NO |
Links themes to Sales Channels — defines which theme is active on which storefront.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| theme_id | binary(16) | NO | Index Foreign Key → theme.id |
| sales_channel_id | binary(16) | NO | Primary Key Foreign Key → sales_channel.id |
Translations for theme labels and descriptions.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| theme_id | binary(16) | NO | Primary Key Foreign Key → theme.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| description | mediumtext | YES | |
| labels | json | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| help_texts | json | YES |
Measurement units (e.g. liter, kilogram, piece) used for product purchase/reference units.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Translations for unit short codes and names.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| unit_id | binary(16) | NO | Primary Key Foreign Key → unit.id |
| language_id | binary(16) | NO | Primary Key Foreign Key → language.id |
| short_code | varchar(255) | YES | |
| name | varchar(255) | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Tracks entity deletions for Shopware's anonymous usage data reporting (telemetry).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| entity_ids | json | NO | |
| entity_name | varchar(255) | NO | |
| deleted_at | datetime(3) | NO |
Administration user accounts — login credentials, locale preference, and admin flag.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| username | varchar(255) | NO | Unique |
| password | varchar(255) | NO | |
| first_name | varchar(255) | NO | |
| last_name | varchar(255) | NO | |
| title | varchar(255) | YES | |
| varchar(255) | NO | Unique | |
| active | tinyint(1) | NO | |
| admin | tinyint(1) | YES | |
| avatar_id | binary(16) | YES | Index Foreign Key → media.id |
| locale_id | binary(16) | NO | Index Foreign Key → locale.id |
| store_token | varchar(255) | YES | |
| last_updated_password_at | datetime(3) | YES | |
| time_zone | varchar(255) | NO | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
API access key pairs (key + secret) for admin users accessing the Admin API.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| user_id | binary(16) | NO | Index Foreign Key → user.id |
| access_key | varchar(255) | NO | Index |
| secret_access_key | varchar(255) | NO | |
| last_usage_at | datetime(3) | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Per-user Administration UI preferences (grid column widths, last-visited pages, favorites).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| user_id | binary(16) | NO | Index Foreign Key → user.id |
| key | varchar(255) | NO | |
| value | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Password recovery tokens for admin user accounts.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| user_id | binary(16) | NO | Unique Foreign Key → user.id |
| hash | varchar(255) | NO | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Versioning entity — each entry represents a draft version for the versioned DAL (e.g. order editing).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| name | varchar(255) | NO | |
| created_at | datetime(3) | NO | Index |
| updated_at | datetime(3) | YES |
A single commit (save point) within a version — groups related entity changes together.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| auto_increment | bigint | NO | Unique |
| is_merge | tinyint(1) | NO | |
| message | varchar(5000) | YES | |
| user_id | binary(16) | YES | |
| integration_id | binary(16) | YES | |
| version_id | binary(16) | NO | |
| created_at | datetime(3) | NO | Index |
| updated_at | datetime(3) | YES |
Individual entity field changes within a version commit (the actual diff data).
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| auto_increment | bigint | NO | Unique |
| version_commit_id | binary(16) | NO | Index Foreign Key → version_commit.id |
| entity_name | varchar(100) | NO | |
| entity_id | json | NO | |
| action | varchar(100) | NO | |
| payload | json | NO | |
| user_id | binary(16) | YES | |
| integration_id | binary(16) | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES |
Registered webhooks (URLs) that receive HTTP callbacks when specified business events occur.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| name | varchar(255) | NO | Index |
| event_name | varchar(500) | NO | |
| url | varchar(500) | NO | |
| app_id | binary(16) | YES | Index Foreign Key → app.id |
| active | tinyint(1) | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| error_count | int | NO | |
| only_live_version | tinyint unsigned | NO |
Log of webhook dispatch attempts with status, response code, and payload info.
| Column | Type | Nullable | Additional |
|---|---|---|---|
| id | binary(16) | NO | Primary Key |
| app_name | varchar(255) | YES | |
| webhook_name | text | NO | |
| event_name | varchar(255) | NO | |
| delivery_status | varchar(255) | NO | |
| timestamp | int | YES | |
| processing_time | int | YES | |
| app_version | varchar(255) | YES | |
| request_content | json | YES | |
| response_content | json | YES | |
| response_status_code | int | YES | |
| response_reason_phrase | varchar(255) | YES | |
| url | varchar(500) | NO | |
| serialized_webhook_message | longblob | YES | |
| custom_fields | json | YES | |
| created_at | datetime(3) | NO | |
| updated_at | datetime(3) | YES | |
| only_live_version | tinyint unsigned | NO |
