vinESB 2.2 User’s Guide
April 18, 2018
WineryConnect Cornell Technology Farm
500 Technology Farm Drive, Suite W01 Geneva, NY 14456
855-681-7253 http://wineryconnect.com
vinESB 2.2 User’s Guide
2
Overview ............................................................................................. 3
Basic Concepts ..................................................................................... 4
Slightly More Detail ............................................................................ 6
Preliminary Questions ........................................................................... 7
Overall ............................................................................................. 8
Frequency and Direction .................................................................. 8
Product ............................................................................................ 8
Uniqueness .................................................................................... 9
What to sync? ................................................................................ 9
What is updated? ............................................................................ 9
Gift? ............................................................................................ 10
Clothing? ..................................................................................... 10
Customer ........................................................................................ 11
Uniqueness .................................................................................. 11
Default detail ................................................................................ 12
Notifying customers ...................................................................... 12
Customer Group Categories............................................................ 12
Order ............................................................................................. 13
Sales Tax ..................................................................................... 13
Administration .................................................................................... 14
Integration As A Service ................................................................... 14
Magento Manual Sync ...................................................................... 15
Nexternal Manual Sync ..................................................................... 17
Operation .......................................................................................... 18
Step 1: Create Product ..................................................................... 18
Key Details ................................................................................... 19
Step 2: Enrich Product (Optional) ...................................................... 22
Step 3 (and Step3a): Create Customer ............................................... 25
Key Details ................................................................................... 27
vinESB 2.2 User’s Guide
3
Step 4: Place Order .......................................................................... 30
Key Details ................................................................................... 31
Step 5: Reporting ............................................................................ 33
Sales Summary ............................................................................ 34
Product Mix Report ........................................................................ 37
Order History ............................................................................... 37
Discounts ..................................................................................... 38
Product Inventory ......................................................................... 39
vinESB Omnichannel Commerce Reporting ....................................... 39
Quickbooks Integration ....................................................................... 41
Overview
WineryConnect is a technology and services company focused on wineries.
Headquartered in the Cornell Technology Farm in Geneva, NY,
WineryConnect specializes in building what we call Winery Intelligence. Our
ongoing mission is to help wineries work smarter, and not harder year over
year as the winery grows and changes. For more information on the full
scope of products and services offered by WineryConnect, please visit our
web site at http://quantumloopsolutions.com.
Over the past five years WineryConnect has worked with wineries to select
the best technology systems to support operations and to learn best
practices in using those systems through the seasons in adherence with
state and federal regulations. The result is a set of Technology, Training, and
Support systems which cover what we call “Seed to Smartphone.”
WineryConnect broadly supports wineries from growing grapes through
making wine, through selling in-person in the tasting room and at festivals,
through selling online with wine clubs, through rewarding customers for
promoting wine socially. Training and support are provided 24/7 by the
Grape Squad – our dedicated winery technology experts.
From working with growing wineries who've had a wide variety of IT systems
over the years, we noticed two major challenges when deploying and
operating them. The first is that staff generally end up shouldering the
burden of manually keeping data in sync across the different systems. Our
vinESB 2.2 User’s Guide
4
solution here is a technology platform we’ve built called vinESB. vinESB is an
Enterprise Service Bus which means it helps software systems talk to each
other. This kind of automation is usually only available to big companies with
dedicated IT staff, but because vinESB is a managed service, we can offer it
affordably.
WineryConnect provides 6 core benefits:
1. First a reduction in data re-entry and number crunching means a
reduction in manual effort. In some cases this will be a straight cost
reduction, for instance if you take advantage of the Quickbooks integration
included with Revel you don’t need to pay a bookkeeper to enter daily sales
data into Quickbooks. In other cases staff will simply be freed up to engage
consumers and make great wine instead of sitting at a computer.
2. The Grape Squad offers one number to call for winery specific Training
and Support.
3. By automating sales operations across online and POS and back into
accounting, WineryConnect positions wineries to scale revenue efficiently.
4. By providing a bird’s-eye view of operations WineryConnect improves
business insight for wineries, and these insights by the way are accessible
anywhere and at any time.
5. vinESB not only connects business solutions, it serves as an archive of
all customer interactions outside of our partner systems.
6. And finally one of the key things this means is that you are free to
change business systems as your winery grows and changes over time.
Basic Concepts
Our fundamental goal is to enable you to sell online, mobile, and in your
tasting room based on one set of data for Products, Customers, and Orders
without having to manually keep things in sync. We currently support two
online selling platforms (Nexternal and Magento) and one Point Of Sale
(Revel) for mobile and tasting room sales support.
vinESB 2.2 User’s Guide
5
At its simplest level vinESB looks like this:
Briefly, we currently integrate Products and Customers both from the Online
Store into the POS and from the POS to the Online Store (we sync both
directions). We integrate Orders from the online store into the POS and from
the POS into vinESB and Magento (we don’t yet sync Revel orders into
Nexternal). Intuit invested substantially in Revel resulting in a tight
integration between Revel and Quickbooks which we have proven works for
wineries. The remainder of this document will get into additional detail on
how these integrations work.
Before we get into more detail, however, we should note that in addition to
saving manual effort, having one set of data for Products, Customers, and
Orders means that we can run reports which look at customer purchase
history across online and POS sales to do things like find out who bought
vinESB 2.2 User’s Guide
6
more than $500 in wine in the last 3 years and loves Riesling. Custom
reports can be developed on request. Having all this data automatically
synced into Quickbooks means your Profit & Loss and Balance Sheet are
always up-to-date.
Slightly More Detail
A few more points are important to understand.
First is that Products are uniquely identified by vinESB using SKU, so it’s
important that when Products are created in the POS they are assigned
unique SKUs. This is how vinESB will know which Products in the Online
Store match which Products in the POS.
Second is that Consumers are uniquely identified by email address. A special
case here is when an old customer was created some time ago in the POS
without an email address (the POS does not require an email address where
the Online Store does) and then creates a new account for themselves in the
Online Store. A process for dealing with this situation will be detailed below.
Orders are synced internally based on Order ID, and vinESB includes an
internal monitoring process which will report on all orders synced including
the Nexternal Order ID and the Revel Order ID for each order.
Finally there are several second-level data elements which are integrated
along with Products, Customers, and Orders. Products fall into Categories
and have an Inventory level, Customers can be part of Customer Groups,
and Orders potentially include Tax, Discounts, and/or Shipping Fees. The
way these are integrated will be described in more detail below.
vinESB 2.2 User’s Guide
7
Note that if the WineryConnect Reward Club module is installed, it will
monitor Orders across the Online Store and POS, and it will automatically
update Customer Group for customers that qualify for your club and for
customers whose qualification expires (in addition to automatically
communicating with the customer about those events). See the
WineryConnect Reward Club User’s Guide for more information. Customer
Lookup and Keg Management vinESB modules are also available.
This additional detail about vinESB is shown in the following diagram:
Preliminary Questions
The Grape Squad will fully set up vinESB for you and train your team
(vinESB has no interfaces itself which your team will need to use – the
integration is automatic, but we will train them on best practices for using
vinESB 2.2 User’s Guide
8
Nexternal and Revel, understanding how vinESB integrates the two – as
described below). That having been said, there are a few points which will
come up as part of setup which you should be aware of as the Grape Squad
will need these details to complete setup.
Overall
The first point is that your Online Store will be synchronized with a particular
Establishment in Revel. During setup, our integration will query Revel to
read in the configured Establishments, and then we will set the
Establishment to integrate with in the following configuration screen:
Frequency and Direction
All main entities being synced (Products, Customers, and Orders) as well as
most next-level detail entities (inventory level, customer groups, etc.) can
be configured to sync on a daily basis, twice daily, or on an hourly basis.
Most can also be configured to sync only in one direction or the other (from
POS to online store or vise-versa) Default is to sync everything on an hourly
basis and in both directions.
Product
Products are synced both from from Revel into the online store (the normal
sequence for most products which start life in the Point Of Sale or Production
Control systems) and from online into Revel (for eGift cards and similar
which might be created online). By default when a product is created in one
system it is synced into a “staging area” on the target system.
When a product is created in Revel, it is synced into a hidden “Revel”
category in Nexternal. In Magento these products are created with no
category assigned by default.
vinESB 2.2 User’s Guide
9
o Note: there is an option in Magento to automatically create
categories and subcategories to match Revel categories and
subcategories, and to automatically put new products from Revel
into the matching subcategory in Magento, but usually this is not
desirable. Categories and subcategories in Revel are used to
control the way cashiers access products and this is generally
very different from the way online shoppers access products.
When a product is created in Nexternal or Magento it is synced by
default into a Nexternal/Nexternal category/subcategory in Revel (this
must be created as part of vinESB setup).
Uniqueness
vinESB uses product SKU to maintain uniqueness. When a product is
created in one platform without a SKU vinESB will automatically
generate a dummy SKU for those products. The only time SKU
becomes critical is in the case where an existing online store with
existing products is being paired with an existing Revel instance with
the same products already in it. In these cases vinESB will depend on
SKU matching to correctly associate products.
What to sync?
A key early question is which products to sync to online. The simplest way to
do this is by Revel subcategory. By default all products sync to vinESB (to
support common reporting and analytics across online and POS sales).
Selected subcategories in Revel can be selected to sync online (particularly
in Nexternal integrations) via configuration in vinESB. If desired, individual
products in Revel can be configured to not sync online by unchecking the
“Display on 3rd Party” option under advanced inventory options on the
product. This can be done by spreadsheet upload to mark a range of
products, or you can use the Copy To feature in Revel to change the Display
on 3rd Party flag and have that change apply to multiple products.
What is updated?
On initial sync in either direction (POS to online or online to POS) all product
details are synced. vinESB does not currently synchronize updates to
product details with the exception of inventory levels. When a product
(including child products in the case of Revel Matrix Inventory items) is
purchased in Revel, the new inventory level can be synced to online. If so
vinESB 2.2 User’s Guide
10
configured, this will cause inventory which is at zero or negative quantities in
Revel to be shown as Out Of Stock online. This is a key question to ask early
on as very often inventory levels in Revel are not accurate and items will
incorrectly be shown as Out Of Stock if this feature is turned on. Please let
your Grape Squad representative know if you want vinESB to synchronize
ongoing inventory level updates out of the gate or if you want to turn this
element on later.
Purchases made online will naturally update inventory levels in Revel when
those purchases are synced into Revel.
Gift?
If you plan to sell eGift cards online you will be pleased to hear that these
are integrated into Revel appropriately. So when an eGift card is purchased
into Nexternal that purchase is pushed into Revel as a gift card purchase
which, in turn, will be pushed into Quickbooks as a liability. When eGift cards
are redeemed online, those purchases will be pushed into Revel as gift card
usage (Applied Deposits) and pushed into Quickbooks as a reduction in
liability. Make sure your Grape Squad representative has configured Revel to
support gift cards if you plan to sell these online. We do not currently have a
way to support gift cards that can be used either in the tasting room or
online.
The following Revel reports detail gift transactions:
1. Reports -> Other Reports -> Gift Cards
2. Reports -> Other Reports -> Gift Transactions
Clothing?
If you plan to sell clothing online and in Revel you need to be aware that
Revel, Magento, and Nexternal all deal differently with parent/child
relationships between products (a t-shirt sold in multiple colors and sizes, for
example). In Revel this is called Matrix Inventory and your Grape Squad
representative can help you set this up such that cashiers can just select the
parent product (the t-shirt) and be presented with available child options
(color, size). Very often this isn’t an issue in the gift shop as individual child
items are barcoded for easy checkout. Online however you typically will want
customers to be able to select just the parent item.
vinESB 2.2 User’s Guide
11
In Magneto this capability is called a Configurable Product and a special set
of configurable attributes need to be set up and applied to child products
before those child products are available to be associated with the parent
product. The key trick here is in getting products which originated in Revel
as simple products to be treated as child products in Magento. Currently the
only way to accomplish this is to export those child products from Magento,
change their assigned attribute set in the exported spreadsheet to be
Configurable, delete the original child products in Magento, and re-import
from the spreadsheet (making sure the Revel ID and other information
pushed up from Revel remains intact).
In Nexternal child products do not exist as separate products. There is no
harm in syncing these child products up from Revel if desired, but they will
remain hidden and not be used in Nexternal. Instead in Nexternal child
product SKUs must be added as attributes of the parent product. Again ask
your Grape Squad representative or your Nexternal representative for
assistance in getting this set up.
In any event, actual purchases of child products online (particular size/color
combinations) will be pushed into Revel correctly as long as the SKU defined
online matches the SKU defined in Revel for those child products.
Customer
Customers are synced both from Revel to online and from online to Revel. As
with products, all customer details are synced when a new customer is
created, but detailed information (phone number, address, etc.) are not
currently kept synchronized on an ongoing basis due to complexities in
determining which system has the most reliable new updates to detailed
information. We are working on adding this capability.
Uniqueness
vinESB uses product email address to maintain uniqueness. When a
customer is created in Revel without an email address (which is
required by Magento and Nexternal) vinESB will automatically
generate a dummy email address for those customers. The only time
email becomes critical is in the case where an existing online store
with existing customers is being paired with an existing Revel instance
with the same customers already in it. In these cases vinESB will
depend on email matching to correctly associate customer records.
vinESB 2.2 User’s Guide
12
Default detail
Magento and Nexternal require much more information than Revel to create
a customer. Given this, vinESB can be configured to pre-populate that
additional information with default values (a dummy address and phone
number, for example).
Notifying customers
With a new integration where customer accounts may be created online
based on existing Revel accounts you will want to discuss with your Grape
Squad and Nexternal representatives when and how to notify customers of
their new online accounts and credentials. This will also be the case on an
ongoing basis for customers added to Revel and then synced to online.
Customer Group Categories
It sounds redundant, but given differences between how Revel, Magento,
and Nexternal handle Customer Groups (called Customer Types in
Nexternal), vinESB has established three categories of Customer Group:
Revel Only Customer Groups
Revel supports an ability for individual customers to be assigned to
multiple groups (so a customer might be Family and also a Case Club
member or Wine Club member). Neither Magento nor Nexternal
support this capability – in those systems a customer can be assigned
to one and only one customer group. As such vinESB supports the
notion of Revel Only Customer Groups. Customer Groups added to this
category can be assigned to customers in Revel but vinESB will ignore
them – it will neither add customers to these groups nor remove them
from these groups.
Shared Customer Groups
vinESB keeps Shared Customer Groups in sync between Revel and
Online. A given customer can only be in one Shared Customer Group
at a time and vinESB will keep that group assignment in sync across
online and Revel. Specifically when the WineryConnect Reward Club
module is in place, vinESB will automatically assign customers to the
correct reward club customer group and sync that into all systems.
Nexternal Only Customer Groups
One of Nexternal’s most powerful features is it’s robust wine club
module. When a customer has subscribed to a wine club in Nexternal
vinESB 2.2 User’s Guide
13
they are assigned to an appropriate wine club customer type. This is a
much different assignment in that it is generally tied to that
customer’s credit card and always to their subscription details. As
such, vinESB cannot modify these assignments based on Revel or
Reward Club activity or anything else.
o Important: As such, club customer types in Nexternal need to
be configured in vinESB to ensure that vinESB never takes
subscribers out of their subscriptions. If and when wine club
customer types are added or changed in Nexternal they need to
be appropriately updated in vinESB configuration.
o In vinESB we support having one Revel customer group for Wine
Club such that regardless of which wine club customer type the
customer is subscribed to in Nexternal they will be assigned one
common customer group in Revel.
Order
Orders are synced from Nexternal down to Revel (and can then be synced
from Revel to Quickbooks). Orders are also synced from Revel to vinESB and
Magento for common reporting across online and POS operations. We have
not yet implemented the final leg to sync orders from vinESB to Nexternal.
Sales Tax
vinESB will query Revel to retrieve Sales Tax items which have been
configured. In the Online Store multiple Sales Tax Items may exist, and
different sales tax may be charged for each order based on where the order
is being shipped to. All this detail is maintained in the Online Store, and so
you will use the Online Store reporting to determine what sales tax you need
to remit to each state (unless you are using Nexternal’s integration with
ShipCompliant and they are handling this for you).
Given that Revel does not need this level of sales tax granularity, our
integration pushes all sales tax into a single Sales Tax Item in Revel for your
reference. This Sales Tax Item is configured in the following screen:
vinESB 2.2 User’s Guide
14
Administration
vinESB is self-administering and once it is set up it will automatically sync
data between the POS and the Online Store on a schedule you decide on
(hourly, twice a day, or daily) for each data element (Products, Customers,
Orders, Categories, and Customer Groups).
This having been said, vinESB does support manual syncing of data which is
useful during initial testing and then at any point where you may not want to
wait for the scheduled sync.
Integration As A Service
vinESB supports what is known as Integration As A Service. This means that
each winery signing up for vinESB gets their own dedicated URL tied to their
own private database which we host in the “cloud” so that a winery named
Vinakor Vineyards would have a vinESB URL like
VinakorVineyards.VintrinsicConnect.com. When logging in here they will see:
vinESB 2.2 User’s Guide
15
This is the default Magento admin panel (vinESB is built on the Magneto
open source eCommerce platform). From here you can view all the native
Magento interfaces to report and analyze sales data, view customers and
products, and so on. In this configuration, however, all this will be combined
between Revel and Online. vinESB offers a bird’s-eye view of your commerce
data.
Two menu areas in particular have been added by vinESB. First the manual
sync menu is at the top of the System menu:
Magento Manual Sync
For Magento eCommerce sites, this manual synchronization is initiated by
the following screens:
First a data element is selected:
vinESB 2.2 User’s Guide
16
Next a source is selected in the From field:
Finally a target system is selected, and Start is clicked to initiate the
synchronization:
vinESB 2.2 User’s Guide
17
Nexternal Manual Sync
For Nexternal eCommerce sites, this manual synchronization is initiated by
the following consolidated screen:
Note that in the Nexternal manual sync screen it is also possible to reset the
“watermarks” for integration. This controls how far back vinESB looks for
changes. Each time vinESB successfully syncs any given data, it updates the
watermark for that data type. So if you want to re-sync customers, for
example, you would reset the Revel and/or Nexternal watermarks for
customer (depending on which system you were syncing from).
The second major menu area to be aware of is under System >
Configuration where the first sections control Nexternal and Revel syncing.
The Grape Squad will set up and maintain this on your behalf, so this is
covered in detail in the vinESB Setup Guide used by the Grape Squad.
vinESB 2.2 User’s Guide
18
Operation
Here we will cover basic scenarios for day-to-day operation of the integrated
commerce system, including POS and Online Store operations.
This diagram shows a high-level view of the scenario we will cover:
Step 1: Create Product
In an integrated environment we will typically create product first in the POS
(for instance after bottling a new vintage). We have implemented integration
in the other direction (to be able to sync new product from the Online Store
down into the POS), but for the sake of simplicity we are focusing on one
direction here using the example of a newly bottled vintage – the 2017
Riesling.
In Revel there are multiple ways to create product (in the iPad POS using
Manage Item Mode, via spreadsheet upload, and via several paths in the
online administrative interface). These are all equivalent and will work. The
important thing, as mentioned above, is that a unique SKU be assigned to
the product. You can do this by using the unique barcode as a SKU, or you
can create a pattern for the SKU to guarantee uniqueness (for instance using
a short text representation of the varietal, the year of the vintage, and part
vinESB 2.2 User’s Guide
19
of the unique barcode for a type of wine as in RIES_17_1234). Note that
Revel will also automatically generate unique SKUs for you if you want it to.
To do this simply export your product catalog in Revel and it will give you
the option to generate unique SKUs when exporting (or ask the Grape Squad
to do this for you).
In this example we will show creating a product using the Revel Quick Add
New Product feature:
As shown, we have created the 2017 Riesling in the Wines/White category
(which will control where that product is shown in the Revel POS), we have
assigned it to the Product Class PREMIUM WHITE (to ensure it is properly
reported on in the Revel Product Mix report), we have given the product a
cost and a price as well as an initial inventory amount (we bottled 1000
bottles in this example). Most importantly we have given the product the
unique SKU we have discussed.
Key Details
Inventory Levels
This is one of the key values in having POS and Online systems integrated –
to keep inventory levels in sync between the systems. By default initial
inventory levels will be synced from Revel to Online, then as orders come in
online inventory levels in Revel will be naturally adjusted (when the orders
are synced into Revel), and finally vinESB will also sync inventory updates in
vinESB 2.2 User’s Guide
20
Revel (purchases and adjustments) up to online. In the early stages of
adopting vinESB, however, some wineries prefer that we turn this
integration off. The reason is that if inventory levels are not accurate in
Revel (showing 0 or even negative inventory) those items will be shown as
Out of Stock online inappropriately. Of course once inventory levels are
correct this is one of the big benefits vinESB brings – that items which are
out of stock will automatically be shown as Out of Stock online. In Magento
you can also set a low-watermark such that when you only have a couple
cases of a given wine on hand in the tasting room this wine can be shown as
Out of Stock online to make sure orders can be fulfilled. We are working to
add this capability to our Nexternal integration.
Online Categories
Generally only selected categories/subcategories in Revel are available for
sale online. In vinESB we can configure what gets displayed online at the
subcategory level in Revel.
Automatic Categories
In the rare case where you want online categories to match Revel categories
vinESB can push product into the appropriate online category and make it
active. In most cases vinESB will push product into a hidden category
(named “revel” by default). You can then follow step 2 to enrich the product.
This will happen on a periodic basis based on configuration (once an hour,
twice per day, or daily) or we can force it to sync immediately using the
manual sync mechanism as shown here:
vinESB 2.2 User’s Guide
21
The most common way for product to be created at this point is for it to be
created in Revel and synced up to online. We also support creation of online
products which will be synced down into Revel. For instance you may create
an eGift certificate online in Nexternal and we will sync that product down to
Revel to be able to properly account for sales of that item. Product which are
synced from Nexternal down to Revel are placed in a Nexternal/Nexternal
category/subcategory within Revel.
Product Attributes
Another key point which will need to be discussed during setup is which
attributes should be synced in both directions (from POS to Online Store and
from Online Store to POS) and which attributes should only be synced in one
direction (e.g. from POS to Online Store). Commonly, for example, you will
create a Product in the POS (after bottling, for instance) with basic
information needed by the POS (e.g. SKU, cost, price, simplified name,
simplified description or no description), sync that product into the Online
Store, and then enrich the product listing in the Online Store for online
Customers (e.g. with a rich description, multiple images, etc.). You may also
want your Online Store pricing to differ from your POS pricing.
NOTE: We do not currently support attribute level product updates to
Nexternal. This will be added in the next release.
WineryConnect will discuss these issues with you during the Onboarding
Process, and then configure attribute integration behavior in the following
screen:
vinESB 2.2 User’s Guide
22
This attribute configuration can also be done at the Product level. For
instance, you may want pricing to be synced between the POS and the
Online Store in general, but for a particular product you want pricing to be
different in the Online Store, and not be updated when price in the POS is.
In these cases we will use the following Product Configuration screen to set
this up:
Step 2: Enrich Product (Optional)
In most cases step 2 is to enrich the product online as required to sell it. It
is possible to create items in Revel, even using Revel’s Manage Item Mode
where you can create an item, describe it, and take a picture of it all at
vinESB 2.2 User’s Guide
23
once, and have vinESB sync those items up to Nexternal ready to sell. In
most cases you will want to add professionally taken photos and/or rich
descriptions to products online which are very different from any images and
descriptions used in Revel. We will not delve into the details here of how to
enrich products in Nexternal and Magento as that is out of scope for this
document. Briefly, however, here is a quick glimpse of some of this
functionality in Magento:
And here is a quick glimpse of similar functionality in Nexternal:
vinESB 2.2 User’s Guide
24
An important point to highlight here is that in most cases online product
categories are different from POS product categories, and you will not be
using the integration’s capability to sync product categories. Instead, when a
product is initially synced from Revel to the Online Store it will have no
category and as such will not be available for purchase online. Once you
have sufficiently enriched the online product listing adding whatever
description, pictures, and additional attributes you have (e.g. wine type,
residual sugar, food pairings, Alcohol % by volume, etc.) you will need to
associate the product to an active product category in the Online Store to
make it visible. For instance in Magento here is the screen where that is
accomplished:
And here is where this is done in Nexternal:
vinESB 2.2 User’s Guide
25
At this point the product is fully configured and available for sale in both the
POS and the Online Store.
Step 3 (and Step3a): Create Customer
Now we need a customer to purchase the product. Again there are many
ways a customer can be created in Revel (via the POS, in the online
administration, via spreadsheet upload, or via integration with our Savor
social platform where customers can create their record in the POS by
signing your Savor Guestbook). Likewise, there are many ways a customer
can be created (or can create themselves) in the Online Store.
Note that vinESB does not currently synchronize updates to customer
information between systems. This is a more complicated process which we
are currently working to build into vinESB. At the current time we only sync
new customers between systems (with all detail) and then update customer
group/customer type assignment between systems when it is changed
(depending on Customer Group/Customer Type rules described below).
For this example we will focus on one path – creating a customer with an
email from the Revel online admin using the Quick Customer function as
shown here:
As you can see we have created a Test Customer with an email and put
them in the Family customer group. At this point this customer will be
synced to online (again automatically based on a schedule or via a manual
push). In the Magento integration the customer will receive an email with
their new login and an auto-generated password so they can log into their
vinESB 2.2 User’s Guide
26
new online account. If the option to auto-subscribe them to the newsletter is
turned on they will also receive an email confirming their new newsletter
subscription.
The customer can then log in online and update their account information
and that updated information will be synced down into Revel. Note that at
this point we are not syncing customer address information between the
Online Store and the POS.
As mentioned early in this document, a tricky and somewhat common
scenario here is when a customer who has been coming into the tasting
room for years and hasn’t specified an email address in the POS and then
creates an online account for themselves. Unfortunately there is no way
currently for vinESB to automatically recognize that those two customer
records (the old POS record and the new Online Store record) belong to the
same customer. In this case to combine these records will require the
following manual steps:
1. After the new Online Store record has been synced into the POS,
inactivate the new account.
2. Update the old account in the POS to have the email address used by
the new online account.
vinESB will now be able to automatically associate the new Online Store
record with the old POS record. The only down side here is that if the
vinESB 2.2 User’s Guide
27
customer created an order with their new online account before these
manual steps are executed, that new order will be associated with the new
account in the POS, but the (presumably much larger) purchase history
associated with the old POS account will be preserved, and subsequent
online purchases will also be associated to this account.
Key Details
Customer Groups/Customer Types
One area to note in particular is how vinESB handles Customer Groups in
Revel relative to Customer Groups in Magento and Customer Types in
Nexternal. Revel supports multiple Customer Groups per customer (so a
customer can be an Employee and also Family. Revel will automatically apply
the best discount for the customer based on the groups they belong to.
Magento and Nexternal, however, only support one Customer
Group/Customer Type per customer. As such we have had to develop some
mechanisms to handle this situation.
Revel Only Groups
Any groups which are only in Revel (which could be assigned as additional
Customer Groups for any given customer) need to be flagged as Revel Only
groups in vinESB. vinESB will ignore these in Revel – it will not remove
customers from these groups or add them to these groups.
Default Customer Group
In Nexternal a Customer Type is required. This is the Consumer Customer
Type by default. As such we have added a Default Customer Group control in
vinESB. If a customer is added to Revel without a group, they will be
assigned the Default Customer Group when they are synced to online.
In the screen shot below you can see that Wholesale, Retailer, Savor, and
Removals are defined as Revel Only groups and Consumer is set as the
default Customer Group.
vinESB 2.2 User’s Guide
28
Nexternal Wine Club
Another special case is Customer Types in Nexternal which are tied to wine
club membership. There are two issues here. First, vinESB should never take
a customer out of a wine club Customer Type. These are paid subscriptions,
and just because a cashier in the tasting room changed the Customer Group
for that customer in Revel does not mean they should be removed from their
online subscription. In addition, Nexternal uses multiple Customer Types to
support variations in wine club subscriptions (pickup vs. ship, for example).
In Revel most often one Wine Club customer group is preferred as there is a
single discount which applies to wine club members.
Both of the above issues are handled by one set of controls in vinESB. In the
screen shot below you can see that in addition to the Revel Only groups and
Default Customer group, a set of Nexternal Wine Club customer types is
defined along with a Default Wine Club. Customer Types defined here will
not be touched by vinESB, and customers assigned to any of those customer
types will be assigned the Revel Customer Group selected under Default
Wine Club (in this case the Wine Club customer group).
vinESB 2.2 User’s Guide
29
Shared Customer Group/Types
Revel Customer Groups not defined as Revel Only Groups, along with
Nexternal Customer Types not defined as Nexternal Wine Club, are shared
between Nexternal and Revel. When customers are assigned to any one of
these in either system vinESB will copy that assignment to the other system.
In Nexternal the customer will simply be assigned to the selected customer
type. In Revel the customer will be assigned to the selected customer group,
and in addition they will be removed from any other Shared Customer Group
they have belonged to. In other words in Revel a customer can only be in
one Shared Customer Group at a time.
Note that the WineryConnect Reward Club module will also change customer
type/customer group assignments based on reward qualification criteria you
set (total milliliters purchased, number of bottles, or dollar amount). The
Reward Club will also update customer notes in Revel so that Revel cashiers
can see expiration dates for the Reward Club. There are some additional
nuances around how this assignment happens which are covered in the
WineryConnect Reward Club User’s Guide.
“Dummy” Customer emails
Another point worth noting is that Customers with no email address in the
POS (as noted above the POS does not require customer email addresses,
bu the online store does) can still be synced to the Online Store. This will
support full transaction reporting in the online store (integration of Orders
vinESB 2.2 User’s Guide
30
from the POS to the online store has been developed but has not yet been
released) using the additional transaction reporting available there. In this
instance, given that the Online Store requires an email address, vinESB will
automatically generate a unique “dummy” email for these customers.
WineryConnect will work with you to decide whether customers without
email should be synced to the online store or not, and what the email suffix
for such “dummy” emails should be and then will configure this for you.
NOTE: We do not currently support attribute level customer updates to
Nexternal. This will be added in the next release.
Auto-newsletter subscription
With the vinESB auto-newsletter subscription option you can decide that if a
customer gives their address to a cashier in the POS that they clearly are
interested in communication from you and as such they should be
automatically subscribed to your newsletter when that customer is synced
into the Online Store.
NOTE: We do not currently support auto-newsletter subscription to
Nexternal. This will be added in the next release.
These configuration items (among others) are set in the following screen:
Step 4: Place Order
Obviously this step is executed by the customer in the Online Store and so
there are no details which need to be covered here around that interaction.
vinESB 2.2 User’s Guide
31
The key thing to cover here is that orders from the Online Store are not
synced into the POS until they are final (fully paid). So follow whatever
fulfilment process you use with your Online Store to complete the order and
it will then be automatically synced into the POS.
One additional note – we do not currently sync order updates between the
Online Store and the POS. Revel does not allow us to update orders via their
API. In the rare case where an online order needs to be updated after it is
placed (and fully paid for such that it is integrated into the POS), those
updates (presumably adding a discount or removing shipping fees) will need
to be manually made in the POS for that to reflect the changes.
Similarly, vinESB syncs order data from Revel up to vinESB where we have
access to a flexible range of reporting options across online and POS sales
data. Yet again, the orders will be automatically synced or can be manually
pushed (generally only during testing and evaluation).
Key Details
vinESB Employee
The Grape Squad will set up a vinESB employee in Revel so that we can
configure vinESB to push orders into Revel as that employee. The reason we
do this is so you can use the Employee filter in most Revel reports to see
online orders only. Several Revel reports do explicitly include a Web Orders
Only filter, and this functions in the same way.
Payment Type
Online orders are pushed into Revel with a payment type of Credit+ Other.
Revel payment types have been mapped directly into vinESB to support
reporting on Revel orders within vinESB.
Order Type
At Nexternal’s request, we built an ability to map the Nexternal Order Type
into the Revel Order/Dining Option. This way Wine Club orders can be
reported on in Revel by filtering on Order/Dining Option.
Gift Certificates
We are currently working on a mechanism to better handle gift certificates
sold online and then redeemed by consumers online. Will update this
document when these changes are complete.
vinESB 2.2 User’s Guide
32
Taxes
Taxes collected online will vary by state and sometimes even by county.
Nexternal has a well proven integration with ShipCompliant, and if you take
advantage of this option ShipCompliant will manage this for you. You can
also manage this yourself and there are many options in Nexternal and
Magento to do so. In any event the idea is, same as order fulfillment, that
this is handled in the online store using the facilities supported by the online
store.
vinESB will sync all sales tax collected online into a single Individual Tax in
Revel just for reference purposes. This is configured via these controls:
Discounts
Discounts are defined very differently between Revel, Magento, and
Nexternal. In general discounts given in the tasting room are very different
from discounts given online in any event. As such we have made no effort to
synchronize the definition of discounts across systems. Instead we simply
synchronize the actual discounts given. To do this we take whatever
discounts were given online and fit them into Revel’s discount model which is
to have Order level discounts and Item level discounts. So in Magento, for
instance, a Catalog Price Rule discount will be sent into Revel as an Order
level discount whereas a Shopping Cart Price Rule discount will be sent in as
an Item level discount. There are some detailed scenarios where what is in
vinESB 2.2 User’s Guide
33
effect a discount can be given in Nexternal and Magento which don’t fall into
these categories. In these cases we have mapped these as Item level
discounts in Revel. In all cases vinESB will include what it can in terms of
discount description.
Shipping Fees
Both Nexternal and Magento have extensive control over shipping fee
calculation including direct integrations to carriers to compute the base
shipping fee driven by individual bottle weight (which we will soon be
importing into vinESB from vintrace and auto-populating in Nexternal and
Magento). The important thing to note here is that vinESB will pass
whatever is calculated here into Revel as a Service Fee on the order.
Step 5: Reporting
The final proof that the full integration works is to run reports in the POS
and see the online order data. In the example we are working through here,
the new customer ordered 24 bottles of the new 2017 Riesling as shown
here:
This order was synced into the POS. The following set of screen shots will
show different reports (and different sections of different reports) to
highlight where different information from the online order shows up in
Revel. Note that there is a new filter in most Revel reports which will allow
you to see only the online order activity or to see both online and POS order
activity.
vinESB 2.2 User’s Guide
34
The first thing which is interesting to note is that when the new customer
checked out online they entered more complete information about
themselves. In the following screen shot we can see that this new
information (phone number) was synced down into Revel.
We can also see that the WineryConnect Reward Club module kicked in and
added this customer to the Vintage Member group (based on their purchase
of over 12 bottles) and updated the Customer Notes section to reflect their
club expiration date as Club expiration date: ###04/17/2020###. See the
WineryConnect Reward Club Quick Start Guide for more information on how
this works.
Sales Summary
Moving on to the transaction itself, the following is the top of the Sales
Summary report in Revel:
vinESB 2.2 User’s Guide
35
Here you can see the following:
1. A total of 1 transaction is shown
2. The Total Product Sales of $576 matches the Magento Subtotal of
$576
3. The Total Service Fees of $53.12 matches the Shipping and Handling
of $53.12.
4. The Total Discounts of $144 matches the 25% Family Discount of $144
shown in Magento.
5. The Net Sales of $485.12 is not shown in the Magento order summary,
which adds tax to get to the Grand Total, but $485.12 is the Grand
Total less tax.
Moving on to the bottom section of the Revel Sales Summary as shown
here:
vinESB 2.2 User’s Guide
36
Here you can see the following additional items:
6. Total Taxes and Surcharges of $4.25 matches the Magento Tax
7. Other Payment type (which also equals Net to Account For and Total
Payments) matches the Magneto Grand Total and Total Paid.
vinESB 2.2 User’s Guide
37
Product Mix Report
Moving on to the Revel Product Mix Report we see the following:
Here again the following items match:
1. Total Sales matches the Magento Subtotal.
2. Item Discounts matches the Magento 25% Family Discount (and
Discount Amount at the item level).
3. Total Sales inc. Discounts (and Grand Total with Discounts) matches
the Magento Row Total at the item level.
Order History
Under Order History we see the order itself (Order # 100000600 in
Magento) came into Revel as Order 2852 and we can see the following
matches:
1. The Created Date and Updated Date on the Revel Order matches the
Order Date in Magento.
2. Customer in Revel matches the Magento Customer.
3. Updated By shows as the Online Order user. This is a special user
which has been set up in Revel and configured in vinESB to clearly
identify orders created by the integration.
4. Subtotal in Revel matches Subtotal in Magento
5. Service Fee Total matches Shipping & Handling in Magento
6. Tax in Revel matches Tax in Magento
7. Final Total matches the Magento Grand Total
8. Under Order Items we see that 24 bottles of 2017 Riesling were
correctly added to the order
vinESB 2.2 User’s Guide
38
9. We see that the price of these items matches at $24.00 (though this
could be changed separately online)
10. We see the Discount Amount was calculated by vinESB to be
$6.00 per bottle with the Discount Reason of “25% Family Discount.”
This is done because in Revel this kind of discount is applied as an
item level discount whereas in Magento this is a total discount on the
order of $144. So vinESB divides that discount by the 24 bottles in the
order to arrive at the $6.00 per bottle discount.
11. Service Fees again matches Shipping & Handling in Magento.
12. Under Payments, the $489.37 paid matches the Grand Total and
Total Paid in Magento and has been filed under the Other payment
type in Revel.
Discounts
Under Other Reports > Discounts in Revel we see the following:
Here again:
1. Item and Quantity match Magento
2. Date matches Order Date in Magento
3. Reason matches the discount name in Magento
4. Amt matches the discount given online
5. Order Payments matches Total Paid in Magento
vinESB 2.2 User’s Guide
39
Product Inventory
Finally, in the Product Inventory report we see the following:
Where we note that the original 1000 bottles of 2017 Riesling has correctly
been reduced to 976 (or a total inventory value of $ 4557.92 based on a
cost per bottle of $4.67).
vinESB Omnichannel Commerce Reporting
When we started WineryConnect back in 2012 our vision was to “close the
loop” for merchants selling online, in a physical location, and mobile (at
festivals and such). This is what’s come to be known as Omnichannel
commerce (this phrase didn’t exist when we started). We have now achieved
this vision. vinESB automates Omnichannel commerce, resulting in reduced
effort and an ability to scale online revenue, but just as importantly vinESB
is in a unique position to offer a bird’s-eye view of your all your commerce
operations when configured to sync order data from Revel up to vinESB.
We built vinESB on top of the open source Magento framework intentionally
to be in a position to take advantage of the vast library of Magento reporting
extensions, and also to be in a position to develop our own reporting and
analytic extensions to interrogate the open Magento SQL database. Browse
the full Magento Marketplace here: https://marketplace.magento.com/
As an example, a company called Amasty (https://amasty.com/) sells a
range of Magento extensions like their Advanced Customer Segments
module which for a one-time $119 fee allows you to “Segment your
vinESB 2.2 User’s Guide
40
customers and guest visitors by various parameters. Export segmentation
results for careful analysis and take advantage of targeted marketing
campaigns.” Here is an example segmentation rule from the module user
guide:
Another possible example is Amasty’s $129 Advanced Reports module which
includes capabilities like this:
vinESB 2.2 User’s Guide
41
Quickbooks Integration
Intuit invested substantially in Revel (see
https://www.bizjournals.com/sanfrancisco/blog/2015/08/revel-systems-
ipad-apple-intuit-roth-unicorns.html) resulting in a tight integration between
Revel and Quickbooks which we have proven works for wineries.
WineryConnect has gone further here. We hired a seasoned winery
bookkeeper, who also happens to be a Quickbooks Pro Certified Advisor (an
elite group of consultants certified by Intuit at the highest level) and a Revel
reseller as well. In fact Shelly worked with the team at Revel that developed
the Revel/Quickbooks integration. Shelly White has done winery
bookkeeping for decades in the Finger Lakes and she wrote a 60 page
manual for us on how the Revel/Quickbooks integration works for wineries.
Please request a copy if this is of interest.