Data export to S3 - database structure reference

Edit on GitHub

When requesting a data export to S3, you need to specify which database tables to include.

If you know exactly which tables contain the data you need, you can request an export for just those specific tables. However, if you’re unsure where certain data lives or need a complete picture of a business domain, this guide helps you identify all the relevant tables.

How Spryker stores data

Spryker stores business data across multiple relational tables that together form logical domain aggregates. For example, an order is not stored in a single table but spread across tables for addresses, items, payments, shipments, and more.

This guide organizes tables by business domain to help you:

  • Discover which tables are related to a specific domain.
  • Ensure you don’t miss important data when exporting a complete domain.
  • Identify project-specific tables that extend standard Spryker tables.

The tables are grouped into two categories:

Standard tables by domain

The following sections list the standard Spryker tables for common business domains. You can reference these lists or use them as a baseline when requesting an export.

Order

Tables containing order data, including items, addresses, payments, shipments, returns, and reclamations.

View Order tables
Table
spy_sales_order
spy_sales_order_item
spy_sales_order_address
spy_sales_order_address_history
spy_sales_order_comment
spy_sales_order_configured_bundle
spy_sales_order_configured_bundle_item
spy_sales_order_invoice
spy_sales_order_item_bundle
spy_sales_order_item_configuration
spy_sales_order_item_metadata
spy_sales_order_item_option
spy_sales_order_note
spy_sales_order_threshold
spy_sales_order_threshold_tax_set
spy_sales_order_threshold_type
spy_sales_order_totals
spy_sales_discount
spy_sales_discount_code
spy_sales_expense
spy_sales_merchant_commission
spy_sales_payment
spy_sales_payment_detail
spy_sales_payment_merchant_payout
spy_sales_payment_merchant_payout_reversal
spy_sales_payment_method_type
spy_sales_reclamation
spy_sales_reclamation_item
spy_sales_return
spy_sales_return_item
spy_sales_return_reason
spy_sales_shipment
spy_sales_shipment_type
spy_refund
spy_merchant_relationship_sales_order_threshold
spy_merchant_sales_order
spy_merchant_sales_order_item
spy_merchant_sales_order_totals
spy_ssp_inquiry_sales_order
spy_ssp_inquiry_sales_order_item

Order Management System (OMS)

Tables containing order state machine data, including states, transitions, timeouts, and reservations.

View OMS tables
Table
spy_oms_event_timeout
spy_oms_order_item_state
spy_oms_order_item_state_history
spy_oms_order_process
spy_oms_product_offer_reservation
spy_oms_product_reservation
spy_oms_product_reservation_change_version
spy_oms_product_reservation_last_exported_version
spy_oms_product_reservation_store
spy_oms_state_machine_lock

Product

Tables containing product data, including abstract and concrete products, attributes, images, labels, options, bundles, and relations.

View Product tables
Table
spy_product
spy_product_abstract
spy_product_abstract_group
spy_product_abstract_localized_attributes
spy_product_abstract_product_option_group
spy_product_abstract_set
spy_product_abstract_store
spy_product_alternative
spy_product_attribute_key
spy_product_bundle
spy_product_category
spy_product_category_filter
spy_product_configuration
spy_product_customer_permission
spy_product_discontinued
spy_product_discontinued_note
spy_product_group
spy_product_image
spy_product_image_set
spy_product_image_set_to_product_image
spy_product_label
spy_product_label_localized_attributes
spy_product_label_product_abstract
spy_product_label_store
spy_product_list
spy_product_list_category
spy_product_list_product_concrete
spy_product_localized_attributes
spy_product_management_attribute
spy_product_management_attribute_value
spy_product_management_attribute_value_translation
spy_product_measurement_base_unit
spy_product_measurement_sales_unit
spy_product_measurement_sales_unit_store
spy_product_measurement_unit
spy_product_offer
spy_product_offer_store
spy_product_offer_validity
spy_product_option_group
spy_product_option_value
spy_product_option_value_price
spy_product_packaging_unit
spy_product_packaging_unit_type
spy_product_quantity
spy_product_relation
spy_product_relation_product_abstract
spy_product_relation_store
spy_product_relation_type
spy_product_review
spy_product_search
spy_product_search_attribute
spy_product_search_attribute_archive
spy_product_search_attribute_map
spy_product_search_attribute_map_archive
spy_product_set
spy_product_set_data
spy_product_validity
spy_configurable_bundle_template
spy_configurable_bundle_template_slot
spy_price_product
spy_price_product_default
spy_price_product_merchant_relationship
spy_price_product_offer
spy_price_product_schedule
spy_price_product_schedule_list
spy_price_product_store
spy_price_type
spy_tax_set
spy_tax_rate
spy_tax_set_tax
spy_url
spy_currency
spy_currency_store
spy_store
spy_store_context
spy_locale
spy_locale_store

Customer

Tables containing customer data, including addresses, groups, notes, and company associations.

Info

For security reasons spy_customer table will be automatically excluded from exports to prevent security breaches.

View Customer tables
Table
spy_customer_address
spy_customer_data_change_request
spy_customer_group
spy_customer_group_to_customer
spy_customer_note
spy_product_customer_permission
spy_company_user
spy_company
spy_company_business_unit
spy_company_role_to_company_user
spy_company_user_file
spy_company_user_invitation
spy_company_user_invitation_status
spy_company_role
spy_company_store
spy_company_unit_address
spy_company_business_unit_file
spy_company_unit_address_to_company_business_unit
spy_company_file
spy_company_role_to_permission
spy_company_unit_address_label
spy_company_unit_address_label_to_company_unit_address
spy_permission
spy_locale

Merchant

Tables containing merchant data, including profiles, commissions, opening hours, and product associations.

View Merchant tables
Table
spy_merchant
spy_merchant_app_onboarding
spy_merchant_app_onboarding_status
spy_merchant_category
spy_merchant_commission
spy_merchant_commission_amount
spy_merchant_commission_group
spy_merchant_commission_merchant
spy_merchant_commission_store
spy_merchant_opening_hours_date_schedule
spy_merchant_opening_hours_weekday_schedule
spy_merchant_product_abstract
spy_merchant_product_option_group
spy_merchant_profile
spy_merchant_profile_address
spy_merchant_sales_order
spy_merchant_sales_order_item
spy_merchant_sales_order_totals
spy_merchant_stock
spy_merchant_store
spy_sales_merchant_commission
spy_sales_payment_merchant_payout
spy_sales_payment_merchant_payout_reversal
spy_date_schedule
spy_weekday_schedule
spy_store
spy_product_offer
spy_product_offer_stock
spy_product_offer_store
spy_product_offer_validity
spy_product_offer_service
spy_product_offer_shipment_type
spy_price_product_offer
spy_currency
spy_price_product
spy_price_product_default
spy_price_type

Price

Tables containing pricing data, including product prices, scheduled prices, and merchant-specific pricing.

View Price tables
Table
spy_price_product
spy_price_product_default
spy_price_product_offer
spy_price_product_schedule
spy_price_product_schedule_list
spy_price_product_store
spy_price_type
spy_price_product_merchant_relationship
spy_product_option_value_price
spy_shipment_method_price
spy_currency
spy_product
spy_product_abstract
spy_product_option_value
spy_shipment_method
spy_store
spy_merchant_relationship

Stock

Tables containing inventory and availability data.

View Stock tables
Table
spy_availability
spy_availability_abstract
spy_stock
spy_stock_address
spy_stock_product
spy_stock_store
spy_store
spy_product_offer_stock

Category

Tables containing category hierarchy, attributes, and images.

View Category tables
Table
spy_category
spy_category_attribute
spy_category_closure_table
spy_category_image
spy_category_image_set
spy_category_image_set_to_category_image
spy_category_node
spy_category_store
spy_category_template
spy_merchant_category
spy_product_category
spy_store

Identify project-specific tables

Your project may include custom tables that extend the standard Spryker domains. To ensure complete exports, identify these tables and include them alongside the standard tables.

Run the following SQL query against your database to find tables related to a specific domain. Replace the table names in the IN clause with the base tables of your target domain.

Example for Order domain:

(
    -- Tables that reference order tables
    SELECT DISTINCT kcu.TABLE_NAME AS table_name
    FROM information_schema.KEY_COLUMN_USAGE kcu
    WHERE kcu.REFERENCED_TABLE_SCHEMA = DATABASE()
      AND kcu.REFERENCED_TABLE_NAME IN ('spy_sales_order', 'spy_sales_order_item')
)
UNION
(
    -- Tables referenced by order tables
    SELECT DISTINCT kcu.REFERENCED_TABLE_NAME AS table_name
    FROM information_schema.KEY_COLUMN_USAGE kcu
    WHERE kcu.TABLE_SCHEMA = DATABASE()
      AND kcu.TABLE_NAME IN ('spy_sales_order', 'spy_sales_order_item')
      AND kcu.REFERENCED_TABLE_NAME IS NOT NULL
)
ORDER BY table_name;

Compare the query results with the standard tables list. Any tables not in the standard list are project-specific and should be included in your export request.

This query also detects optional Spryker features that may be installed in your project but not listed in the standard tables, such as ECO module tables.

Next steps

Once you have identified all required tables for your domain, request an export setup by submitting a support ticket with your table list.