The Product Catalog is a collection of products in your inventory and includes information on those products, such as prices, images, URLs, created date, and other attributes. This information is used in product recommendations, for campaign personalization, to target customers based on customer events, and dynamically updating product attributes that can trigger campaigns.
The Product Catalog is continuously updated via the Bluecore Website Integration and Customer interactions with the products online.
Structures
There are two types of Product Catalogs: product variants and parent products. The choice between which type to use is made in the pre-onboarding step.
The product variants type are when each product variant is treated as a unique product ID. For example, the same type of shirt with red, green and blue color options has three different products under this format. This is the default setup for Bluecore clients.
The parent products system uses the parent product ID as the unique identifier, meaning the aforementioned shirt example would be one product under this format.
While the product variants option is the most common, there are considerations to make when choosing which type of Product Catalog to use.
For more on the Product Catalog structures, see Pre-Onboarding Architecture Information.
Global Product Fields
These are Bluecore's standard product fields that are provisioned in every namespace. Additional custom fields can be added into your namespace by Bluecore. Bluecore only accepts product data that will be used for campaign merchandising rules (recipe rules), campaign personalization, and audience segmentation.
Field | Kind | Type | Description |
id | standard | string | The unique identifier for the product, typically the Stock Keeping Unit (SKU) for SKU-level setup or the parent product ID for products setup. This must be an ID that is consistent across the website and in-store. There is a limit of 128 characters. |
name | standard | string | The name or title of the product. Product names should not have any line breaks. The only special characters allowed are: dash, hyphen, space, and semicolon. |
price | standard | float | The price of the product. If decimals are not provided, they are added automatically by Bluecore. The price must be provided in the agreed upon currency for each namespace (USD unless discussed). |
image | standard | string | The URL or to the image associated with the product. This is the image used in campaigns by default. Must be a valid and well-formed URL |
url | standard | string | The URL where the product can be viewed or purchased. This must be a valid and well-formed URL |
out_of_stock | standard | boolean | Indicates whether the product is currently out of stock. |
created | reserved | date/time | Indicates when the product was created in Bluecore’s product table for the namespace due to a new product ID being ingested from an upload, feed, or event.
This is not a reflection of when the product was created in the client’s PIM or elsewhere. This is used for determining New Arrivals. |
updated | reserved | date/time | Indicates the last time the product was updated. |
is_bluecore_parent | standard | boolean | Indicates whether the product record is a parent product record or a variant record. Only used in product variants catalog structure. |
bluecore_parent_id | standard | string | When is_bluecore_parent is “false”, this is the ID of the parent product. Only used in product variants catalog structure. |
Catalog validation
Bluecore utilizes head checks to validate URLs for Product Catalog items for both the image URL and the product URL. Every product will need its image and product URL to be checked every 7 days. If the either check fails or is not completed, the product will become invalid and that product will be ineligible to be used in campaigns.
Bluecore’s head checks validates up to 2,500 URLs per hour, depending on the size of the catalog.
Shopify
Retailers using Shopify typically turn catalog validation off, as Shopify considers it a 3rd party IP, and blocks it from checking URLs.
Without catalog validation, this means the URLs aren’t validated. If a product is pulled from the website, it will still exist in the catalog, because there was nothing to invalidate it. If this is the case, the client can provide a feed of products that should be expired, so Bluecore can mark them as such.
Updating a product record
Best practices
If you use both the Bluecore Website Integration and a managed product feed, then each field should only come from one or the other. The best source for each field will be determined with your Bluecore implementation team.
Bluecore Website Integration
In most cases, clients may use the Bluecore Website Integration as their primary means to update the data in their product catalog continuously, reliably, and in near real-time.
Using the integration for product data means that every time a customer views a product, the resulting viewed-product event is inspected, and if there is data that doesn’t match the current product catalog data several times in a row in a certain timeframe, we will update the product record with the new data.
Note: This method relies on multiple visits to each Product Description Page (PDP) to update product data; if your website doesn’t consistently have traffic to each product (or product variant depending on how your SKUs are set-up), we may recommend a managed feed as a supplement to the website data.
Managed Product Feed
With a managed feed, the client sets up a scheduled file drop to a Bluecore-owned or client-owned and externally hosted SFTP folder. A Bluecore engineering team sets up recurring jobs to grab the data, providing clean and transform services if needed, then the updated information is processed by Bluecore.
Currently, managed feeds are not visible to external users in the Bluecore platform, but our support teams continuously monitor these managed feeds for issues.
NOTE: We recommend building in a 24-hour window between when your managed feed is scheduled to run and campaign launch so there is ample time to view proofs and test campaigns with updated product data.
Self-serve file import
If you need to update, correct, or add in new products ahead of the next feed run, a .CSV file can be imported directly in the Bluecore UI (requires Data Manager or Client Admin permissions). Custom Product Attributes can’t be created from the Bluecore UI, so make sure to coordinate ahead of time if additional fields are needed.