NOTE: Data Model is still in development stage and might change on upcoming days
GridProduct
Code Block |
---|
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; }>; EuropeanArticleNumber?: string; UniversalProductCode?: 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; // 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 Catalog?CatalogType: string; // Ex. Client name?"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; }>; } |
...
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', } 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 | Yes | ||
PeriodEndTimestamp | Price applicable start date | Yes | ||
SuggestedRetailPrice | ||||
ListPrice | Yes | |||
| ||||
Id | SKU or Variant ID | Yes | ||
ProductId | Parent Id | Yes | ||
Catalog | Location where CatalogType | Type of the image/media is foundOmbori | 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 | Yes | ||
ProductItemQuantityEndDate | Quantity end date | Yes | ||
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 | ||
...