Point of Sale for WooCommerce

NOTE

This product is no longer sold on WooCommerce.com. This document has been left available for existing users, but will no longer be updated.

Point of Sale for WooCommerce turns any web browser into a cash register, allowing you to holistically manage your products, orders and customers.

Installation

↑ Back to top
  1. Download the extension from your WooCommerce dashboard.
  2. Go to Plugins > Add New > Upload and select the ZIP file you just downloaded.
  3. Click Install Now, and then Activate.

More information at Install and Activate Plugins/Extensions.

Setup & Configuration

↑ Back to top

Once you have activated the Point of Sale (POS) extension, a notice will appear, prompting you to either continue with setup, go to registers or go to outlets. Upon installation, a default register and a default outlet is created, both of which cannot be deleted.

The address used for the default outlet is based on the online store address found under WooCommerce > Settings > General.

Setting up the outlet

↑ Back to top

If you want to add additional outlets:

  1. Go to Point of Sale > Outlets > Add New.
  2. Enter the name of the outlet you want to create.
  3. Go to the Outlet data panel, and select the appropriate section to enter the applicable information used for printing on receipts.
    • Addressthe outlet’s location is also used to calculate the tax for orders placed from registers assigned to this outlet.
    • Contact – the contact details for the outlet.
    • WiFi – for shop managers who want to share their wireless internet with their customers.
    • Social – enter social media details and handles for this particular outlet.

Setting up the register

↑ Back to top

If you want to set up additional registers:

  1. Go to Point of Sale > Registers > Add New.
  2. Enter the name of the register you want to create.
  3. Go to the Register data panel, and select the appropriate section to enter the applicable information.
    • General section
      • Outlet – the assigned outlet to this register. Only users assigned to the selected outlet can access this configured register.
      • Product Grid – the products that are loaded in the product grid. By default, the Categories Layout grid will display the products in category format.
      • Grid Layout – the appearance of the products within the grid. You can choose between a grid, rectangular and list format.
      • Receipt Template – the receipt template used when placing orders through the register.
      • Prefix & Suffix – enter a prefix or suffix to the order numbers generated when placing orders through the register.
      • Customer – assign a default customer that is loaded when opening this register.
      • Cash Management – enable starting cash float and cash movements.
      • Dining Option – set the default dining option for this register. Requires the dining option module to be enabled.
      • Default Mode – choose what mode the product search bar loads in; search or scan mode.
    • End of Sale section
      • Print Receipt – this will toggle the print receipt function by default.
      • Gift Receipt – this will allow cashiers to print gift receipts
      • Email Receipt
        • No – the email receipt toggle will be off by default.
        • Yes, for all customers – this will toggle email receipts for all customers, including guest customers, by default.
        • Yes, for non-guest customers only – this will toggle email receipts for registered customers only by default.
      • Note Request
        • None – this will not prompt a note.
        • On save – this will only prompt for a note when saving/holding orders.
        • On all sales – this will prompt for a note on all orders, including saving/holding orders.
      • Change Cashier – this will log the cashier out of the register 5 seconds after order fulfilment and redirect them to the login screen.

Assigning users to the outlet

↑ Back to top

To open or enter a register, the logged-in user must be assigned to the outlet to which the register belongs. To assign your user to an outlet:

  1. Go to your User Profile, or if you are assigning another user, go to their User Profile.
  2. Scroll to the Point of Sale section and select the outlet(s) from the Assigned Outlets field.
  3. Click Save Changes, and the user will now have access to registers that are in this outlet(s).

As well as assigning users to outlets, you can also restrict what cashiers can do when using the register; this includes:

  • Discounting – this will disable discounting functions such as discounts, fees and coupons from the register.
  • Tendering – this will disable the ability to place an order; cashiers can only place orders on hold or pending payment.

Creating a product grid

↑ Back to top

You can choose to display your product grid with pre-defined tiles. To create a grid:

  1. Go to Point of Sale > Grids and click Add New.
  2. Enter the name of the grid and click on Add Tile.
  3. Choose what type of tile you want to add, either Product or Product Category
  4. Click on Publish to create the grid.

You will need to assign this grid to the register you want:

  1. Go to the register you want to assign the grid to and click on Edit.
  2. Under the General tab, click on Product Grid and assign the grid you have just created.
  3. Click Update under the register actions.
  4. The grid is now assigned to this register.

You can also add products to a grid directly from the products page.

  1. Go to the product you want to add and click on Edit Product.
  2. Scroll down to the right, near the meta box labelled Product Grids.
  3. You can check the grid you want to add this product to or click Add product grid to add a grid.

Configuring receipt templates

↑ Back to top

You can create multiple receipt templates to assign to different registers. There are a variety of settings available to configure the layout of the receipt and options to include what to print. To edit the default receipt template:

  1. Go to Point of Sale > Receipts, and under Default Receipt, click on Edit.
  2. The familiar WordPress customizer will appear with a live preview of how store receipts appear to customers.
  3. Within the customizer, you can adjust the receipt settings from the sections on the left.

Configuring print quantities

To adjust the number of receipt copies printed, navigate to the receipt template settings under General details > Print copies. Here are the steps:

  1. Choose Number of copies for a fixed amount.
  2. For variable amounts, select Per category, Per product items (based on the number of product items, not quantities), or Per quantity (total product count).
  3. Regardless of choosing fixed or variable copies, you have the option to hide specific fields on additional prints.

This setup allows for one main receipt and additional copies tailored to your needs, with customization options for visibility on extra prints.

Displaying additional information

If you would like to include additional information to the receipt’s header and footer, you can do this by using the following filter:

<?php
// Support to pass through information to POS receipt header
add_filter( 'wc_pos_receipt_header_text', 'change_pos_receipt_header_text', 10, 3 );
function change_pos_receipt_header_text( $header_text, $order, $register ) {
$header_text = 'This is an updated header text.';
return $header_text;
}
?>

You can also include information such as warranty summaries for specific products in the order. This can be done using the following filter:

Displaying custom checkout fields

To include custom checkout fields on receipts, navigate to WooCommerce > Settings > Point of Sale > General and activate the option to display custom checkout fields. Once enabled, custom checkout fields will appear in the POS application and on receipts. To configure fields for receipts, access the receipt template settings, and in the Order Details section, select which custom fields you wish to print on the receipt.

Printing product barcodes

↑ Back to top

You can print product barcodes using the built-in tool that is available under the Point of Sale > Barcodes page. To print the barcode of a product:

  • Click on Add Product, search for the product you want to print for and click Add.
  • Enter the Number of Labels under Print Settings and set the Label Type.
  • Depending on the type of label you are printing on, the label number should reflect this. For example, for a label sheet with 7 rows and 3 columns, you would enter 21 in the number of labels.
  • Choose what Product Fields you want to include in the label.
  • Click on Print to print your labels.

Check that your printer margins are set in your browser settings to a minimum or none to ensure accurate printing of labels.

Global settings

↑ Back to top

Since the 6.0.0 release, the global POS settings have been relocated from Point of Sale > Settings page to the WooCommerce > Settings > Point of Sale tab. From this tab, you can find the following sub-pages:

General

  • Logo – defines the logo displayed on all registers in the top left corner.
  • Primary Color – sets the colour of the theme used across the register interface.
  • Transitions – disables transitions and effects used within the registers.
  • Dashboard Access – allows your cashiers to open their register from their My Account > Point of Sale page.
  • Auto Logout – set a period after which the register automatically logs the cashier out.
  • Chip & PIN – increase the number of Chip & PIN payment methods accepted through the Point of Sale. These are configured in the WooCommerce > Settings > Payments tab.
  • Dining – allows the cashier to set the dining option for each order.
  • Custom Checkout Fields – enables the integration of custom checkout fields to appear on POS and receipts.
  • Unit of Measurement – when the product tile is clicked, choose to prompt the seller for a specific quantity value. See the Unit of measurement section on how to configure this for products.
  • Outlet Stock – enables product inventory management and status per outlet.

Register

Register Options
  • Keypad Presets – preset the percentage of keys found on the discount panel.
  • Discount Reasons – choose the reasons for discounts that appear while applying a discount via the POS on tablets, phones, or computers. To introduce a custom reason, input the reason and tap or press ‘Enter’.
  • Keyboard Shortcuts – enable keyboard shortcuts when using the register.
    • U – Search customers
    • L – Search products
    • P – Browse products
    • S – Enter shipping information
    • D – Apply discount
    • C – Apply coupon
    • F – Apply fee
    • O – Fetch orders
    • T – Accept payment
    • H – Hold order
    • V – Clear cart
    • N – Add a note
  • Display Coupons – choose to display store coupons within the coupons tab of the POS.
  • Sales Total – select the user roles authorized to view the register session totals.
  • User Sales Total – choose to show sales total for orders processed by the logged-in user only.
  • Separate Product Rows – itemize products in the cart and on the receipt in separate rows.
  • Manager Override – allow users to assume control of a register that is already in use
  • Session Logout – select whether to automatically log out the user from the WordPress session after closing the POS register.
Cash Management
  • Order Status Criteria – set the orders’ status in the cash management report.
  • Currency Rounding – enable currency rounding for countries with limited currency denominations.
  • Denomination Options – add currency denominations for quick cash calculation.

Products

Grid Options
  • Out of Stock – display out of stock products in the product grid.
  • Restock Scanning – allows the cashier to restock and sell an out of stock product by scanning the product SKU.
  • Product Visibility – control the visibility of products from the online store and POS.
  • Uncategorized Products – enable hiding of the ‘Uncategorized’ product category.
Search Options
  • Search Includes – choose the fields included in the product search query displayed in the register. The default is Product Title and Product SKU.
  • Display Attributes – choose which product attributes to display within the search results when searching for products.
Product Fields
  • Required Fields – choose the fields required when adding a custom product through the register.
  • Publish Toggle – choose the default state of the publish option when adding a new product through the register.
Tile Options
  • Default Tile Sorting – set the default sorting for tiles on the register.
  • Image Resolution – choose the resolution for the images displayed within the product grid.
  • Information Panel – displays additional information on the products when using the register. A small button will appear on the product tile.
  • Add to Cart Behaviour – control what happens to the grid when a product is added to the basket.

Scanning

Scanning Options
  • Camera Scanning – enable camera scanning when scanning product SKU through the register.
  • Scanning Fields – choose the product field used when scanning product barcodes through the register. The default is WooCommerce SKU.
  • Embedded Barcodes – allows the cashier to scan price or weight-based barcodes from the register. Supported formats are EAN-13 and UPC-A.
UPC (Universal Product Code) Options
  • Middle Check Digit – disables the middle check digit when scanning UPC-A barcodes.
  • Use Middle Check Digit – define the replacement for the middle check digit.
  • Barcode Type – choose what the value of the barcode represents.
  • Multiplier – set the multiplier for the barcode value.

Orders

  • Display Orders – choose whether to display all orders or only orders fulfilled by the logged-in POS user.
  • Fetch Orders – define the status of orders loaded within the POS’s Orders panel.
  • Website Orders – choose to include website orders within the Orders panel in the POS.
  • Order Filters – controls the register and outlet filters shown on the back-end WooCommerce > Orders page.
  • Order Status Management permit changing the order status to any status. With this disabled, status updates are constrained to default order transitions.

Customers

Customer Options
  • Default Country – set customers’ default country when added through the register.
  • Guest Checkout – enable or disable guest checkout when using the register.
  • Customer Cards – enables scanning of customer cards from the register.
  • Customer Status – enable the option to define a status for each customer from the POS.
Customer Fields
  • Required Fields – set what fields are required when adding a customer through the register.
  • Optional Fields – hide optional fields in the register from the customer’s panel.
  • Save Customer – adding a customer through the register will default toggle the Save Customer option.

End of Sale

End of Sale Options
  • Tender Suggestions – hides the suggested amounts when tendering cash.
  • Signature Capture – capture customer signature for authorisation at the end of the sale process.
  • Signature Required – this will make capturing of signature a requirement.
  • Signature Commands – choose whether to require signature capture when fulfilling or parking orders.
Order Status
  • Status Selection – removes the ability to choose the order status when taking payment for or holding an order. The End of Sale order status option will only show the default status.
  • Pay – set the default and alternative status options when fulfilling an order.
  • Hold – set the default and alternative status options when holding an order.

Tax

  • Tax Calculation – enable or disable tax calculation for the POS.
  • Calculate Tax Based On – choose the address from which to calculate the tax.
  • Tax Number – set the tax number to be printed on the receipt for orders placed through the register.
  • Display Prices In Receipts – select whether prices in the receipts should incorporate tax or be displayed without it.
  • Display Prices In Orders – select whether prices in the orders panel should incorporate tax or be displayed without it.

Reports

  • Report Orders – set what order statuses are included within the end of day report.
  • End of Sale Email – store owners can customise the end of email notification by going to WooCommerce > Settings > Emails > End of Sale template.
  • Order Summary – include a detailed table summarizing all the orders in the End of Day email report.
  • Table Columns – select which columns to include in the order summary table.

Advanced

Loading Options
  • Maximum Concurrent Connections – sets the maximum number of API requests to the same endpoint when loading the register.
  • Maximum Items Per Request – sets the number of items per request when loading the register.
Caching Options
  • Check Updates Interval – set the interval (in seconds) between requests to the server to check for updates.
  • Coupons Cache – enables the caching of coupon data when loading the register.
  • Customers Cache – enables the caching of customer data when loading the register.
Database
  • Database Version – version of the current POS database.
  • Last Force Update – date of the last forced update of the POS database.
  • Update Database – option to force update the POS database.
  • Reset Settings – resets all POS settings.

Setting up units of measurement

↑ Back to top

For store owners who sell product stock in a specific unit of measurement or decimals, you can prompt the cashier for a specific quantity value when the product tile is clicked. To enable this feature globally:

  1. Go to WooCommerce > Settings > Point of Sale > General.
  2. Under the option Units of Measurement, check the box labelled Unit of Measurement.
  3. Click Save Changes.

To change the unit of measurement of a product, you would need to go to the product page:

  1. Go to the Product Data Panel > Point of Sale.
  2. Check the box for Unit of Measurement and select the Unit for the product.

From here, you can also define how suggested values are generated. Simply enter the starting suggested value, calculation and factor.

Setting up embedded barcodes

↑ Back to top

For store owners who want to sell products with price or weight-embedded barcodes, you must enable this configuration from the WooCommerce > Settings > Point of Sale > Scanning page.

For the UPC-A barcode, the value represents the price, and the multiplier is 100.

For products with units of measurement, you can choose to override the quantity in the POS when scanning price-embedded barcodes:

  1. Go to the product with Units of Measurement enabled.
  2. Scroll down to the Product Data panel and click on Point of Sale.
  3. Check the box Override Quantity.

Setting up customer store cards

↑ Back to top

For store owners who want to scan and load customer details when processing orders, you can use customer card numbers to manage customers. To enable this feature globally:

  1. Go to WooCommerce > Settings > Point of Sale > Customer.
  2. Check the box labeled Enable customer cards.
  3. Click Save Changes.

To set a customer card number for a user:

  1. Go to User Profile > Point of Sale heading.
  2. Enter the card number in the Customer Card field. If there is already a customer card number set, you would need to click on Change Card Number.

Setting up custom checkout fields

↑ Back to top

To utilize this feature, ensure you have the WooCommerce Checkout Field Editor extension installed and activated alongside Point of Sale for WooCommerce. Follow these steps to activate the custom checkout fields within POS:

  1. Navigate to your WordPress dashboard
  2. Go to WooCommerce Settings Point of Sale.
  3. Click on the General tab.
  4. Scroll to the section labeled Custom Checkout Fields.
  5. Check the box to enable the feature.

Upon activation, custom fields will become visible within the POS interface in various sections depending on the field type:

  • Billing Fields: these fields will be accessible when you are adding a new customer directly through the POS interface.
  • Shipping Fields: you’ll find these fields when you apply shipping method to a customer’s cart within the POS.
  • Additional Fields: these appear in the End of Sale modal, which pops up when you are finalizing the order.

After enabling the custom checkout fields, the custom fields you’ve set up in the WooCommerce Checkout Field Editor will automatically populate in the POS interface. For additional assistance or more detailed instructions on configuring custom checkout fields, please refer to the WooCommerce Checkout Field Editor extension documentation.

Setting up in-store shipping methods

↑ Back to top

For businesses seeking to streamline their in-store shipping process, this extension offers the flexibility to establish shipping methods that are exclusive to the POS system. This feature is particularly useful for distinguishing between online and in-store shipping logistics. The careful selection of Shipping Zones, ensuring they align with your designated Outlets, is crucial for avoiding any operational discrepancies.

To set up a shipping method that is available only through the POS and not on your online storefront, please follow the steps below:

  1. From your WordPress dashboard, head over to WooCommerce > Settings > Shipping.
  2. You’ll be presented with a list of defined Shipping Zones. Click on the Shipping Zone you wish to modify, or create a new one if needed.
  3. Within the chosen Shipping Zone, you can add a new shipping method by clicking on Add shipping method or edit an existing one by clicking on its name.
  4. For a new shipping method: After clicking Add shipping method, select the method from the dropdown and click Add shipping method again. Save the settings, then click on the shipping method you’ve just added to edit it.
  5. In the shipping method settings, look for the checkbox labeled POS Only.
  6. Check the POS Only box to ensure this shipping method will be visible only on the POS interface and not on your online store checkout.
  7. Save your changes.

When adding a new method, the POS Only checkbox will become available after the initial save and when you return to edit the method. For existing methods, this option can be found directly within the method’s settings.

User roles

↑ Back to top

There are two user roles that are installed when activating this extension. These roles relate to register access, back-end access and settings limited to the store manager.

Register clerk

  • Can only access from the register URL or, if enabled, the My Account page.

Outlet manager

  • Same capabilities as a Shop manager role
  • Ability to assign outlets to users
  • Ability to process order refunds
  • Can access the register from the WordPress back-end admin page
  • Force logging users out of registers

Product visibility

↑ Back to top

You can choose to display products in POS only, web store only or both. This global setting can be configured from WooCommerce > Settings > Point of Sale > Products. Once this setting is enabled:

  1. Go to the product you want to control the visibility for.
  2. Under Publish > POS visibility, click on Edit.
  3. Choose out of the following options POS & Online, POS Only or Online only.

In addition to these settings, you have the option to customize the visibility of each product in the store catalog, and the POS system will adjust accordingly. For products set to Shop only, they will be displayed exclusively in the product grid. For those marked as Search results only, the POS will show these products solely during searches or when scanning through the POS. If a product is set to Hidden, it will not appear in the product grid or search results.

Loading options

↑ Back to top

To enhance the POS application’s performance, efficient data management is critical, particularly under heavy load or poor network conditions. Customization options, found under WooCommerce > Settings > Point of Sale > Advanced, include:

  • Maximum Concurrent Requests – set a limit on simultaneous API requests to avoid server overload. The cap is 30, balancing data retrieval and server stability.
  • Maximum Items in Request – determines how many items to fetch per request, with a limit of 100. Adjusting this manages server load and data flow efficiency.

These adjustments can mitigate errors and slow performance by regulating server demand, optimizing the application’s responsiveness and improving user experience.

Synchronization options

By default, the POS system is configured to synchronize data every 15 seconds. You can locate this configuration by navigating to WooCommerce > Settings > Point of Sale > Advanced in the dashboard.

  • During synchronization, the cloud icon at the bottom left of the register will display animation.
  • For manual synchronization, simply click on this cloud icon.
  • To check the sync status, click on the cloud icon while it’s syncing.
  • To exit the status window, click on the “X” located in the top right corner.

Caching options

You have the option to preload and cache data for an enhanced and faster store fulfillment experience. This feature is applicable solely to customer and coupon data. To access this configuration, navigate to WooCommerce > Settings > Point of Sale > Advanced.

Usage

↑ Back to top

Opening and closing registers

↑ Back to top

To open a register, click on Point of Sale > Registers and choose the register you want to open.

If the register has already been opened, the button will display Enter. If the register is closed, it will display Open.

The login panel is the first thing you will see when you open the register. This will display the cashiers that are assigned to the outlet. Click on the profile you want to log in to and enter the password to enter the register.

From the login panel, there are several indicators to view key register information at a glance:

  • Wireless icon – this displays internet connectivity in case of loss of internet connection.
  • Cloud icon – this manages the synchronization process and displays the total number of fetched products in the cache. 
  • Solid circle icon – this displays the register status, which is either Open (Green) or Closed (Red).

To close a register, click on the POS icon on the top left of the register and click on the Sales figure at the bottom. This will display the closing register window. From here, you can click on Close Register to close the session.

Adding products

↑ Back to top

There are four ways to add products to the cart from the registers page:

  • Browse and navigate products using the product grid.
  • Search for the product from the search box.
  • Add a custom product for bespoke orders.
  • Scanning the product barcode.

Using the product grid

The product grid displays products as square tiles and categories as rectangular tiles. You can configure the product grid to display particular products or dynamically load a particular category. See Creating a product grid for more information on creating your own product grid.

As you navigate through product categories, the breadcrumb will display the current category or product. Clicking on the first item in the breadcrumb will navigate back to the start of the product grid. Child categories will be displayed first and products will be displayed below.

For variable products, the options will be displayed as tiles and as you go through your selections, the selected choices will be displayed above. Cashiers can go back through the selection using the breadcrumb.

To sort product tiles, click on the arrow icon on the top right corner of the grid. This will allow you to sort by name, date added, popularity and featured items.

To view product stock or read the products description, click on the small three dots icon in the product tile. This will load more information on a particular product in a full-screen panel. This feature can be enabled or disabled from Point of Sale > Settings > Tiles.

Adding a custom product

For bespoke products, you can add a custom product by clicking the + icon in the search box. Enter the product name, price and quantity and click on Add Product.

To add product attributes such as size, colour, etc click the Add Attribute button.

For store owners or cashiers with publishing privileges, you can have the product published to the products catalogue by clicking on the Publish Product toggle on the bottom left of the dialog box.

Searching for a product

If your product catalogue is too large to navigate using the product grid, you can use the search box in the top bar to query a product. The results will show you the product photo, SKU, price and stock count.

Scanning product barcodes

To scan products to the cart:

  1. Click on the search icon in the search box to enable barcode scanning.
  2. After you click this icon, it will display a barcode icon prompting you to start scanning.
  3. At this point, you can point your barcode reader on the product barcode and press the trigger.
  4. This will query the product SKU barcode with the store’s product SKU and if successful, add items to the cart. If the product SKU cannot be found, an error will appear.

Loading customers

↑ Back to top

Adding an existing customer

You can add an existing customer to the order by searching through the users on the top right. If the search finds no queries, the register will suggest you add this customer based on the query you have entered.

Adding a new customer

If you want to add a new customer to the order, click on the + button on the right of the customer search bar.

You can choose whether to save the customers details or keep them as guests by clicking on the Save Customer toggle on the bottom left of the dialog box.

To configure the required fields when adding a new customer, go to Point of Sale > Settings > Customer > Required Fields.

Scanning a customer barcode

To scan and load a customer to the register, click on the customer icon in the customer search bar. This will display a prompt where you can scan the customer card or enter the customer’s card number.

To enable store cards, you will have to check the box located under the Point of Sale > Settings > Customers > Customer Cards tab.

Editing cart items

↑ Back to top

After adding a product to the cart, you can click on the cart row item to display more options.

Item Fields

  • Quantity – this will display the quantity selected along with the unit of measurement that the product stock is handled in. You can also swipe the item row from left to right to increase product quantity by 1.
  • Discount – enter a percentage value you want to discount the item price by, the price field will lock to display the original price and the price on the order will be discounted.
  • Price – enter a custom price or return to the original price by entering ‘0’ in the discount field.
  • Note – add a note to this product. This will be added as a product meta attribute in the order.

Item Actions

  • Edit – allows you to modify the product name, tax class and add, delete or modify any product attributes if there are any.
  • View – opens in a new tab the online link to this product.
  • Delete – deletes the item from the cart. You can also swipe left on the cart row to remove the product from the cart.

Applying cart actions

↑ Back to top

Below the cart total, there is a cart action panel. This presents the actions that you want your cashiers to use while fulfilling orders through the POS. Cashiers can swipe left on this panel to see further actions including reset, clear and print.

Applying a coupon

To apply a coupon, click on the Coupon action button. This will open the coupon tab where you can enter the coupon code or if you have a barcode scanner, you can scan the coupon barcode.

Attaching a note

To attach a note to the order, click on the Note action. This will open the notes tab where you can choose whether to add a customer note or order note. Customer notes are sent to the customer and order notes are for internal purposes.

Discounting the order

To apply a discount, click on the Discount action button. This will open the discount tab where you can set the discount reason, type of discount (fixed or percentage) and the discount value.

To set the percentages presets, go to the Point of Sale > Settings > Register page and choose the discount values in Keypad Presets.

Maintenance actions

You can reload the register by clicking on Reset action or if you just want to start the order from scratch, you can clear it using the Clear action.

Holding an order

To hold or save the order, swipe left on the cart total and click on Hold. The default status of orders that are put on hold through the POS is on-hold. This can be configured from Point of Sale > Settings > General > Status Options.

Adding a shipping method

To add a shipping method to the order, customer details including the shipping address is required. Store owners would need to add the new customer or load the existing customer to the registers cart.

Once customer details are loaded, click on the Shipping cart action. This will load the shipping tab, where you can review the shipping address and choose the appropriate shipping method.

Order fulfilment

↑ Back to top

To place the order and take payment, click on the Pay button. This will display the End of Sale screen, where you will be shown the following options:

  • Printing – this will print the receipt after fulfilment. If this is set to yes in the register settings, this will appear as an option.
  • Email – this will email the receipt after fulfilment. Depending on the settings configured in the register settings, this will be required and toggled for all customers and pre-filled with the customer email address for non-guest customers.
  • Signature capture – click on the + button to capture a signature. This is useful for orders that require approval or verification. This must be enabled from WooCommerce > Settings > Point of Sale > End of Sale > Signature Capture.
  • Notes – attach a customer note to the order, or if a note is already attached, review it with the customer before finalising the order.

After clicking the Place Order button, the POS will push the order data to the main store and then display payment options.

Choosing a payment option

After clicking the Place Order button, you will be shown options to choose what payment method you want to use to tender the order. Payment methods are enabled and disabled from the WooCommerce > Settings > Payments page.

The extension comes with two payment methods: Cash for cash payments and Chip & PIN for EMV payments. This is for store owners who already have an EMV terminal, enable this, and the register will generate an order number which you can use to reference when using your terminal.

Holding orders

You can hold or save an order through the POS from the cart actions:

  1. Swipe left on the cart totals panel or click on the More button.
  2. Click on the Hold button.
  3. This will display the End of Sale screen options with different Order Status options to place an order.
  4. You can continue with the status On-Hold or set the status to Pending Payment.
  5. Setting the status to Pending Payment will allow you to generate a Payment QR Code for customers to scan and make payment at their own convenience.
  6. Click on Hold Order to continue; the POS will push the order data to the main store.

Viewing orders

↑ Back to top

Store managers can view their orders by clicking on the Orders panel. The orders displayed in this panel are dependant on the settings found in WooCommerce > Settings > Point of Sale > Orders. You can review these settings here. The POS does not automatically load the orders. Therefore, you must click the reload icon to the right of the order search field to fetch the latest orders.

Searching & scanning orders

By default, the Orders panel will focus on the order search field. Therefore, you can load and immediately search for orders or scan an order barcode. Scanning an order barcode is only possible when the Orders panel is active.

Separators, filters and layouts

From within the Orders panel to the right of the orders search field, you will see icons for buttons, including reload, separators, filters and more.

You can separate orders by clicking on the separators icon and choosing how they are separated between:

  • Day
  • Week
  • Month
  • Quarter
  • Year

You can filter between online and POS orders by clicking on the filters icon, and under the Type heading, choose between All, POS and Online.

You can filter between the order statuses by clicking on the filters icon and under the Status heading, check the order statuses to include in the Orders panel.

Order sorting can be configured by clicking on the more icon and, under the Sort by heading, choosing between Date placed and the Order number.

Loading orders

You can load orders that are on hold or pending payment from the POS to take payment:

  1. From the Orders panel, locate the order you wish to load.
  2. Click on the order card to load more details on the order and options.
  3. From the options, click Edit to load the order into the cart.
  4. To edit the order status, click the pencil icon within the customer panel.
  5. To remove the order from the cart, click the remove cart icon within the customer panel.
  6. Click on Pay to proceed with the order fulfilment process.

Refunds

There are two ways you can refund an order; you can use the Orders tab and locate the order or you can search using the Refunds action tab:

  1. Swipe left on the cart totals panel or click on the More button.
  2. Click on the Refund button.
  3. This will open the refund tab, where you can search for the order you want to refund.
  4. After you locate and click on the order, this will load contents to cart.
  5. You can adjust the quantity or remove products that will not be refunded.
  6. Click on Refund button at the bottom left.
  7. Choose to Recover Stock or leave a Refund Reason.
  8. Click on Continue to finish the refund process.

Stock keeping

↑ Back to top

This extension includes the ability to update product stock from your store’s back-end. To quickly adjust stock levels:

  1. Go to Point of Sale > Stock.
  2. Scan or enter the product SKU barcode.
  3. If the product is found, a table will be displayed with product image, name, SKU, stock status, stock level, price and the option to update the stock level.
  4. Depending on the value you enter, you can:
    1. Increase the stock level by the entered amount by clicking Increase.
    2. Decrease the stock level by the entered amount by clicking Decrease.
    3. Replace the stock level value by the entered amount by clicking Replace.
Please note that the POS will check for stock availability before processing payment.

Cash management

↑ Back to top

For efficient cash management in your POS system, it’s important to enable this feature for each register you wish to manage. This activation is done through the settings panel of each register, specifically within the General tab.

Once activated, the system prompts you to enter an initial cash float amount when you open the register for the day. This initial step is crucial for ensuring that cash tracking is accurate from the moment the register starts its operations.

When it comes to monitoring and adjusting cash, the process is straightforward:

  1. At the end of the day or whenever you decide to close the register, access the closing window to review and adjust cash movements.
  2. In the closing window, select the Cash Movements section to see all the transactions of the day.
  3. To adjust the cash in the register, you have the option to Add Cash for any additional amounts or Remove Cash for any withdrawals.

These procedures help maintain accurate records of cash transactions, all of which are documented and summarized in the end-of-day report, offering a clear overview of cash management activities.

Analytics

↑ Back to top

Reports for store owners to analyse orders processed through the POS can be accessed from the Analytics > Orders page:

  1. Go to Analytics > Orders.
  2. Under Show select POS Orders.

From this page, you can also filter orders based on the register and outlet that it has been placed through:

  1. Under Show select Advanced Filters.
  2. Select Add a filter and choose out of Register or Outlet.

Payment Gateways

↑ Back to top

Point of Sale for WooCommerce comes with two payment methods; one for accepting cash and one for using chip & PIN. To enable payment methods for the Point of Sale for WooCommerce:

  1. Go to WooCommerce > Settings > Payments.
  2. For Cash and Chip & PIN, this will have a dedicated gateway.
  3. To enable the payment method, select the toggle.
  4. To manage other settings, click on Manage.

If your gateway is not listed, please click here to open a ticket to discuss integration. It is important that the gateway you are requesting integration for offers in-store payment solutions. Point of Sale for WooCommerce will not display web-based gateways as this is not the best practice.

Setting up Stripe Terminal

↑ Back to top

For store owners based in the United States, Canada, United Kingdom, Austria, Belgium, Czech Republic, Denmark, Ireland, Italy, Finland, France, Germany, Luxembourg, Netherlands, Norway, Portugal, Spain, Sweden, Switzerland, Australia, New Zealand, and Singapore and have an account with Stripe, they can accept in-store payments using Stripe’s Terminal service. More details can be found here.

Please note that this is only compatible with the BBPOS WisePOS E. You can order readers from the Stripe Dashboard and get them shipped to a location of your choice.

Once you have registered your reader, you will need to activate the Stripe plugin, enter your secret key and connect POS to Stripe:

  1. Go to WooCommerce > Settings > Payments.
  2. Select Stripe Terminal and click on Setup or Manage if this is already enabled.
  3. To enable the payment method, check the Enable/Disable box.
  4. Click on Save Changes.

The reader and the POS device must be on the same IP network. In some cases, the network settings may need to be configured for the gateway processor to communicate to the terminal; configuring the DNS according to this document may help.

Compatible Hardware

↑ Back to top

Till

↑ Back to top

Point of Sale for WooCommerce is a web-based application, therefore, all hardware must be able to interact with HTML pages. We recommend devices with browsers that are capable of delivering a modern browsing experience such as Google Chrome or Safari.

Receipt printers

↑ Back to top

We recommend receipt printers that are capable of printing HTML pages.

Reported compatible printers:

  • Star TSP650 II (USB + CloudPRNT)
  • Star TSP100 (USB)

Cash drawers

↑ Back to top

Cash drawers are connected to the receipt printer and are automatically triggered open when a print is sent to the printer.

Barcode scanners

↑ Back to top

We recommend any USB or Bluetooth barcode scanner that outputs the barcode SKU as it is scanned.

Card readers

↑ Back to top

Card readers can be used in an isolated manner using the built-in Chip & PIN payment method – this will require you to confirm the payment with your chosen terminal.

Alternatively, you can connect to a cloud-based EMV service and confirm payment from within the register. The following integrations are available:

Extending Functionality

↑ Back to top

To extend the interaction with POS orders in WooCommerce, especially when an order’s status changes, the wc_pos_order_updated action hook offers a versatile solution. This hook can be implemented not only for sending emails when an order reaches a specific status but also for a wide range of actions such as updating order data, triggering external API calls, or implementing custom order processing logic. Below is a foundational code snippet that demonstrates how to hook into a POS order update:

If you would like to include additional information to the receipt’s header and footer, you can do this by using the following filter:

<?php
// Support to trigger after POS order is updated.
add_action('wc_pos_order_updated', function($order_id) {
$order = wc_get_order($order_id);
if ($order) {
// Implement your custom logic here.
// This can range from sending notification emails,
// updating order metadata, making API calls,
// or any other action required by your plugin or theme.
}
});

This snippet is the starting point for extending your plugin’s functionality in response to POS order updates. This could involve sending an email when the order status changes to ‘completed’, or any other task that your store might require. With the wc_pos_order_updated action hook, you ensure that your custom actions are seamlessly integrated with the order update process, enhancing the overall functionality of your POS system. Whether it’s for notification purposes, data synchronisation, or custom workflows, this hook provides a robust foundation for your custom development needs.

Compatible Extensions

↑ Back to top

Point of Sale for WooCommerce is compatible with the following extensions:

These extensions have known incompatibilities and cannot be used with Point of Sale for WooCommerce at this moment of time:

FAQs

↑ Back to top

What hardware do you recommend to use?

↑ Back to top

Point of Sale for WooCommerce is a web-based application, therefore, all hardware must be able to interact with HTML pages. You can read more about compatible hardware here.

Does this work anywhere in the world?

↑ Back to top

Yes, Point of Sale for WooCommerce works in any country that WooCommerce supports.

Can I run this on any computer?

↑ Back to top

Yes, Point of Sale for WooCommerce runs in most modern web browsers including Google Chrome, Safari, Firefox and Microsoft Edge.

How easy is the setup process?

↑ Back to top

Very easy, download and install the extension. Click on Point of Sale and open your register. It is as easy as that!

Does this extension store my data or transmit it to any third-parties?

↑ Back to top

No. WooCommerce handles all the e-commerce functionality and payment processing in exactly the same way as your online store.

Can I use this extension offline?

↑ Back to top

No, product information is still available, however, the internet is required to handle all payment processing in exactly the same way as your online store.

What should I do if I encounter timeout or server issues?

↑ Back to top

If you’re encountering timeout issues with your self-hosted POS solution, you can adjust the data retrieval settings within the POS application to significantly impact its performance and stability. By throttling the load, you can manage how much data is requested and processed at any given time.

Questions & Feedback

↑ Back to top

Already purchased and need some assistance? Get in touch with us via the Help Desk.

Use of your personal data
We and our partners process your personal data (such as browsing data, IP Addresses, cookie information, and other unique identifiers) based on your consent and/or our legitimate interest to optimize our website, marketing activities, and your user experience.