Product Object

Prev Next

Suggested readings: Page object, User object, Listing object, Basket object, Transaction object

The Product Object includes the product properties. If the product properties are changeable without reloading the page, this object must be updated, too. The product object must be implemented on the pages where a single product is displayed.

This guide answers the following questions:

What are the prerequisites?

  • Insider tag must be implemented.
  • Insider object must be defined before the Insider tag. Otherwise, the Insider tag cannot read any information from the Insider object.

What are the properties?

The Product object has the following properties.

KeyPropertyTypeDefinitionCharacter LimitRequired
idProduct IDStringUnique product ID128Yes
nameProduct NameStringName of the product512Yes
localeLocaleStringUnique locale identifier64Yes
taxonomyBreadcrumbArrayCategory tree of the product1024Yes
group_codeGroupcodeStringUsed to group product variants512No
currencyCurrencyStringCurrency used for product pricing, in ISO 4217 format (e.g. USD)N/AYes
unit_priceProduct price without any discount(s)FloatPrice of the product without any discount(s)N/AYes
unit_sale_priceUnit priceFloatUnit price of the productN/AYes
omnibus_priceOmnibus priceNumberOmnibus price of the productN/ANo
omnibus_discountOmnibus discountNumberOmnibus discount of the productN/ANo
discountDiscount informationObjectAuto-calculated from price and original price as a percentageN/ANo
skuStock Keeping Unit informationStringStock-keeping unit512No
urlProduct page linkStringURL address of the product512Yes
in_stockStock informationNumberBinary stock availability“0” or “1”Yes
stockStock informationNumberNumber of products left in stockN/ANo
colorProduct colorStringColor of the product (selected by user)512No
brandBrandStringProduct brand512No
ratingRatingNumberProduct ratingMin 1 , Max 10No
sizeProduct sizeStringSize of the product (selected by user)512No
genderGenderStringGender information of the product512No
product_typeProduct typeStringSpecifies the product type information512No
product_image_urlProduct image linkStringURL address of the product image512Yes
item_update_dateItem update dateStringIt takes date time (YYYY-MM-DD HH:MM:SS). It’s used by publisher customers for filtering the last 2 days of content.512

Yes → Only for published-time based

item_start_dateItem start dateStringIt takes date time (YYYY-MM-DD HH:MM:SS). It’s used for event websites for getting the event start dates.512Yes -> Only for published-time based
item_end_dateItem end dateStringIt takes date time (YYYY-MM-DD HH:MM:SS). It’s used for event websites to get event end dates.512Yes -> Only for published-time based
descriptionDescriptionStringDescription of the product1024No
gtinGlobal Trade Item NumberStringGlobal Trade Item Number512No
multipackMultipack informationStringSpecifies a multipack item512No
tagsProduct tagsArray[String]

List of tags of the product in a List of String model. 

When the total list is converted to a string, the string character size should be at most 4096.

4096No
category_pathCategory pathStringString version of the category1024No
customCustomObjectCustom object that includes custom properties to be collected to Insider database as custom event parameters
No

What are the things to keep in mind?

When integrating the object, the following factors should be considered.

  • window.insider_object.product object should return on the page. 
  • After running window.insider_object.page.type on the browser console, the page object should return the type as Product. 
  • window.insider_object.product.taxonomy should return the correct breadcrumb hierarchy. 
  • The object should update the product information when the product changes.

Sample code

Below is a sample code for the Product object.

window.insider_object = window.insider_object || {};
window.insider_object.product = {
        "id": "abc1234",
        "name": "Blue Dress",
        "taxonomy": [
            "Dresses",
            "Night Dresses",
            "Long Sleeve"
        ],
        "currency": "USD",
        "unit_price": 100.00,
        "unit_sale_price": 95.00,
        "discount": 15,
        "omnibus_price": 90.00,
        "omnibus_discount": 15,
        "currency": "USD",
        "locale": "en_US",
        "groupcode": "7226463649905",
        "url": "http://www.mywebsite.com/en-US/product/abc1234/",
        "in_stock": 1,
        "stock": 11,
        "color": "Blue",
        "brand": "Posh Street",
        "gender": "Female",
        "size": "S",
        "product_image_url": "http://www.mywebsite.com/product_images/abc1234.png",
        "custom": {
            "merchandiser": "store123"
        }
}

In addition to the properties defined in the table above, you can add custom properties to any object. Such properties should be added under the custom object, as in the example above.

Your title goes here
The key-value pairs under the custom object are attributed as custom event parameters to the Product Detail Page View event.
Your title goes here
The value type of any key under the custom object varies depending on the key. Make sure to add the values in the data type that fits the best.

How can I monitor if the integration works correctly?

Once you deploy your integration, you can test it via the Website Integration Wizard. This wizard helps you complete your integration and test it afterwards. If you have already implemented the integration, you can use the wizard only to test it as well.