Last updated

Voyado Adapter (Deprecated)

Deprecated

Some Norce [Storm] Adapters are deprecated in Norce Commerce is replaced by Other services or solutions.

Read about it here.

Voyado is an advanced CRM and loyalty service that is integrated with Norce [Storm].

Responsibilites

When using this adapter, it is assumed that Voyado is the master of customer information and that customers can be added from several channels, not just eCommerce.

Supported functionality

  • Create Voyado Contacts from Norce [Storm] Customers. Contacts will be created as a member contact type in Voyado.
  • Register Voyado Transactions from Norce [Storm] invoices.
  • Provide Norce [Storm] products to Voyado.

Not supported

  • Register Voyado Transactions from Norce [Storm] orders.
  • Apply Voyado Promotions, Rewards or Vouchers to Norce orders (through baskets). Since Norce is a headless platform the reaction to customer actions is handled by a frontend and commerce app, and it is from here these use cases are handled. The promotions, rewards or vouchers is fetched directly from Voyado’s API, presented/chosen and applied to the basket in Storm.
  • Trigger email notifications from Norce using Voyado. Handling email notifications is done directly in Voyado.
  • Integrate Companies with Voyado. Only Customer entities is created and mapped to Voyado Contacts, the adapter does not support company mapping.

Scnenarios

Customer creation in Voyado

Customer swimlane

  1. Create Customer when a purchase is happening: When an order is created, the app should also call RegisterCustomer (with the flag exportToVoyado = true) which registers the customer as a contact in Voyado. If a contact already exists in Voyado, it will be updated.
  2. Create Customer when a visitor wants to register for membership: A call to RegisterCustomer (with the flag exportToVoyado = true) should also register the contact in Voyado, when no order is placed. If the customer already exists in Norce, it will be updated with the flag (and other information you pass in) and sent to Voyado.
  3. A contact is created in Voyado and wants a login: When a contact is created in Voyado without the involvement of Norce and if the customer wants a login on the site, an email with an link to a certain page on the commerce app, that resolved who it is and register the Customer (with the flag exportToVoyado = true) in Norce.

The Customer is only exported to Voyado when the customer flag “exportToVoyado” is set.

Data mappings

Norce [Storm] (Customer)Voyado (Contact)Note
Customer.CrmIdcontactIdEmpty CrmId may not mean that the contact does not exists in Voyado. Only that there is no link (yet).
Customer.FirstNameattributes.firstName
Customer.LastNameattributes.lastName
Customer.EmailAddressattributes.email
Customer.PhoneNumber / Customer.CellphoneNumberattributes.mobilePhoneWe first check PhoneNumber, if it is empty then we will use CellphoneNumber. If the Phonenumber is already registerd in Voyado, it is removed in the import.
CustomerAddress.AddressLine1 + " " + CustomerAddress.AddressLine2attributes.streetCustomerAddress is the invoice Address for the customer.
CustomerAddress.ZipCodeattributes.zipCode
CustomerAddress.Cityattributes.city
CustomerAddress.SSNattributes.SocialSecurityNumber
customerFlag[Code="AcceptsEmail"]preferences.acceptsEmail
customerFlag[Code="AcceptsPostal"]preferences.acceptsPostal
customerFlag[Code="AcceptsSms"]token
Namepreferences.acceptsSms
Additional data to Voyado contact

If you need to add more fields to the contact in Voyado, you can create the cantact yourself at registration (using the Voyado API), and add the Voyado contact Id to the CrmId field on the Customer object when you call RegisterCustomer in Norce [Storm]. If a CrmId exists, the Adapter will not try to create the contact again.

Transaction registrations in Voyado

Transaction swimlane

  1. An invoice is created from the ERP in Norce [Storm]: When an invoice (Receipt) is created in Norce, the Voyado adapter will register the transaction in Voyado.

Data mappings

Norce [Storm] (Invoice)Voyado (Receipt)Note
CrmId/buyerEmailcontact.MatchKeyIf buyerCustomer has CrmId, we will use it. Otherwise we will use the buyerEmail set on the basket.
Fixed value: “ContactId” or “Email”.contact.MatchKeyTypeIf buyerCustomer has CrmId, we will use ContactId. Otherwise we will match by Email.
StoreId set on the channelStoreExternalId
Invoice.InvoiceNoUniqueReceiptId
Invoice.ReferenceOrderIdReceiptNumber
Invoice.InvoiceDateCreatedDate
calculated value from Invoice.CurrencyIdCurrency
sum of all GrossPaidPrice on itemsTotalGrossPrice
Invoice.VatTotalTax
NamePaymentMethodWe create one paymentmethod, and put the whole price on it with the payment type card.
fixed value:“card”PaymentMethod.Type
TotalGrossPricePaymentMethod.Valuesame value as we set on the parent.
Each InvoiceItem in InvoiceItems[]
fixed value: “PURCHASE”item.Type
invoiceItem.PartNoitem.Sku
invoiceItem.Quantityitem.Quantity
invoiceItem.PriceSaleitem.GrossPaidPriceinclusive VAT
calculated from pricesale and vatRateitem.TaxAmount
invoiceItem.VatRateitem.TaxPercent
invoiceItem.PartNoitem.ArticleNumber
invoiceItem.ProductName/invoiceItem.PartNoitem.ArticleNameProductName if it exist, otherwise PartNo
fixed value: “true”item.AwardBonus
created if invoiceItem.DiscountAmount is larger than 0item.Discounts
invoiceItem.DiscountAmountdiscount.Value

Product integration from Norce to Voyado

Products can be sent to Voyado through a regular Google Shopping feed, which then is mapped to the Voyado product format. Please contact Voyado to get this done. If you don’t have have a Google Shopping Feed, please contact Norce.

Configurations

Channel Configuration

First, you need to add a Voyado channel. On the channel page, create a new Channel with the type: ”Voyado”. Enter a name, and fill the Settings for Voyado.

  • API key: Api key to the rest endpoint. eg: 26013e85-f1e7-4345-93ac-15bea14cec3d
  • Url: url to the rest endpoint eg: stormdemo.staging.voyado.com
  • Store Id: The store Id in Voyado that represents the store used by Norce. eg: 1

Channel Settings

Customer Configuration

Under Customers/Flags add a new Flag Group. Set the name to Voyado and select the “Is multiple” checkbox.

Add 4 new flags in under the new Flag Group with the codes:

  • acceptsEmail
  • acceptsSms
  • acceptsPostal
  • exportToVoyado

Check the box “Can be set on customer” and un-check the rest.

Implementation

How to implement the Voyado Adapter to your solution.

Customer creation

Set the exportToVoyado flag to the customer in Norce and it will be exported. When the customer has been exported, the flag it will be cleared, and the CrmId will be updated with the Id from Voyado. If the email-address is already registered in Voyado, it will not be exported, but the CrmId will be updated in Norce.

The customer will not be exported if the customer already has a CrmId. If you need to do this, you must removed the CrmId manually in Admin first.

Fetching contact information from Voyado

This is not done through Norce [Storm] or the adapter, but by interacting with Voyado´s API directly. There is a special Id reserved for CRM systems on the customer entity in the Storm API - the CrmId - that can be used to look up the customer in Voyado. This field is by default hidden in the Admin UI and needs to be changed to visible under Settings.

Applying promotions, rewards and vouchers in Norce

The common practice is to have similar logic set up in Norce as in Voyado, like price lists or promotions with discount codes that you apply in the checkout. This makes it possible to have offers from Voyado that plays well with other business logic in Norce [Storm]. The con is that it creates restrictions to what is possible to do in Voyado, since the same logic must exist in Norce.

Another way is to apply manual prices on basket items. This is more flexible but overrides any other business logic in Norce on the basket.

Redeem Promotions or Vouchers

When a payment is committed (created or reserved), the Voyado promotions or vouchers must be redeemed. A good place to implement this is when a confirmation page is shown to the customer, or maybe even better is to implement it in a payment validation even that some payment service providers support.