Skip to content

Taxes & GST

Sellerlane’s tax engine is built from three building blocks plus a global settings layer that ties them together:

PieceWhat it defines
Tax zonesWhere a rate applies — by country, by subdivision (state), by postal/PIN-code, or a single default catch-all that covers everywhere else. Tax-inclusive pricing is set per zone.
Tax classesWhat kind of product — group products that share a rate (e.g. a class per GST slab: 0%, 5%, 12%, 18%, 28%).
Tax ratesThe percentage charged for each class within a zone, with a priority that controls stacking.

You manage all of these under Settings → Taxes (the Tax Dashboard), which has three areas: Global Tax Settings, Manage Tax Zones & Rates, and Manage Tax Classes.

Global tax settings

Open Settings → Taxes → Global Tax Settings. These apply store-wide.

  1. Default Tax Display Name — the word buyers see instead of a generic “Tax” on cart, checkout, and invoices. Enter GST (or VAT, etc.).

  2. Default Shopper Tax Zone — the catch-all zone used when a buyer’s address doesn’t match any specific zone (and before they’ve entered an address). Pick your default catch-all zone here.

  3. Tax Calculation Basis — choose Destination Address (tax based on where the order ships, the usual choice for GST) or Billing Address. For pickup orders the engine uses the origin (your pickup location’s zone) regardless of this setting.

  4. Shipping Fee Tax Class — the tax class applied to shipping charges. Pick a class (e.g. your standard GST class) so delivery fees are taxed, or leave it on None (Non-Taxable) to ship tax-free.

  5. Cart & Checkout Tax Display and Order & Invoice Tax Display — set independently to Summarized (one combined tax line) or Broken Down (each rate/class shown separately). See display granularity.

  6. Click Save Settings.

Tax classes

A tax class groups products that should be taxed the same way. The simplest GST setup is one class per slab.

  1. Go to Settings → Taxes → Manage Tax Classes and choose Add Tax Class.

  2. Name it after the slab — e.g. GST 18%, GST 12%, GST 5%, GST 0% / Exempt. The name is a label; the actual percentage lives on the rate inside each zone (next section).

  3. One class is marked (System Default for Products). Products that aren’t assigned a class fall back to it, so make the default match your most common slab.

Assigning a class to a product

The tax class is a mandatory, product-level field. In the product editor’s Pricing step, set Tax class. New products auto-select the first class, so always confirm it matches the product’s slab before saving. See Add products for the full product form.

Tax zones

A zone answers “where does this rate apply?” Create one zone per region that needs its own rates. Go to Settings → Taxes → Manage Tax Zones & Rates → Create New Tax Zone and pick a Based On basis:

  1. Country — applies to whole countries. Select Target Countries (e.g. India). Use this for a nationwide rate.

  2. Subdivision (State/Province) — applies to specific states. Pick the country, then choose Target Subdivisions (e.g. Karnataka, Maharashtra). This is the basis that matters for modelling intra-state vs inter-state GST.

  3. Postal Codes — applies to specific PIN-code ranges. Choose the Target Country for Postal Codes, then list codes/patterns (one per line; * is a right-side wildcard and ? matches a single digit — e.g. 560* for PINs starting 560).

  4. Default Catch-All — the fallback for everywhere not matched above. There is exactly one catch-all per store, and it’s typically your Default Shopper Tax Zone.

By default a zone applies to All Customers. You can instead scope it to Only Customers in Select Groups (segments) under Applies To — useful for B2B or special-rate groups.

A segment-scoped tax zone is selected only from a successfully refreshed membership snapshot. While a dynamic segment is queued, stale, or in a failed refresh state, Sellerlane falls back to the applicable non-segment zone rather than calculating tax from an obsolete customer classification.

Rates and priority (stacking)

Each zone has its own Tax Rates. Open a zone → Zone RatesAdd Tax Rate, give it a name and a Priority, then enter the percentage per tax class (e.g. 18 for your GST 18% class, blank for classes that don’t apply here).

How multiple rates combine for one product:

  • Same priority → the percentages are added together (e.g. two 9% rates at the same priority bill as 18% on the base price).
  • Different priorities → they compound in priority order: each higher priority is charged on the base plus the tax already accumulated by lower priorities.

For a flat GST slab, one rate per class is all you need. Reserve priorities for genuinely stacked taxes.

Tax-inclusive pricing

Indian buyers expect shelf prices to be final. Tax-inclusive display is set per zone (not globally), under Price Display Settings for this Zone when you create or edit a zone:

  • Display prices inclusive of tax? — when on, the price you entered is what the buyer pays and GST is calculated out of it for the breakdown. When off, tax is added on top at checkout.
  • Show both on product listings? and Show both on product detail pages? — optionally display the inclusive and exclusive figures side by side.

Price ₹1,180 (incl. 18% GST) → shown as ₹1,000 + ₹180 GST on the invoice. The reverse formula: base = inclusive ÷ (1 + rate)1180 ÷ 1.18 = 1000, so tax = 180. A 5% example: ₹525 ÷ 1.05 = ₹500 base + ₹25 GST.

In Global Tax Settings, Dynamically update inclusive prices for out-of-zone customers? controls what happens when a buyer falls outside your inclusive zone: leave it off to keep the entered price fixed, or turn it on to re-derive the displayed price for their zone.

Tax display: summarized vs broken-down

Set Cart & Checkout Tax Display and Order & Invoice Tax Display separately under Global Tax Settings:

  • Summarized — a single combined tax line (e.g. “GST ₹180”).
  • Broken Down — each contributing rate/class is listed on its own line, so a multi-rate or split GST charge is itemised rather than rolled up.

Choose Broken Down for the order/invoice if buyers need to see the GST components itemised, and keep cart/checkout Summarized for a cleaner storefront — they’re independent.

Tax exemptions

Three independent ways to zero out tax:

  • Customer-level — mark a specific customer Tax Exempt on their customer record. This applies to that customer’s personal purchases only. Use it for registered exempt individual buyers.
  • Company-location — mark a company location tax exempt in its purchasing policy (Companies → the location’s Ordering, checkout, and tax panel). This applies to company purchases placed for that location only. See company tax exemption.
  • Per-order (POS) — on a Point-of-Sale order, toggle Tax-exempt for this cart in the checkout Tax panel. This overrides tax for that one cart only, regardless of any flag.

Which exemption applies

The exemption follows the purchase identity, and the two owners are never mixed:

  • A personal purchase (including a wholesale buyer who chose Purchasing personally) uses only the customer’s own exemption flag. The exemption of a company they belong to is never consulted.
  • A company purchase uses only the purchasing location’s flag — including an explicit “not exempt”. There is no fallback to the buyer’s customer flag or to any other location of the same company.

The order snapshots the exemption decision in force at placement, so changing a flag later never re-taxes an existing order.

A cart is treated as exempt if either the per-cart POS override is on or the record that owns the purchase identity (customer for personal, company location for company) is flagged tax-exempt.

GST for India: CGST/SGST vs IGST

GST has an intra-state vs inter-state distinction:

  • Intra-state (buyer and seller in the same state) → conventionally split into CGST + SGST (half each).
  • Inter-state → charged as a single IGST at the full rate.

Sellerlane models this with subdivision (state) zones and rates, then surfaces it through the broken-down display. Practically:

  • For a single combined GST rate, one rate per class in a country/catch-all zone is enough — buyers see one “GST” line at the full percentage.
  • To itemise CGST + SGST for in-state sales, create the relevant subdivision zones and add two equal-half rates at the same priority (so they sum to the slab), then set the invoice display to Broken Down and name each rate accordingly.

Because there are no built-in CGST/SGST/IGST labels or an HSN field, the labels you give your rates are what appear on the invoice. The platform guarantees the arithmetic; the GST semantics come from how you name and zone your rates.

On orders and invoices

Each order records its tax as line-level amounts. Themes read these through the tax_line Liquid object, and order invoices show the breakdown under your display name. Shipping is taxed using the Shipping Fee Tax Class you set in Global Tax Settings — not a separate shipping rate.

If a buyer’s pickup location or address can’t be matched to a zone, checkout falls back to your Default Shopper Tax Zone and flags it; carts spanning multiple zones report the destination zone on the order.

Next steps

Add products

Set each product’s tax class in the Pricing step.

Shipping & checkout

See how taxed shipping fees appear at checkout.

Customers & segments

Scope zones to groups and mark exempt customers.

GST calculator

Quick inclusive/exclusive maths with the GST calculator.