X-Cart:POS system for X-Cart
Contents
Overview
POS system for X-Cart is a module that allows you to use your X-Cart store both as an interface for web sales and a Point of Sale system. With this module, you can sell offline and online using the same software, which means you get a single inventory tracking and order management system for both your online and retail stores. Update inventory and product properties by using a barcode scanner that finds the product instantly. Scan the barcodes, accept payments, print receipts and barcode labels via X-Cart. It has never been so easy!
System requirements and installation
See POS system module system requirements and installation
Getting started
To start using the X-Cart POS module on your system, do the following:
- Ensure that your system meets the software and hardware requirements, then install and enable the module.
- Configure the module. First, connect the module with the printers that you intend to use for printing barcodes and receipts and set up your printing preferences in the module's configuration settings:
- POS system module configuration settings
If you experience Java security warnings related to QZ Print applet, follow the recommendations in this section: - QZ Print applet related configuration
For more information on QZ Print and its use by the module, see: - Notes on the QZ Print applet
- POS system module configuration settings
- To get a feel of how your X-Cart store works with the POS system module installed, try using the module features in both the store's Admin/Provider back end and Customer area. To begin with, while being logged in to the store as administrator (in X-Cart PLATINUM edition - as provider), add some products to your store's catalog (or edit your existing products) and add UPC codes for them. You can provide your own UPC codes or scan the existing barcode labels of your products so the UPC codes are "scanned" into the system from these barcodes. In the long run, all the products that you are going to sell via POS will need unique UPC codes.
- Make sure that all the product items that you are going to sell via POS have barcode labels attached to them. For product items that do not yet have barcode labels, print your own barcode labels based on UPC codes.
- Set up a "POS operator" customer membership, create a customer account for the user or employee who will accept customer orders at POS terminal and assign the "POS operator" membership to this account.
- In the Customer area, log in as POS operator and edit your user profile to add the POS location address to your address book (This address will be used by default as the address of the customer checking out via POS). Then try adding some products to cart via the "Checkout POS" section (Make sure you can add products to cart both by scanning their barcodes and by entering their UPC codes manually).
- Try creating a POS order by checking out with the products contained in your shopping cart. The first time you do it, go to checkout using X-Cart's standard Checkout button and finish creating the order using X-Cart's regular checkout flow. During checkout, use the address you configured in your POS operator user profile and select the payment method that you want to be used in future for all POS orders created using this POS operator account. Your payment method selection will be saved as default, and, later on, when creating POS orders using this account, you will be able to use the simplified order creation flow (via the Process order button) where you will not have to select a payment method again. If at some point in the future you will need to switch to a different payment method for orders of this POS operator, simply use the Checkout button again and select a different payment method.
- Try printing a receipt for the order that has been created.
Once you've made sure everything works as expected, you should be ready to go live with your POS-enabled X-Cart store.
Activating and deactivating the module
If the module POS system for X-Cart is installed, but not active, you can enable (activate) it.
To enable the module:
- Go to the Modules section of your store's Admin area (Settings menu->Modules). This opens the list of your store's installed modules.
- Locate the entry for the POS system for X-Cart module and select the respective check box on the left.
- Depending on the X-Cart version, you may need to click the Apply changes button to apply the changes.
The module will be enabled.
It is possible to temporarily disable (deactivate) the installed POS system for X-Cart module. Deactivation stops the module from operation, but it does not remove any settings you made to the module configuration nor clear any data that was generated during the period that the module was in operation. If you wish to completely remove all the data related to using the module, you need to uninstall it. See POS system for X-Cart: Uninstallation for more info.
To disable the module:
- Go to the Modules section of your store's Admin area (Settings menu->Modules).
- Locate the entry for the POS system for X-Cart module and unselect the respective check box on the left.
- Depending on the X-Cart version, you may need to click the Apply changes button to apply the changes.
The module will be disabled.
Configuring the module
POS system module configuration settings
After installing the module, you must adjust the module's configuration settings. Do the following:
- In the Modules section of your X-Cart store’s Admin area (Settings -> Modules), click the Configure button next to the name of the previously installed and enabled POS system module:
The Pos system for X-Cart module settings page opens: - Once the module settings page is fully loaded, allow a few seconds for the QZ Print applet to load (See Notes on the QZ Print applet for more info). Here the applet is employed to detect locally installed printers. We need this information so we can select which of the printers will be used to print barcodes and receipts for the POS system module. Once the applet discovers the presence of installed printers, the QZ Print Plugin status on the module settings page changes to "Printers are found":
When this happens, the list of printers installed in the system should be loaded in the Barcode printer name and Receipt printer name drop-down boxes in the Printer settings section. - Adjust Printer settings:
- Use the Barcode printer name and Receipt printer name drop-down boxes to select the printers that will be used to print out, respectively, barcodes and receipts. Failure to specify any of the said two printers will render the respective functionality (i.e., the buttons and sections of the user interface that control the respective printing operations) unavailable. For example, if you do not select a Receipt printer, you will not be able to print receipts.
- Use the Barcode line width (in dots) field to set the minimum line width in a printed barcode. The smaller this value is, the more lines of the barcode can be printed on a barcode label. The number of barcode lines depends on the number of characters in the product's UPC, a code added on the product details page (The greater the length of UPC, the longer the barcode). The recommended value for the ‘Barcode line width (in dots)’ field is "1" or "2", but, regardless of the value you specify, please make sure that your barcode scanner can recognize the barcodes printed with this line width. The images below demonstrate a barcode printed with two different values of the minimum barcode line width parameter:
- Use the settings in the Orders department notifications and Provider notifications sections of the page to set your notification preferences.
- Click Submit to save the changes.
Attention new module users: A word of advice for those of you who, before purchasing to the module POS system for X-Cart, used to have product UPC codes in the SKU field of product details: To use the UPC field supported by the POS system module, you do not have to re-enter all those codes manually; there is an instrument that can help you to migrate your existing UPC codes from the SKU field to the UPC field with just a couple of clicks. In the lower part of the module settings page, two options are provided:
- Copy SKU to UPC if the last is blank only
- Copy SKU to UPC anyway
You should choose the option that best suits your needs and click the Copy button. The existing SKU codes will be copied and saved as UPC codes according to the method you selected.
As QZ Print Plugin belongs to the type of applets which - in theory - may gain full access to the system of the computer on which it is run, and Java takes steps to protect end users from the security risks that may be posed by running such applets, while using the module, you may encounter some security warnings from Java. More information about it is available here: http://qzindustries.com/j7u45 To disable such warnings, you can install a self-signed certificate as described here: http://qzindustries.com/CertNotValid Alternatively, you can manually allow the applet to run every time you open or refresh the page that contains the applet. The certificate can be downloaded here: https://code.google.com/p/jzebra/downloads/detail?name=qz-free%20certs.zip&can=2&q=
Notes on the QZ Print applet
The module POS system for X-Cart employs a Java based web applet named QZ Print (https://code.google.com/p/jzebra/) to connect with the printers used to print barcodes and receipts. After the module has been installed, the applet files qz-print.jar and qz-print_jnlp.jnlp can be found in the skin\common_files\modules\POS_System\lib directory on the server where your X-Cart installation is running. Being a Java based applet, QZ Print operates on the client side: from the said directory on the server, the applet is loaded via the web browser onto the computer of the POS system module user where it is employed to discover the printers installed on the system and to send raw commands directly to these printers. The loading of the applet in the client browser happens every time the user opens or refreshes a page that involves connecting to the Barcode or Receipt printers. This includes:
- Pos system for X-Cart module settings page (Here the applet is needed to detect all the printers installed in the system and to tie in the Barcode printer name and Receipt printer name settings with specific printers);
- Pages where you can print out barcodes for specific UPCs (Here the applet is used to find a specific printer in the system by the name associated with the Barcode printer name field as provided in the module settings and to send print commands to it);
- Order details page in the store's back end /Invoice page in the Customer area where the user can print out a receipt (Here the applet is used to find the receipt printer by the name provided in the Receipt printer name field in the module settings and to send print commands to it).
The applet download size is rather small (around 100 kB); however, it takes some time to be found, downloaded and run. For most users this means a noticeable lapse (normally, a few seconds) between opening/refreshing a page on which the applet is embedded and being able to perform the action involving communtication with printers on that page. For example, on the Pos system for X-Cart module settings page, there is no way a user can select a printer for use with the module before the applet is loaded and obtains a list of printer names from which the printer can be selected; this means the user has to wait a couple of seconds for the applet to be found, loaded and do its work. The Pos system for X-Cart module settings page and pages for printing barcodes keep the user informed on the applet’s progress by displaying its current status at the top of the page. Normally, one can see the following consecutive statuses:
- Initial state:
- Applet has been found and is being loaded:
- Applet has been loaded; searching for printers:
- One or more printers have been found:
(The status shown above is used for the Pos system for X-Cart module settings page; the status displayed on the Barcode page uses the actual name of the barcode printer).
On the Order details page in the store's back end and on the Invoice page in Customer area, the applet loading status is not visible to users; however, the page functions in a similar way, and the Print receipt (jZebra) button only becomes available after the applet is fully loaded.
Setting up an account for "POS operator" user
Such POS-related tasks as adding UPC codes for products that will be sold via POS, printing barcode labels for them and printing receipts for POS orders can be performed by any user with full access to the store's Admin or Provider area (In X-Cart PLATINUM, providers, of course, can access only their own products and orders).
However, there is a number of POS-related tasks that need to be performed in the Customer area. These are all the tasks related to accepting orders from visitors shopping at your POS location, such as:
- adding items to cart by scanning their barcode labels,
- placing and processing the order,
- printing the receipt.
The user who will perform the above named tasks at your store will need a customer account with a special type of membership: "POS operator". As a POS operator, this user will have access to some sections and controls in your store's Customer area that will not be accessible to customer users without such a membership. This includes:
- a special form for adding products to cart by UPC;
- a separate simplified checkout flow that does not involve entering the customer's address and payment method, but uses information stored in the customer's profile and creates a new order as Processed;
- a button allowing to print receipts using a special receipt printer.
To create a special membership level for the user who will act as POS operator, go to the Edit Membership levels page (Users menu -> Membership levels) in the Admin area and create a new customer membership level as provided by the article User Memberships:Creating membership levels . The POS operator membership does not have to be called "POS operator"; you can use a different name. However, you must specify that this membership is your "POS operator" membership by selecting the respective check box:
Using the POS system module (Admin area)
Adding UPC codes for new and existing products
To create a barcode for a product, X-Cart's POS system module uses the value of the UPC (Universal Product Code) field in the product's details. This means that, before generating a barcode for any of the products in your store, you must add a UPC for this product. A UPC code for a product can be added via the product's details page:
If the product you are creating or editing does not have a barcode provided by the manufacturer, you will have to create your own UPC for it. To do so, type in the desired UPC code manually into the UPC field and save the product details. If the product already has a barcode that you want to use in your store, you can automate the process: simply place the cursor inside the UPC box and scan the product's barcode label with your Barcode scanner. The scanner will read the UPC code from the barcode, and it will appear in the UPC field. After this you will only need to save the product details.
Once a UPC code is added for a product, a new link - "Barcode" - appears in the section menu:
Printing barcodes
The POS system for X-Cart module allows you to print barcodes for each product in your store individually or for multiple products at once. A prerequisite for printing barcodes is that the products for which you are going to print barcodes have been provided with UPC codes.
To print a barcode for a single product:
- In the Products management section of your store's Admin area (Catalog -> Products), find the product for which you need to print a barcode and open it for editing.
- Click on the "Barcode" link in the section menu to access the page where you can print the product's barcode and wait for the QZ Print applet to load:
- Use the N items input box to specify the number of barcode labels that needs to be printed, and click Print barcodes.
The Barcode printer will print the specified number of labels.
To mass-print barcodes for multiple products:
- In the Products management section of your store's Admin area (Catalog -> Products), find the products for which you need to print barcodes and select them by putting tick marks in the check boxes opposite their names.
- Click the Print barcodes button below the products list to access the page where you will be able to print barcodes for the products that have been selected:
- Once the QZ Print applet has loaded, you will see a page like following:
- Use the N items input box to specify the number of copies that need to be printed, and click Print barcodes.
The Barcode printer will print the specified number of labels for each of the selected products.
Printing receipts (Admin area)
To print a receipt for an order via the store's Admin area, you must find the order, open its details page and click Print receipt (jZebra):
Using barcodes to find products
When you have a product's barcode and need to find the product in your store's database in order to view or edit its details, you can do so quickly and easily by using your barcode scanner:
- Go to the Products management section where the "Search for products" form is located and click the [+] More search options link to access the field that allows you to search by UPC:
- Click inside the UPC field so the focus is on this field when you use the scanner to read your product's barcode:
- With your scanner, scan the barcode. The UPC code corresponding to this barcode appears in the UPC field:
- Click the Search button.
Once a product with the submitted UPC code has been found, it will be displayed in the list of search results:
Using the POS system module (Customer area)
Adding products to cart by UPC
When a user acting as POS operator is logged in to their user account, they can see a "Checkout POS" link in the store's "Special" menu:
This link allows the POS operator to access the cart page with a special form through which they can add products to the shopping cart by UPC.
The form for adding products by UPC appears at the top of the page - above the cart contents:
The default method for adding products to cart by UPC is with the help of a Barcode scanner. When the scanner "reads" the barcode into the POS system, the UPC code represented by this barcode is displayed in the UPC field, and the form is automatically submitted.
The form also allows the user to enter UPC codes manually. To switch to manual mode, the user should click the link "Manually" at the top of the form. In manual mode, the user must submit the form by hand using the Submit button provided next to the UPC field:
If the store's database contains a product with the UPC that was submitted, the product is added to cart; otherwise, an error message like the following is displayed:
Creating a POS order
After the product has been added to cart, a new button - Process order - appears next to X-Cart's standard Checkout button:
By using this button the user can create the order at once - without having to provide information about the customers' address or payment method.
Important:
- A prerequisite for successfully creating an order via the Process order button is that the profile of the user acting as POS operator must be properly configured (i.e. it must contain information about the user's address and payment method).
- For orders created by users with the "POS operator" membership, no shipping information is provided in the order details, since the goods are deemed to be sold at a POS location, without any shiping service involved.
Printing receipts (Customer area)
After a POS order has been created, on the Invoice page - next to the Print receipt button - there appears a button titled Print receipt (jZebra):
The Print receipt (jZebra) button allows the user to print the receipt for the order using the Receipt printer installed in the system.
To print a receipt for an order created earlier, the user must go to the Order history page, find the order for which the receipt needs to be printed, click on it to open the order details, and then, on the Order invoice page that will be opened, click the Print receipt (jZebra) button: