Skip to main content

Bluestone PIM

Introduction

The integration adds enriched product data from Bluestone PIM into Occtoo’s Experience Data Platform. This enables digital teams to combine the product data with data and content from other sources (e.g. ERP, CRM) to enrich it further and activate it in any channel in real-time for a seamless customer experience. Everything is executed in a no-code studio making the digital teams more autonomous when executing new digital initiatives.

About Bluestone PIM

With Bluestone PIM, you can get your products to market and in front of customers faster, regardless of channels, regions, or languages.

Read more at https://www.bluestonepim.com/

Data flow

Updates from Bluestone PIM are automatically transferred to different Occtoo sources. There is an option to run a full synchronizations when needed, and also to have continuous updates run whenever there is sync done to the public API. The full synch will fetch all products and categories and import them in an asynchrounous manner. For the continuous updates to work properly a webhook needs to be configured inside the Bluestone PIM user interface. This will trigger an event every time a synch is done and transfer all data related to the batch of updates. The updates will include both product- and category related changes.

bluestone pim transfer overview

Installation/Setup of provider

Prerequisites

  • Access to the Bluestone PIM client
  • Bluestone PIM api key
  • Access to code from Github
  • Azure storage account

Download code from GitHub

The repository is located at:

https://github.com/Occtoo/Occtoo.Provider.BluestonePIM

Create sources in Occtoo

Create the target sources in Occtoo. Add the identifiers to following settings for the provider:

  • CategoriesDataSource
  • ProductsDataSource
  • MediaDataSource

Register provider in Occtoo

Register a provider and include the target sources from the previous step. Add the values for the data provider id and secret in the settings for the formatter:

  • DataProviderId
  • DataProviderSecret

Register provider

Media

When configuring media there are three options:

  • ignore - media is not transferred
  • bluestone - use the original url:s provided by Bluestone PIM
  • occtoo - upload all assets to the Occtoo media service.

The media configuration setting should be specified in the setting for HandleMedia.

Configure Bluestone API

Before any data can be retrieved an API key is needed to connect to the Bluestone API. The value for the key should be added to the configuration setting BluestoneAPIKeyValue.

Languages/Context

The languages or contexts that should be transferred needs to be configured up front. There are two properties for specifying the contexts:

  • DefaultContext
  • AdditionalContext

The default context is the context that holds the data for all non-localized attributes. The value should contain the context context key from Bluestone and the language identifier from Occtoo, separated by ':'. Example: "en:en".

The additional context is optional and can contain one or more contexts to be transferred as localized content. This property works in relation with localized attributes. The structure is the same as for the default context, and multiple contexts are separated by ','. Example: "13472:sv,14373:de".

To access the keys for the contexts a get call to /Contexts endpoint can be made in the Bluestone public API

Get contexts

Attributes

All attribute types from Bluestone are automatically transferred to Occtoo. The attribute number is used as an attribute identifier in Occtoo. The complex data types from Bluestone are serialized into Json. For key-value properties both the key and the value are transferred in separate properties. For multi select values the default separator is '|'.

Properties that should be treated as localized text in Occtoo need to be configured. There are two different settings to configure localized properties:

  • LocalizedPropertiesProduct
  • LocalizedPropertiesCategory

If there are multiple properties they should be separated by a comma. Specifying a property as Localized means that it will get the values for all contexts specified.

bluestone attributes

Configure webhooks

For the update flow to work there are two webhooks needed - one for the update flow and one for the delete flow.

Update webhook

The update webhook is responsible for publishing all changes to products and categories. When creating it make sure to check the option 'New sync done to public API'. Add the url to the http function 'DataSync'.

bluestone update webhook

Delete webhook

The delete webhook is used to remove products from Occtoo that are archived in Bluestone. When creating it make sure to check the option 'Change on product state in PIM'.

bluestone delete webhook

Full synch

To execute a full synch there are two different endpoints, one for the category synch and one for the product synch. The endpoints accept both GET and POST requests. The category full synch will execute in synchronous manner and get all categories and push them to the Occtoo onboarding API.

The product synch will iterate all products and import them in an asynchronous manner by placing them in a queue. The queue will then be processed by a separate worker.


// Categories full synch
GET https://[root-url]/CategoriesFullSync

// Products full synch
POST https://[root-url]/ProductFullSync

Storage account

For the full export to work an Azure storage account needs to be configured.

The connection string should be added in the setting:

  • StorageConnectionString

The name of the queue for the products should be added in the setting:

  • ProductQueue

The blob container for persisting the data should be added in the setting:

  • ProductContainer

bluestone full synch