Voyado Adapter (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
- 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. - 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. - 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.CrmId | contactId | Empty CrmId may not mean that the contact does not exists in Voyado. Only that there is no link (yet). |
Customer.FirstName | attributes.firstName | |
Customer.LastName | attributes.lastName | |
Customer.EmailAddress | attributes.email | |
Customer.PhoneNumber / Customer.CellphoneNumber | attributes.mobilePhone | We 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.AddressLine2 | attributes.street | CustomerAddress is the invoice Address for the customer. |
CustomerAddress.ZipCode | attributes.zipCode | |
CustomerAddress.City | attributes.city | |
CustomerAddress.SSN | attributes.SocialSecurityNumber | |
customerFlag[Code="AcceptsEmail"] | preferences.acceptsEmail | |
customerFlag[Code="AcceptsPostal"] | preferences.acceptsPostal | |
customerFlag[Code="AcceptsSms"] | token | |
Name | preferences.acceptsSms |
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
- 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/buyerEmail | contact.MatchKey | If buyerCustomer has CrmId , we will use it. Otherwise we will use the buyerEmail set on the basket. |
Fixed value: “ContactId” or “Email”. | contact.MatchKeyType | If buyerCustomer has CrmId , we will use ContactId. Otherwise we will match by Email. |
StoreId set on the channel | StoreExternalId | |
Invoice.InvoiceNo | UniqueReceiptId | |
Invoice.ReferenceOrderId | ReceiptNumber | |
Invoice.InvoiceDate | CreatedDate | |
calculated value from Invoice.CurrencyId | Currency | |
sum of all GrossPaidPrice on items | TotalGrossPrice | |
Invoice.Vat | TotalTax | |
Name | PaymentMethod | We create one paymentmethod, and put the whole price on it with the payment type card. |
fixed value:“card” | PaymentMethod.Type | |
TotalGrossPrice | PaymentMethod.Value | same value as we set on the parent. |
Each InvoiceItem in Invoice | Items[] | |
fixed value: “PURCHASE” | item.Type | |
invoiceItem.PartNo | item.Sku | |
invoiceItem.Quantity | item.Quantity | |
invoiceItem.PriceSale | item.GrossPaidPrice | inclusive VAT |
calculated from pricesale and vatRate | item.TaxAmount | |
invoiceItem.VatRate | item.TaxPercent | |
invoiceItem.PartNo | item.ArticleNumber | |
invoiceItem.ProductName/invoiceItem.PartNo | item.ArticleName | ProductName if it exist, otherwise PartNo |
fixed value: “true” | item.AwardBonus | |
created if invoiceItem.DiscountAmount is larger than 0 | item.Discounts | |
invoiceItem.DiscountAmount | discount.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
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.