1. Configuration

Delivery configuration

Overview

Delivery configuration defines message routing destinations. Two configuration types are available:

  1. Custom integrations:

    • Kafka instances
    • EventHub instances
    • HTTP endpoints
    • Azure Blob storage
    • Azure Tables
    • CosmosDB databases
    • Message Senders
  2. Known integrations:

    • SearchIngestion API
    • Discover Event API
    • Send Event API
    • Mailchimp API
    • Content Hub Integration

Integration limitations:

  • SearchIngestion API: ProductSync only
  • Discover/Send Event API: TrackingEvent only
  • Content Hub: ProductSync only

Custom integrations support all integration points with multiple target combinations.

Configuration models

DeliveryConfig structure

json
{
  "ID": "",
  "Name": "",
  "Enabled": true,
  "DeliveryTargets": {}
}

DeliveryTargets options

json
{
  "Kafka": {},
  "Http": {},
  "EventHub": {},
  "SendEvent": {},
  "DiscoverEvent": {},
  "AzureBlob": {}
}

Integration configurations

Kafka settings

json
{
  "BootstrapServers": "",
  "SaslUsername": "",
  "SaslPassword": "",
  "Topic": ""
}

HTTP configuration

json
{
  "Endpoint": "",
  "Secret": ""
}

Note: Secret enables webhook verification

EventHub settings

json
{
  "ConnectionString": "",
  "EventHubName": ""
}

Azure storage options

Blob storage:

json
{
  "ConnectionString": "",
  "OverrideContainerName": ""
}

Table storage:

json
{
  "ConnectionString": "",
  "OverrideTableName": ""
}

Database configurations

CosmosDB:

json
{
  "ConnectionString": "",
  "OverrideDatabaseName": ""
}

Messaging settings

MessageSender:

json
{
  "Secret": "",
  "EndPoint": ""
}

Integration APIs

SearchIngestion:

json
{
  "Domain": "",
  "Source": "",
  "Endpoint": "",
  "Entity": "",
  "ApiKey": "",
  "Content": {
    "Locales": ["", ""],
    "Http": {
      "Endpoint": "",
      "CustomAuthHeaderName": "",
      "CustomAuthHeaderValue": ""
    }
  }
}

SendEvent:

json
{
  "SiteID": "",
  "ServiceEndpoint": ""
}

DiscoverEvent:

json
{
  "ApiKey": "",
  "ClientID": "",
  "ServiceEndpoint": ""
}

Mailchimp:

json
{
  "ApiKey": ""
}

AWS S3:

json
{
  "AccessKeyId": "",
  "SecretAccessKey": "",
  "SystemName": "",
  "OverrideBucketName": "",
  "StreamEvents": true
}

Management endpoints

Available operations:

  • GET integrations/deliveryconfig
  • GET integrations/deliveryconfig/{deliveryConfigId}
  • POST integrations/deliveryconfig
  • PUT integrations/deliveryconfig/{deliveryConfigId}
  • PATCH integrations/deliveryconfig/{deliveryConfigId}
  • DELETE integrations/deliveryconfig/{deliveryConfigId}

Implementation details

Event types

NamespaceDescription
sitecore.ordercloud.messages.product.updatedSent when a product has been created or updated.
sitecore.ordercloud.messages.product.deletedSent when a product is deleted.
sitecore.ordercloud.messages.orders.lines.addedSent when a line item is added to an order.
sitecore.ordercloud.messages.orders.lines.updatedSent when a line item is updated in an order.
sitecore.ordercloud.messages.orders.submittedSent when an order is submitted.
sitecore.ordercloud.messages.sessions.identifiedSent when a user logs in and has been identified.
sitecore.ordercloud.messages.ordersync.updatedSent when an order is updated and OrderSync has been enabled.
sitecore.ordercloud.messages.ordersync.deletedSent when an order is deleted and OrderSync has been enabled.
sitecore.ordercloud.messages.entitysync.category.updatedSent with a category has been updated.
sitecore.ordercloud.messages.entitysync.category.deletedSent when a category is deleted.
sitecore.ordercloud.messages.entitysync.adminuser.updatedSent when an admin user is updated.
sitecore.ordercloud.messages.entitysync.adminuser.deletedSent when an admin user is deleted.
sitecore.ordercloud.messages.entitysync.buyer.deletedSent when a buyer is deleted.
sitecore.ordercloud.messages.entitysync.buyer.updatedSent when a buyer is updated.
sitecore.ordercloud.messages.entitysync.buyerusergroup.deletedSent when a buyer user group is deleted.
sitecore.ordercloud.messages.entitysync.buyerusergroup.updatedSent when a buyer user group is updated.
sitecore.ordercloud.messages.entitysync.buyeruser.updatedSent when a buyer user is updated.
sitecore.ordercloud.messages.entitysync.buyeruser.deletedSent when a buyer user is deleted.
sitecore.ordercloud.messages.entitysync.inventoryrecord.updatedSent when a single inventory record has been changed.
sitecore.ordercloud.messages.entitysync.inventoryrecord.deletedSent when an inventory record has been deleted.
sitecore.ordercloud.messages.entitysync.inventoryrecord.full.updatedSent when a full inventory record sync has been initiated.
sitecore.ordercloud.messages.entitysync.supplieruser.updatedSent when a supplier user is updated.
sitecore.ordercloud.messages.entitysync.supplieruser.deletedSent when a supplier user is updated.
sitecore.ordercloud.messages.entitysync.supplier.updatedSent when a supplier is updated.
sitecore.ordercloud.messages.entitysync.supplier.deletedSent when a supplier is deleted.
sitecore.ordercloud.messages.messagesender.{MessageType}Send when a message sender is triggered. Represents one of the message types defined in the Message Sender documentation.

Payload structures

HTTP format:

json
{
  "Headers": {
    "type": "<value>"
  },
  "ConfigData": {},
  "Payload": {}
}

Additional headers:

  • X-oc-hash: Webhook verification hash

EventHub properties:

  • type
  • sitecoreorg
  • marketplace
  • tenant

Kafka properties:

  • ce_type
  • ce_sitecoreorg
  • ce_marketplace
  • ce_tenant

Storage containers

ContainerPurpose
entitysyncEntity synchronization
logsError configuration
ordersOrder synchronization
productsProduct synchronization
trackingeventsEvent tracking
webhooksWebhook delivery
If you have suggestions for improving this article, let us know!