Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

NOTE: Data Model is still in development stage and might change on upcoming days

GridProduct

...

NOTE: Data Model is still in development stage and might have breaking changes on upcoming days

IMPORTANT NOTES:

  • 10/25/2021: ProductType field is updated as Array<string> whose values are based on data managed with the new ProductTypes endpoints.

  • 10/22/2021: Moved other barcode related fields to variant level

  • 10/20/2021: ProductType field schema will be updated in upcoming days to have a separate DB for product categories

GridProduct

Code Block
interface GridProduct {
  ProductId: string;
    IsoLanguageIdTenant: string;
    StorageInstructionsCustomers?: string[];
  }>;// Main default ShellLifeDays?:details
number;   ConsumerStorageInstructionProductShortDescription?: Array<{
    CountryId: string;
    IsoLanguageId: stringIsoLanguageIds;
    ConsumerStorageInstructionProductShortDescription: string;
  }>;
  ProductShippingInstructionProductInternalName?: Array<{
    CountryId: string;
    IsoLanguageId: stringIsoLanguageIds;
    ProductShippingInstructionProductInternalName: string;
  }>;
  GlobalTradeItemNumberIntroductionDate?: string; // Start  GtinName?: string;
  EuropeanArticleNumber?: string;
  UniversalProductCodeDate (optional) - main date added on RelatedProduct(Variant)
  PlannedAbandonmentDate?: string;

  // ArrayEnd ofDate translation(optional) -  ProductNamemain date added on RelatedProduct(Variant)
  StorageInstructions?: Array<{
    CountryId: string;
    IsoLanguageId: stringIsoLanguageIds;
    ProductNameStorageInstructions: string;
  }>;
   // Array of translation
  ProductDescriptionShellLifeDays?: number;
  ConsumerStorageInstruction?: Array<{
    CountryId: string;
    IsoLanguageId: stringIsoLanguageIds;
    ProductDescriptionConsumerStorageInstruction: string;
  }>;
   // Variants
  VariantsProductShippingInstruction?: Array<{
    IdCountryId: string;
// Item variant Id IsoLanguageId: IsoLanguageIds;
    ProductIdProductShippingInstruction: string;
// Parent product Id }>;
  
  // ItemArray variantof nametranslation
(optional)
    ProductName?: Array<{
 
    CountryId: string;
 
    IsoLanguageId: stringIsoLanguageIds;
 
    ProductName: string;

   }>;

  // Array of translation
  PeriodStartDateProductDescription: string;Array<{
    PeriodEndDateCountryId: string;
     // Added custom field for variants
    Color?IsoLanguageId: IsoLanguageIds;
    ProductDescription: string;
    Style?: string}>;

   Size?: string;// Variants
  }>;

  Brand?Variants: Array<{
    CountryIdId: string; // Item variant Id
IsoLanguageId: string;     BrandNameProductId: string; // Parent product Id
    BrandDescriptionGlobalTradeItemNumber?: string;
    BrandMarkGtinName?: string;
    BrandTrademarkEuropeanArticleNumber?: string;
    BrandLogoUniversalProductCode?: string;


}>;    // ArrayItem ofvariant translation
  ProductStatus: Array<{name (optional)
     ProductStatus: ProductStatusEnum; // Ex. Active OR InactiveProductName?: Array<{
      CountryId: string;
      IsoLanguageId: stringIsoLanguageIds;
     StoreId? ProductName: string;
    PeriodStartDate?: string;}>;

    PeriodEndDatePeriodStartDate?: string;
    ProductStatusNotePeriodEndDate?: string;

 }>;    // EquivalentAdded tocustom productDetails in GPF used field for filtersvariants
and data display   ProductFeatureColor?: Array<{string;
    IdStyle?: string; // SKU
or variant Id     ProductFeatureTypeSize?: string;
// Key of}>;

 productDetails in GPFBrand?: Array<{
    CountryId: string;
    IsoLanguageId: stringIsoLanguageIds;
    ProductFeatureValueBrandName: string;
    }>BrandDescription?: string;
   // Product Price based on type
  ProductPriceList: Array<{BrandMark?: string;
    BrandTrademark?: string;
    IdBrandLogo?: string;
// SKU or}>;
variant
Id  // Array of PriceListType:translation
PriceListTypeEnum; // 'Standard' OR 'Promotional' ProductStatus: Array<{
    StoreId?ProductStatus: stringProductStatusEnum; // Ex. Active OR CountryId:Inactive
string;     IsoLanguageIdCountryId: string;
    IsoCurrencyCodeIsoLanguageId: stringIsoLanguageIds;
    PricingUomIdStoreId?: string;
    PeriodStartTimestampPeriodStartDate?: string;
    PeriodEndTimestampPeriodEndDate?: string;
    SuggestedRetailPriceProductStatusNote?: numberstring;
  }>;

ListPrice: number; //  }>;

  // Images and links
  CatalogPageLocationProductEquivalent to productDetails in GPF used for filters and data display
  ProductFeature?: Array<{
    Id: string; // SKU or variant Id
    ProductIdProductFeatureType: string; // Parent Id Key of productDetails in GPF
    Catalog?CountryId: string;
  // Ex. Client name?IsoLanguageId: IsoLanguageIds;
    CatalogPage?ProductFeatureValue: string;
// Ex. Root URL of kmart
    CatalogPageLocation?: string;  }>;

  // Ex.Product ProductPrice URLbased appendedon totype
root URL ofProductPriceList: KmartArray<{
    CatalogPageLocationProductId: string; // SKU Entireor URLvariant valueId
  }>;  PriceListType: PriceListTypeEnum; // Product'Standard' categories (Converted semi-colon separated into array)OR 'Promotional'
    ProductTypeStoreId?: Array<ProductTypeInterface>string;
    // Product TagsCountryId: string;
    ProductLabel?IsoLanguageId: Array<{IsoLanguageIds;
    CountryIdIsoCurrencyCode: string;
    IsoLanguageIdPricingUomId?: string;
    ProductLabelPeriodStartTimestamp?: string;
// Ex. [Online Exclusive] PeriodEndTimestamp?: string;
    SuggestedRetailPrice?: number;
    ListPrice: number;
  }>;

  // Images Productand Promotionlinks
  ProductPromotion?CatalogPageLocationProduct: Array<{
    PromotionIdId: string; // Referenced from Promotions IndexSKU or externalvariant dataId
    PeriodStartTimestampProductId: string; // Parent Id
  PeriodEndTimestamp  CatalogType: string; //  };

  // Product QuantityEx. "image/png", "video/mp4"
    ProductItemQuantity?: Array<{
    IdCatalogPage?: string; // SKU or variant Id Ex. Root URL of client media site
    StoreIdCatalogPageLocation?: string; // Ex. Product URL ProductItemQuantityStartDate: string;appended to root URL of client page
    ProductItemQuantityEndDateCatalogPageLocationProduct: string; // Entire URL value
ProductItemQuantity: number;
  }>;

  ProductVendor?: Array<{
    VendorId: string;
    ProductVendor: string// Product categories (value is based from ProductType model's "productTypeId")
  ProductType: Array<string>;

   PeriodStartDate: string;// Product Tags
  ProductLabel?: Array<{
    PeriodEndDateCountryId: string;
  }>; } 

...

Code Block
enum PriceListTypeEnum {IsoLanguageId: IsoLanguageIds;
    StandardProductLabel: = 'Standard',
  Promotional = 'Promotional',
}

enum ProductStatusEnum {
  Active = 'Active',
  Inactive = 'Inactive',
  Discontinued = 'Discontinued',
  Dormant = 'Dormant',
  Frozen = 'Frozen',
  Replaced = 'Replaced',
  Obsolete = 'Obsolete',
  Abandoned = 'Abandoned',
  Blocked = 'Blocked',
}

interface ProductTypeInterface {
  Keystring; // Ex. [Online Exclusive]
  }>;

  // Product Promotion
  ProductPromotion?: {
    PromotionId: string; // Referenced from Promotions Index or external data
    PeriodStartTimestamp?: string;
    PeriodEndTimestamp?: string;
  };

  // Product Quantity
  ProductItemQuantity?: Array<{
    Id: string; // Ex.SKU Key1>Key2or variant Id
CountryId: string;   IsoLanguageIdStoreId?: string;
    ProductItemQuantityStartDate?: string;
    ProductTypeProductItemQuantityEndDate?: string; // Ex. Furniture>Living Room
}

    ProductItemQuantity: number;
  }>;

  ProductVendor?: Array<{
    VendorId: string;
    ProductVendor: string;
    PeriodStartDate?: string;
    PeriodEndDate?: string;
  }>;
}


Other interface and enums:

Code Block
enum PriceListTypeEnum {
  Standard = 'Standard',
  Promotional = 'Promotional',
}

enum ProductStatusEnum {
  Active = 'Active',
  Inactive = 'Inactive',
  Discontinued = 'Discontinued',
  Dormant = 'Dormant',
  Frozen = 'Frozen',
  Replaced = 'Replaced',
  Obsolete = 'Obsolete',
  Abandoned = 'Abandoned',
  Blocked = 'Blocked',
}

enum IsoLanguageIds {
  af_ZA = 'af-ZA',
  am_ET = 'am-ET',
  ar_AE = 'ar-AE',
  ar_BH = 'ar-BH',
  ar_DZ = 'ar-DZ',
  ar_EG = 'ar-EG',
  ar_IQ = 'ar-IQ',
  ar_JO = 'ar-JO',
  ar_KW = 'ar-KW',
  ar_LB = 'ar-LB',
  ar_LY = 'ar-LY',
  ar_MA = 'ar-MA',
  ar_OM = 'ar-OM',
  ar_QA = 'ar-QA',
  ar_SA = 'ar-SA',
  ar_SY = 'ar-SY',
  ar_TN = 'ar-TN',
  ar_YE = 'ar-YE',
  as_IN = 'as-IN',
  ba_RU = 'ba-RU',
  be_BY = 'be-BY',
  bg_BG = 'bg-BG',
  bn_BD = 'bn-BD',
  bn_IN = 'bn-IN',
  bo_CN = 'bo-CN',
  br_FR = 'br-FR',
  ca_ES = 'ca-ES',
  co_FR = 'co-FR',
  cs_CZ = 'cs-CZ',
  cy_GB = 'cy-GB',
  da_DK = 'da-DK',
  de_AT = 'de-AT',
  de_CH = 'de-CH',
  de_DE = 'de-DE',
  de_LI = 'de-LI',
  de_LU = 'de-LU',
  dv_MV = 'dv-MV',
  el_GR = 'el-GR',
  en_AU = 'en-AU',
  en_BZ = 'en-BZ',
  en_CA = 'en-CA',
  en_GB = 'en-GB',
  en_IE = 'en-IE',
  en_IN = 'en-IN',
  en_JM = 'en-JM',
  en_MY = 'en-MY',
  en_NZ = 'en-NZ',
  en_PH = 'en-PH',
  en_SG = 'en-SG',
  en_TT = 'en-TT',
  en_US = 'en-US',
  en_ZA = 'en-ZA',
  en_ZW = 'en-ZW',
  es_AR = 'es-AR',
  es_BO = 'es-BO',
  es_CL = 'es-CL',
  es_CO = 'es-CO',
  es_CR = 'es-CR',
  es_DO = 'es-DO',
  es_EC = 'es-EC',
  es_ES = 'es-ES',
  es_GT = 'es-GT',
  es_HN = 'es-HN',
  es_MX = 'es-MX',
  es_NI = 'es-NI',
  es_PA = 'es-PA',
  es_PE = 'es-PE',
  es_PR = 'es-PR',
  es_PY = 'es-PY',
  es_SV = 'es-SV',
  es_US = 'es-US',
  es_UY = 'es-UY',
  es_VE = 'es-VE',
  et_EE = 'et-EE',
  eu_ES = 'eu-ES',
  fa_IR = 'fa-IR',
  fi_FI = 'fi-FI',
  fo_FO = 'fo-FO',
  fr_BE = 'fr-BE',
  fr_CA = 'fr-CA',
  fr_CH = 'fr-CH',
  fr_FR = 'fr-FR',
  fr_LU = 'fr-LU',
  fr_MC = 'fr-MC',
  fy_NL = 'fy-NL',
  ga_IE = 'ga-IE',
  gd_GB = 'gd-GB',
  gl_ES = 'gl-ES',
  gu_IN = 'gu-IN',
  he_IL = 'he-IL',
  hi_IN = 'hi-IN',
  hr_BA = 'hr-BA',
  hr_HR = 'hr-HR',
  hu_HU = 'hu-HU',
  hy_AM = 'hy-AM',
  id_ID = 'id-ID',
  ig_NG = 'ig-NG',
  ii_CN = 'ii-CN',
  is_IS = 'is-IS',
  it_CH = 'it-CH',
  it_IT = 'it-IT',
  ja_JP = 'ja-JP',
  ka_GE = 'ka-GE',
  kk_KZ = 'kk-KZ',
  kl_GL = 'kl-GL',
  km_KH = 'km-KH',
  kn_IN = 'kn-IN',
  ko_KR = 'ko-KR',
  ky_KG = 'ky-KG',
  lb_LU = 'lb-LU',
  lo_LA = 'lo-LA',
  lt_LT = 'lt-LT',
  lv_LV = 'lv-LV',
  mi_NZ = 'mi-NZ',
  mk_MK = 'mk-MK',
  ml_IN = 'ml-IN',
  mn_MN = 'mn-MN',
  mr_IN = 'mr-IN',
  ms_BN = 'ms-BN',
  ms_MY = 'ms-MY',
  mt_MT = 'mt-MT',
  nb_NO = 'nb-NO',
  ne_NP = 'ne-NP',
  nl_BE = 'nl-BE',
  nl_NL = 'nl-NL',
  nn_NO = 'nn-NO',
  oc_FR = 'oc-FR',
  or_IN = 'or-IN',
  pa_IN = 'pa-IN',
  pl_PL = 'pl-PL',
  ps_AF = 'ps-AF',
  pt_BR = 'pt-BR',
  pt_PT = 'pt-PT',
  rm_CH = 'rm-CH',
  ro_RO = 'ro-RO',
  ru_RU = 'ru-RU',
  rw_RW = 'rw-RW',
  sa_IN = 'sa-IN',
  se_FI = 'se-FI',
  se_NO = 'se-NO',
  se_SE = 'se-SE',
  si_LK = 'si-LK',
  sk_SK = 'sk-SK',
  sl_SI = 'sl-SI',
  sq_AL = 'sq-AL',
  sv_FI = 'sv-FI',
  sv_SE = 'sv-SE',
  sw_KE = 'sw-KE',
  ta_IN = 'ta-IN',
  te_IN = 'te-IN',
  th_TH = 'th-TH',
  tk_TM = 'tk-TM',
  tn_ZA = 'tn-ZA',
  tr_TR = 'tr-TR',
  tt_RU = 'tt-RU',
  ug_CN = 'ug-CN',
  uk_UA = 'uk-UA',
  ur_PK = 'ur-PK',
  vi_VN = 'vi-VN',
  wo_SN = 'wo-SN',
  xh_ZA = 'xh-ZA',
  yo_NG = 'yo-NG',
  zh_CN = 'zh-CN',
  zh_HK = 'zh-HK',
  zh_MO = 'zh-MO',
  zh_SG = 'zh-SG',
  zh_TW = 'zh-TW',
  zu_ZA = 'zu-ZA',
}

Field Definitions (Work in progress):

Field

Description

Required

Example

ProductId

Primary ID of the product

Yes

product1

Tenant

Name of client whom the data belongs

Yes

Kjell

Customers

List of customers associated with the product

Ombori, Kjell

IntroductionDate

Date when product is available/added

2012-05-05

PlannedAbandonmentDate

Date when product is to be abandoned

2030-05-05

ShellLifeDays

30

ProductName

Product Name

Yes

CountryId

Country ID

Yes

46

IsoLanguageId

Iso Language ID

Yes

IsoLanguageId List

ProductName

Translation value of the product name

Yes

ProductDescription

Product Name

Yes

CountryId

Country ID

Yes

46

IsoLanguageId

Iso Language ID

Yes

IsoLanguageId List

ProductDescription

Translation value of the product description

Yes

Variants

Yes

Id

Variant ID

Yes

ProductId

Product ID where variant belongs to

Yes

GlobalTradeItemNumber

GtinName

EuropeanArticleNumber

UniversalProductCode

PeriodStartDate

Date when variant was added

PeriodEndDate

Date when variant will end

ProductName

Variant’s Product Name

No

CountryId

Country ID

Yes

46

IsoLanguageId

Iso Language ID

Yes

IsoLanguageId List

ProductName

Translation value of the variant’s product name

Yes

ProductStatus

Yes

ProductStatus

Status value of the product

Yes

Active | Inactive

CountryId

Country ID where status is applicable

Yes

46

IsoLanguageId

Iso Language ID

Yes

IsoLanguageId List

StoreId

Store ID where product status is applicable

PeriodStartDate

Status duration start

PeriodEndDate

Status duration end

ProductStatusNote

ProductFeature

Set of features of the product

No

Id

SKU or Variant ID

Yes

ProductFeatureType

Key of the product feature

Yes

ProductFeatureValue

Translated value of the product feature

Yes

CountryId

Country ID

Yes

46

IsoLanguageId

Iso Language ID

Yes

IsoLanguageId List

ProductPriceList

List of product prices per variant

Yes

Id

SKU or Variant ID

Yes

PriceListType

Standard or Promotional

Yes

Standard

StoreId

Store where price list is applicable

CountryId

Country ID

Yes

46

IsoLanguageId

Iso Language ID

Yes

IsoLanguageId List

IsoCurrencyCode

Iso Currency Code

Yes

IsoCurrencyCode List

PricingUomId

PeriodStartTimestamp

Price applicable start date

PeriodEndTimestamp

Price applicable start date

SuggestedRetailPrice

ListPrice

Yes

CatalogPageLocationProduct

Id

SKU or Variant ID

Yes

ProductId

Parent Id

Yes

CatalogType

Type of the image/media

image/png
video/mp4

CatalogPage

Root URL where image/media is found

https://media.com

CatalogPageLocation

ID or route where image/media is found

/product/12345

CatalogPageLocationProduct

Entire URL where image/media is found

Yes

https://media.com/product/12345.img

ProductLabel

Stickers or labels associated with the product

No

CountryId

Country ID

Yes

46

IsoLanguageId

Iso Language ID

Yes

IsoLanguageId List

ProductLabel

Translation value of Product Label

Yes

ProductItemQuantity

Contains inventory / quantity

No

Id

SKU or variant ID

Yes

StoreId

Store where quantity/inventory is applicable

ProductItemQuantityStartDate

Quantity start date

ProductItemQuantityEndDate

Quantity end date

ProductItemQuantity

Product quantity value

Yes

ProductShortDescription

Short description of the product

No

CountryId

Country ID

Yes

46

IsoLanguageId

Iso Language ID

Yes

IsoLanguageId List

ProductShortDescription

Translation value of short description

Yes

ProductInternalName

Internal name of the product

No

CountryId

Country ID

Yes

46

IsoLanguageId

Iso Language ID

Yes

IsoLanguageId List

ProductInternalName

Translation value of internal name

Yes

StorageInstructions

Storage instructions

No

CountryId

Country ID

Yes

46

IsoLanguageId

Iso Language ID

Yes

IsoLanguageId List

StorageInstructions

Translation value of storage instructions

Yes

ConsumerStorageInstruction

Consumer storage instruction

No

CountryId

Country ID

Yes

46

IsoLanguageId

Iso Language ID

Yes

IsoLanguageId List

ConsumerStorageInstruction

Translation value of consumer storage instructions

Yes

ProductShippingInstruction

Consumer storage instruction

No

CountryId

Country ID

Yes

46

IsoLanguageId

Iso Language ID

Yes

IsoLanguageId List

ProductShippingInstruction

Translation value of product shipping instructions

Yes

ProductType

List of Product Type of a product referenced from ProductTypes DB

Yes