***************************************************** ***************************************************** ***************************************************** ***************************************************** ***************************************************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** This Confluence article was automatically generated from Asciidoc. Any changes you make to this document will be overridden! If you want to change the content, consider leaving a comment. You can edit the content directly here: https://gitlab.pricefx.eu/training/pricefx-knowledge-base/-/tree/dev/public/content/docs/concepts/persisted-data/extension-tables ***************************************************** ***************************************************** ***************************************************** ***************************************************** ***************************************************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING **********************

Extension tables is one of the two types of master data tables that you can create yourself. There are two types of extensions: product extensions and customer extensions. The name extension comes from the fact that these tables are used to add information to product and customer master data. Product extensions have a foreign key field sku that relates each row to a product; while the customer extension have a field customerId that relates each row to a customer.

extension one to many.drawio

Extension tables share tables in the relational database, and are differentiated by the name column. The name column specifies which extension table the row belongs to. For example:

name sku

ProductCost

sku-00043

ProductPackaging

sku-00012

ProductPackaging

sku-00123

ProductCost

sku-00233

The frontend application displays the rows of different extensions on different pages — creating the impression that they are in fact different tables. In the example above, sku-00043 and sku-00233 are displayed on the ProductCost page; while the other two rows appear on the ProductPackaging page.

Since the extensions are stored on the same table in the relational database, you need to consider this when you build your queries. In the example above, if you only want to include rows from the ProductCost table among the results, you need to include a filter for the name column in your query.

To learn how to query product extensions, see the quick reference https://pricefx.atlassian.net/wiki/spaces/KB/pages/3824091263.
The REST API and the Logic API also contain convenience endpoints/methods for querying and updating extensions by the extension name.