NOTE: Data Model is still in development stage and might change on upcoming days
GridProduct
interface GridProduct { ProductId: string; Tenant: string; Customers?: string[]; // Main default details ProductShortDescription?: Array<{ CountryId: string; IsoLanguageId: string; ProductShortDescription: string; }>; ProductInternalName?: Array<{ CountryId: string; IsoLanguageId: string; ProductInternalName: string; }>; IntroductionDate?: string; // Start Date (optional) - main date added on RelatedProduct(Variant) PlannedAbandonmentDate?: string; // End Date (optional) - main date added on RelatedProduct(Variant) StorageInstructions?: Array<{ CountryId: string; IsoLanguageId: string; StorageInstructions: string; }>; ShellLifeDays?: number; ConsumerStorageInstruction?: Array<{ CountryId: string; IsoLanguageId: string; ConsumerStorageInstruction: string; }>; ProductShippingInstruction?: Array<{ CountryId: string; IsoLanguageId: string; ProductShippingInstruction: string; }>; // Array of translation ProductName: Array<{ CountryId: string; IsoLanguageId: string; ProductName: string; }>; // Array of translation ProductDescription: Array<{ CountryId: string; IsoLanguageId: string; ProductDescription: string; }>; // Variants Variants: Array<{ Id: string; // Item variant Id ProductId: string; // Parent product Id GlobalTradeItemNumber?: string; GtinName?: string; EuropeanArticleNumber?: string; UniversalProductCode?: string; // Item variant name (optional) ProductName?: Array<{ CountryId: string; IsoLanguageId: string; ProductName: string; }>; PeriodStartDate?: string; PeriodEndDate?: string; // Added custom field for variants Color?: string; Style?: string; Size?: string; }>; Brand?: Array<{ CountryId: string; IsoLanguageId: string; BrandName: string; BrandDescription?: string; BrandMark?: string; BrandTrademark?: string; BrandLogo?: string; }>; // Array of translation ProductStatus: Array<{ ProductStatus: ProductStatusEnum; // Ex. Active OR Inactive CountryId: string; IsoLanguageId: string; StoreId?: string; PeriodStartDate?: string; PeriodEndDate?: string; ProductStatusNote?: string; }>; // Equivalent to productDetails in GPF used for filters and data display ProductFeature?: Array<{ Id: string; // SKU or variant Id ProductFeatureType: string; // Key of productDetails in GPF CountryId: string; IsoLanguageId: string; ProductFeatureValue: string; }>; // Product Price based on type ProductPriceList: Array<{ Id: string; // SKU or variant Id PriceListType: PriceListTypeEnum; // 'Standard' OR 'Promotional' StoreId?: string; CountryId: string; IsoLanguageId: string; IsoCurrencyCode: string; PricingUomId?: string; PeriodStartTimestamp?: string; PeriodEndTimestamp?: string; SuggestedRetailPrice?: number; ListPrice: number; }>; // Images and links CatalogPageLocationProduct: Array<{ Id: string; // SKU or variant Id ProductId: string; // Parent Id CatalogType: string; // Ex. "image/png", "video/mp4" CatalogPage?: string; // Ex. Root URL of client media site CatalogPageLocation?: string; // Ex. Product URL appended to root URL of client page CatalogPageLocationProduct: string; // Entire URL value }>; // Product categories (Converted semi-colon separated into array) ProductType: Array<ProductTypeInterface>; // Product Tags ProductLabel?: Array<{ CountryId: string; IsoLanguageId: string; ProductLabel: string; // 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; // SKU or variant Id StoreId?: string; ProductItemQuantityStartDate?: string; ProductItemQuantityEndDate?: string; ProductItemQuantity: number; }>; ProductVendor?: Array<{ VendorId: string; ProductVendor: string; PeriodStartDate?: string; PeriodEndDate?: string; }>; }
Other interface and enums:
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', } interface ProductTypeInterface { Key: string; // Ex. Key1>Key2 CountryId: string; IsoLanguageId: string; ProductType: string; // Ex. Furniture>Living Room }
Field Definitions (Work in progress):
Field | Description | Required | Example |
---|---|---|---|
| Primary ID of the product | Yes | product1 |
| Name of client whom the data belongs | Yes | Kjell |
| List of customers associated with the product | Ombori, Kjell | |
| Date when product is available/added | 2012-05-05 | |
| Date when product is to be abandoned | 2030-05-05 | |
| 30 | ||
| Product Name | Yes | |
CountryId | Country ID | Yes | 46 |
IsoLanguageId | Iso Language ID | Yes | |
ProductName | Translation value of the product name | Yes | |
| Product Name | Yes | |
CountryId | Country ID | Yes | 46 |
IsoLanguageId | Iso Language ID | Yes | |
ProductDescription | Translation value of the product description | Yes | |
| Yes | ||
| Variant ID | Yes | |
| Product ID where variant belongs to | Yes | |
| |||
| |||
| |||
| |||
| Date when variant was added | ||
| Date when variant will end | ||
| Variant’s Product Name | No | |
CountryId | Country ID | Yes | 46 |
IsoLanguageId | Iso Language ID | Yes | |
ProductName | Translation value of the variant’s product name | Yes | |
| Yes | ||
ProductStatus | Status value of the product | Yes | Active | Inactive |
CountryId | Country ID where status is applicable | Yes | 46 |
IsoLanguageId | Iso Language ID | Yes | |
StoreId | Store ID where product status is applicable | ||
PeriodStartDate | Status duration start | ||
PeriodEndDate | Status duration end | ||
ProductStatusNote | |||
| 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 | |
| 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 | |
IsoCurrencyCode | Iso Currency Code | Yes | |
PricingUomId | |||
PeriodStartTimestamp | Price applicable start date | ||
PeriodEndTimestamp | Price applicable start date | ||
SuggestedRetailPrice | |||
ListPrice | Yes | ||
| |||
Id | SKU or Variant ID | Yes | |
ProductId | Parent Id | Yes | |
CatalogType | Type of the image/media | image/png | |
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 |
| Stickers or labels associated with the product | No | |
CountryId | Country ID | Yes | 46 |
IsoLanguageId | Iso Language ID | Yes | |
ProductLabel | Translation value of Product Label | Yes | |
| 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 | |
| Short description of the product | No | |
CountryId | Country ID | Yes | 46 |
IsoLanguageId | Iso Language ID | Yes | |
ProductShortDescription | Translation value of short description | Yes | |
| Internal name of the product | No | |
CountryId | Country ID | Yes | 46 |
IsoLanguageId | Iso Language ID | Yes | |
ProductInternalName | Translation value of internal name | Yes | |
| Storage instructions | No | |
CountryId | Country ID | Yes | 46 |
IsoLanguageId | Iso Language ID | Yes | |
StorageInstructions | Translation value of storage instructions | Yes | |
| Consumer storage instruction | No | |
CountryId | Country ID | Yes | 46 |
IsoLanguageId | Iso Language ID | Yes | |
ConsumerStorageInstruction | Translation value of consumer storage instructions | Yes | |
| Consumer storage instruction | No | |
CountryId | Country ID | Yes | 46 |
IsoLanguageId | Iso Language ID | Yes | |
ProductShippingInstruction | Translation value of product shipping instructions | Yes | |