Skip to content

Product Data Model

The master product table stores multi-language, multi-supplier product data:

ColumnTypeExample
idserialAuto-increment primary key
skuvarchar376-00 (base SKU)
variant_codevarchar376-00.001 (full variant)
supplier_codevarchar01, 04, 05
articlenumbervarcharSupplier article number
ColumnLanguage
name / name_nl / name_de / name_enProduct name
description / description_nl / description_de / description_enDescription
variant_name_nl / variant_name_de / variant_name_enVariant name
model_name_nl / model_name_de / model_name_enModel name
material / material_nl / material_de / material_enMaterial
color / color_nl / color_de / color_enColor
packaging_nl / packaging_de / packaging_enPackaging
size_nl / size_de / size_enSize
ColumnTypeDescription
dimensionsvarcharFormatted dimensions string
lengthdecimalLength (mm/cm)
widthdecimalWidth
heightdecimalHeight
diameterdecimalDiameter
weightdecimalWeight (grams)
colli_weightdecimalColli/package weight
ColumnDescription
eanEAN barcode
customs_tariffHS code
country_of_originISO country code
taxTax rate
packaging_unitPackaging unit quantity
min_order_quantityMinimum order quantity
delivery_timeDelivery time info
ColumnDescription
brandProduct brand
modelModel identifier
categoryPrimary category
category_idCategory ID reference
subcategorySub-category
master_category_codeMaster category code
original_categoryOriginal supplier category
Retail PriceBuying PriceQuantity
retail_price_100buying_price_100100 units
retail_price_200buying_price_200200 units
retail_price_300buying_price_300300 units
retail_price_500buying_price_500500 units
retail_price_1000buying_price_10001000 units
ColumnDescription
price_fromStarting price
ColumnDescription
image_1 through image_5Image URLs/paths
image_urlPrimary image URL
model_imageModel/lifestyle image
media_galleryAdditional media gallery data
svg_pathSVG file path prefix
show_all_positionsShow all print positions in images
ColumnDescription
techniquesAvailable print techniques
print_option_groupPrint option group
must_have_imprintRequires imprint/decoration
maxcolorsMaximum print colors
ColumnDescription
color_idColor identifier for filtering
search_colorNormalized search color
filter_codesFilter code values
popularityPopularity score
is_eco_friendlyEco-friendly flag
meta_keywordMeta keywords for search
ColumnDescription
created_atRecord creation timestamp
updated_atLast update timestamp

Product decoration/print techniques:

ColumnDescription
idPrimary key
product_skuFK to aplt_products
product_sizeProduct size variant
technique_namee.g., “Borduren”, “Zeefdruk”
technique_codeTechnique identifier code
position / position_nl / position_de / position_enPosition description (multi-language)
max_colorsMaximum print colors
print_areaPrint area description
print_area_shapeShape of print area
print_area_groupPrint area group identifier
print_base_colorBase color of the print area
is_activeWhether technique is active
ColumnDescription
x_position_1 through x_position_5X coordinates per area
y_position_1 through y_position_5Y coordinates per area
position_countNumber of print positions
position_1_width / position_1_heightArea 1 dimensions
centroid_x_1 / centroid_y_1Area 1 centroid
position_2_width / position_2_heightArea 2 dimensions
centroid_x_2 / centroid_y_2Area 2 centroid
position_3_width / position_3_heightArea 3 dimensions
centroid_x_3 / centroid_y_3Area 3 centroid
position_4_width / position_4_heightArea 4 dimensions
position_5_width / position_5_heightArea 5 dimensions
coordinate_unitUnit of measurement for coordinates
rotationRotation angle
ColumnDescription
setup_costOne-time setup cost
cost_per_colorCost per additional color
cost_per_thousandCost per thousand units
notesAdditional notes
ColumnDescription
created_atRecord creation timestamp

Critical: The sku, variant_code, and model fields have specific meanings:

FieldMeaningExamples
skuBase product / model code376-00 (Spranz), P436 (XD), 029030 (NewWave)
variant_codeUnique variant identifier (color/size combo)376-00.001, P436.055, 029030-00-3
modelProduct grouping key for Medusa syncSame as sku for most, or supplier-specific model code

variant_code is the primary identifier per variant row in aplt_products. The upsertProduct() function uses variant_code + supplier_code as unique key.

Common Bug: If sku contains a variant suffix (e.g., 1701-00.001), the designer creates double suffixes (1701-00.001.001.svg). Fix: correct the database to sku = '1701-00', variant_code = '1701-00.001'.

  • Variant SVG: {variant_code}.svg (e.g., 376-00.001.svg)
  • Base SVG: {sku}.svg (e.g., 376-00.svg)
  • Path: /svg/spranz/{variant_code}.svg
  • Designer lookup order: variant-specific first, then base SKU fallback