The Locations feature makes it possible to differentiate visibility of products across different “locations” and to allow customers to place orders for pick-up at specific locations. A location is a virtual or physical place of stocking and accounting inventory. Locations enable you to pursue a business model where there is a strong relation between webshop and physical shops/warehouses. When using locations, customers can select a physical location in which to collect the order.
What is a location?
A location is a virtual or physical place where items are located and accounted. A location may resemble a physical location within a warehouse, a virtual location allocated to ensure stock for sales by webshop, a physical outlet open for customers, or in whatever way it otherwise makes sense to use.
A location may be attributed address information, including geolocation information. Moreover, it is possible to specify Opening Hours for each location.
What can be specified per location?
- Whether a product is associated with a product menu at a location. By only relating a product to menus for the desired locations it can be controlled whether a product is visible and thus available from a specific location.
- Whether a product menu is visible/accessible from a location.
Normal Opening hours, Special Opening hours and Lead time per location.
Hence, product menus, products and availability may vary from location to location.
Note that generally the relation between location and product menu does not have to be made explicitly. Contrary to product-location relations, which needs to be made explicitly, product menus are related to all existing locations per default. If however an explicit relation is made between a location and a product, the location will loose its relation to all product menus for which a relation has not been made explicitly.
All eSeller Cloud webshops have at least one location (WEBLOCATION). If no other locations exist (e.g. if no other location than the webshop is needed), WEBLOCATION will be the default location. All products must be related to at least one location – otherwise they will not be accessible in the shop. For shops that do not support locations, all products are related to the WEBLOCATION.
IMPORTANT: For integrated customers that do not use locations (do not have any other that the default WEBLOCATION), it is very important that the Data Origin is set up so that it uses a default location (WEBLOCATION). This means that the system is allowed to automatically relate all integrated products and product-menu relations to the selected location. If this is not done, all products/product menus that are imported through the Data Origin will not be accessible in the shop.
Possible use case
A company selling shoes comprises of an eSeller Cloud webshop as well as several physical shops from which it is possible to collect orders made in the webshop. Items can be ordered through the webshop, but they are accounted for and collected from one of the physical locations. Products, Product menus and availability may vary across the different locations.
This business model is supported by virtue of the Locations feature. A location exists for each of the physical shops with available products, product menus and availability.
During the process of placing an order, the customer must select a location – at the latest when the first product is added to the basket. This step is necessary to ensure that the customer can only add products to the basket that are available from the same location – otherwise the customer will not be able to collect the order from a single location.
Hence, the typical flow of ordering is:
- The customer enters the webshop
- The customer selects a location
- The customer browses the products
- The customer adds one or more products to the basket
- The customer completes the checkout process
- The customer travels to the physical location and collects the order
Setting up locations
Locations can currently only be managed for integrated shops. This means that all data and relations regarding locations must be defined in import files.
See the documentation on the import schema for more information:
All existing locations in the shop can be viewed at Base setup > Webshops > Locations.
From here it is possible to specify one or more e-mail addresses per location (separated by semicolon). Location e-mail addresses will receive a copy of the order confirmation mail (or another content design dependent on the setup of “Design template for Internal order confirmations” Under Base setup > Company info > Email addresses) every time an order is made on the location in the webshop.
Displaying Location information
Location information can be displayed either by using eSeller tags (runtime values) or by using the LocationSelector content control.
The following location information can be displayed using eSeller tags (available from the Context runtime value container):
- Location.ExtLocationID: Location ID that was used in import file
- Location.LocationName: Main name for location
- Location.LocationID: Internal Location ID
- Location.Name: Adress Name
- Location.Name2: Adress Name2
- Location.IsVisibleInShop: Defines if location is visible.
- Location.IsEnabled: Defined if location is enabled.
- Location.Address: Address line 1
- Location.Address2: Address line 2
- Location.City: Name of the city
- Location.PostCode: City postcode
- Location.County: Name of county
- Location.CountryID: Internal Id of coutry location is in.
- Location.EmailAddress: Email for location
- Location.Contact: Contact data
- Location.PhoneNumber: Phone number for location
- Location.FaxNumber: Fax number for location
- Location.Longitude: Longitude of location
- Location.Latitude: Latitude of location
- Location.PosID: Point of sale system ID
- Location.CmsTextForNormal: Text for normal opening hours
- Location.CmsTextForSpecial: Text for special opening hours
- Location.LeadTime: Time during which placed order is beeing prepared to pick up.
Note that because the information is located in the Context value container, the information will be according to the currently active location in the shop.
Displaying a Location picker
As stated earlier, it is necessary that the customer selects a location at some point in the process of placing an order in the shop. A location selector can be created using the LocationSelector content control:
|ControlType||Specifies the control type||LocationSelector|
|Mode||Specifies whether the output should be a simple list with links which navigates to a location (html) or if it should set a global variable called 'LocationList' which contains a list of JSON objects containing location information.||"json" or "html"|