मुख्य सामग्री के लिए छोड़ें
संस्करण: 1.x

Discounts and Coupons

WCPOS gives you several ways to discount an order. The free plugin covers ad-hoc cashier discounts (quick percentages, line-item price changes, order-level fees). Coupon codes — including all the WooCommerce coupon rules — are part of WCPOS Pro.

Changed in v1.9.0

The way POS price changes appear on receipts and in reports changed in v1.9.0 so that coupons calculate correctly. See What changed in v1.9.0 below if you've noticed your "Discount" totals are now showing as zero.

Quick Discounts

Quick discount buttons let you apply a percentage discount to the entire order with a single tap.

To configure them, open the cart Display Settings and enter a comma-separated list of percentages in the Quick Discounts field. For example, 5,10,15,20 creates four shortcut buttons.

When you tap a quick discount button, the percentage is applied across all line items in the cart.

Line-Item Discounts

You can change the price of any individual line item directly in the cart:

  1. Click the Price field on the line item
  2. Enter the new price
  3. Press Enter to confirm

This is useful for price matching, staff discounts, or one-off adjustments. The line item's total updates automatically based on quantity × new price.

See Line Items for more on editing cart items.

Splitting Items

If a customer wants different discounts on portions of the same product (e.g., 3 at full price and 2 discounted), enable the Split option in cart Display Settings to break a line item into separate lines.

Order-Level Discounts

To apply a flat discount to the entire order (rather than individual items), add a negative fee:

  1. Click Add Fee below the cart items
  2. Enter a name (e.g., "Staff discount")
  3. Enter the discount amount as a negative number (e.g., -5.00)

The fee appears as a separate line item and reduces the order total. You can edit the fee's tax status using the three-dot menu if needed.

Coupon Codes Pro

Coupon support is a WCPOS Pro feature. With Pro installed, the POS syncs coupons from WooCommerce and lets you apply them at the register.

Setting up coupons

Coupons are created and managed in WooCommerce, not in the POS:

  1. Go to WP Admin → Marketing → Coupons and create your coupons there
  2. The POS syncs them automatically — they're then available at the register

You can use all the standard WooCommerce coupon rules: expiry dates, usage limits, minimum/maximum spend, individual-use, email restrictions, product or category restrictions, and "exclude sale items."

Applying a coupon at the register

  1. In the cart, click Add Coupon
  2. Enter the coupon code
  3. Press Enter

The POS validates the coupon locally against your synced coupon list (so it's instant — no waiting on the server) and applies the discount to the cart. If you change cart contents afterwards, the discount recalculates automatically.

Coupon codes are case-insensitive.

Supported coupon types

Coupon typeSupported
Percentage discountYes
Fixed cart discountYes
Fixed product discountYes

Coupons and connectivity

Because coupons are validated locally from synced data, you can apply them while offline. However, completing checkout still requires a connection — the server is the authoritative source of order totals and runs final validation on submission.

If a coupon was just created in WooCommerce and you don't see it in the POS yet, wait for the next sync cycle or navigate away from the cart and back to trigger a refresh.

POS Discounts vs WooCommerce Coupons

These are two different mechanisms, and it's worth understanding the distinction:

POS DiscountsWooCommerce Coupons (Pro)
How appliedEdit the line item price, use a quick discount, or add a negative feeEnter a coupon code in the cart
Where configuredOn the fly by the cashierPre-configured in WP Admin → Marketing → Coupons
TrackingRecorded as the line price (see v1.9.0 change)Tracked as a coupon discount in WooCommerce reports
RestrictionsNone — the cashier sets any priceUsage limits, product/category restrictions, minimum spend, expiry, email rules
Best forAd-hoc adjustments, price matchingStructured promotions, trackable discounts

If you need to track discount usage in WooCommerce reports or enforce rules like usage limits, use coupons. For one-off price adjustments, POS discounts are simpler.

How POS Discounts Interact with Coupons

When a cashier sets a custom price on a line item (e.g., reducing $18 to $16), and a coupon is then applied, the coupon calculates against the POS-discounted price ($16), not the original ($18). This means a customer cannot be over-discounted by stacking a cashier discount and a coupon against the original price.

  • POS-discounted items are treated as "on sale" by WooCommerce. If a coupon has exclude sale items enabled, it will skip POS-discounted items — the same way it skips regular sale items. Developers can override this with the woocommerce_pos_item_is_on_sale filter.
  • Removing a coupon leaves the line at its POS-discounted price.
Developer Reference

For technical details on how POS price overrides are stored and the available filters, see the POS Discount Reference.

What changed in v1.9.0

If you upgraded from v1.8 and noticed that the Discount total on your receipts and reports is now showing 0, this section explains why and what your options are.

The change

Before v1.9.0, when a cashier reduced a line price (e.g., $18 → $16), the POS recorded the order with subtotal = $18 and total = $16. WooCommerce then computed discount_total = $2, and this appeared on your receipt and in reports as a discount.

This caused incorrect totals whenever a coupon was applied on top — the coupon would calculate against the original $18, leading to an over-discount and the customer being undercharged.

From v1.9.0, WCPOS aligns with how WooCommerce treats sale prices: the price you set at the till is the line subtotal. WooCommerce only counts coupon codes as "discounts" (this matches WC's behavior for products on sale, where the sale price is also baked into the subtotal with no separate discount line).

What this means for you

  • Receipts no longer show a separate "Discount" line for line-item price changes. The lower price is the price.
  • Reports show discount_total = 0 when only POS line-item price changes were used. Only coupon discounts are counted.
  • Coupons now calculate correctly when stacked on POS-discounted items.
  • The discount data is still stored on every order in line-item metadata (_woocommerce_pos_data), so historical figures can still be derived if needed.

If you want discount visibility back

If you need a "total discount given today" figure for your end-of-day reconciliation, the supported way is to use coupon codes instead of line-item price edits for trackable discounts. Set up a "Manager 10%" or "Loyalty $5" coupon in Marketing → Coupons, and apply it at the cart. It'll show in discount_total natively.

We're also evaluating a POS-specific "Total Saved" figure that surfaces line-item price changes separately from coupon discounts. If this matters to your workflow, let us know.

Known Limitations

  • No automatic discount rules — the POS doesn't support "buy 2, get 1 free" style automatic discounts. Use WooCommerce coupons for structured promotions.
  • Quick discounts are percentage-only — there's no built-in quick button for fixed-amount discounts. Use a negative fee or edit individual prices instead.
  • Checkout requires a connection — coupons can be applied offline (they're validated against locally-synced data), but you can't complete the sale without server connectivity.