Overview
Import your existing customer list, product catalog, and order data from your Commerce Cloud account into Optimizely Data Platform. After the initial import, all your customer interactions will be collected on an ongoing basis.
Values & Benefits
- Unify your data from across multiple sources and gain access to comprehensive, persistent customer profiles. ODP stitches together online and offline, historical and real-time customer data, so you could get a true 360-degree view of your customers.
- Leverage easy-to-access, meaningful analytics, enhanced by AI-driven segmentation, to understand how your organization is performing against its goals and to understand customer behavior and engagement.
- See the complete customer journey through an omnichannel lens and understand how your various channels are performing.
- Enrich your customer understanding and segmentation with predictive insights, including Time to Next Order, Likelihood to Purchase, and Winback Zone.
- Refine your segmentation strategy based on your customers’ on-site and buying behaviors and through the lens of ODP’s data science-driven insights.
- Use customer data to personalize messages, content, and recommendations and create relevance at every customer interaction.
Configuration
Step 1: Install Service API
- Before installing the Optimizely Commerce Cloud app in ODP, you’ll need to get the Optimizely Service API NuGet package. (Learn more about installing and configuring the Service API here.)
Step 2: Authorize connection in ODP
- After installing the Service API, you can enable the Optimizely Commerce Cloud app in ODP. In the App Directory, click on the Optimizely Commerce Cloud tile, then click on the Install App
- Under the Settings tab, enter your site URL and select your preferred authentication type. By default, OPD selects the Service API because most Commerce Cloud clients will have that authentication type. However, if you use the Content Delivery API, make sure you select the Delivery API option because the Service API option will not work for you.
- Next, enter your username and password.
- If you selected the Delivery API, you will be asked to provide a client ID. Type “Default” into this field.
- You can now authorize the connection.
Step 3: Launch Importing
- Expand the Imports section.
- By default, all imports (Customers, Orders, Products) are enabled; however, you can choose which objects you want to manage through the integration.
- After clicking on the Import button, you can track the progress of the data pull in the Activity Log.
Step 4: Set up on-site tracking
- To capture commerce events on your ecommerce site, you’ll need to add ODP’s JavaScript tag to your site. Navigate to the JavaScript Tag tile on the Integrations page in your ODP account and click Copy to Clipboard to grab the code for your tag.
- Next, you’ll need to add another snippet below your JS tag (see the snippet in Step 5), so don’t just leave your site (or tag manager) yet!
Step 5: Complete up on-site tracking
- Copy and paste the snippet below your unique JavaScript tag to track standard events in ODP, including:
- Page view
- Product view
- Add to basket
- Remove from basket
- Add to wishlist
- Remove from wishlist
- Check out started
- Check out complete
- Order Confirmed
// Product detail view if (document.getElementById('productCode')) { var productCode = document.getElementById('productCode'); zaius.event('product', { action: 'detail', product_id: productCode.value }); } if (document.getElementById('jsCheckoutForm')) { var productCode = document.getElementById('productCode'); zaius.event('checkout', { action: 'start' }); } if (window.location.href.indexOf("order-confirmation") > 0) { var productCode = document.getElementById('productCode'); zaius.event('checkout', { action: 'complete' }); } $(document).ready(function () { // Add to cart $(document).find('.addToCart').each(function (i, e) { $(e).click(function () { let code = $(this).attr('data'); zaius.event('product', { action: 'add_to_cart', product_id: code }); }); }); // Add to wishlist $(document).find('.addToWishlist').each(function (i, e) { $(e).click(function () { let code = $(this).attr('data'); zaius.event('product', { action: 'add_to_wishlist', product_id: code }); }); }); // Remove from cart $('#js-cart-popover').on('click', '.jsRemoveCartItem', function () { let code = $(this).attr('code'); zaius.event('product', { action: 'remove_from_cart', product_id: code }); }); $('.large-cart').on('click', '.jsRemoveCartItem', function () { let code = $(this).attr('code'); zaius.event('product', { action: 'remove_from_cart', product_id: code }); }); // Remove from wishlist $('#js-wishlist-popover').on('click', '.jsRemoveCartItem', function () { let code = $(this).attr('code'); zaius.event('product', { action: 'remove_from_wishlist', product_id: code }); }); $('.my-account').on('click', '.deleteLineItemWishlist', function () { let code = $(this).attr('data'); zaius.event('product', { action: 'remove_from_cart', product_id: code }); }); });
Together, the JS tag leveraging the two snippets should look like this on your site:
Fields
Commerce Cloud Fields |
ODP (Zaius) Fields |
Field type |
Contact.PrimaryKeyId |
opticommerce_id |
Customers |
Contact.Email |
|
Customers |
Contact.FirstName |
first_name |
Customers |
Contact.LastName |
last_name |
Customers |
Contact.RegistrationSource |
opticommerce_source |
Customers |
OrderForm.OrderNumber |
order_id |
Orders |
OrderForm.Total |
total |
Orders |
OrderForm.SubTotal |
subtotal |
Orders |
OrderForm.TaxTotal |
tax |
Orders |
OrderForm.ShippingTotal |
shipping |
Orders |
OrderForm.Discounts.DiscountName |
coupon_code |
Orders |
OrderForm.LineItem.Code |
product_id |
Events |
OrderForm.LineItem.DiscountedPrice |
price |
Events |
OrderForm.LineItem.Quantity |
quantity |
Events |
OrderForm.LineItem.ExtendedPrice |
subtotal |
Events |
Entry.Code |
product_id |
Products |
Entry.Name |
name |
Products |
Entry.Assets.Title |
image_url |
Products |
EntryRelation.ParentEntryCode | parent_product_id |
Products |
Requirements
You need to have an existing Optimizely Commerce storefront with the Service API installed.
Note that if you have multiple sites you’d like to integrate into ODP, you will need to request an ODP account for each site.