Skip to main content

Understanding Channels & Filters in Luminous

B
Written by Brendon Beebe
Updated over a month ago

Think of your channels like mail sorters at a post office.
Each sorter has a rule taped to the front — “Only accept mail going to ZIP 84097 and marked Priority,” for example.

When a new order comes in, Luminous checks each sorter (channel) one by one:

  1. It starts with the most specific channel (the ones with filters set).

  2. It checks if the order matches every filter on that channel.

  3. If it fits, that’s where the order goes.

  4. If not, it keeps moving down the line until it reaches the catch-all — a final channel with no filters, which takes anything that didn’t match earlier.

This guarantees every order lands somewhere.


⚙️ How filters work

Filters look directly at the raw JSON data we pull from your source system (Shopify, Amazon, etc.).

You can add filters under:

Settings → Channels → Filter Incoming Orders

Example:

Property

Operator

Value

location_id

EQUALS

65671528523

This means: “Only attach orders to this channel when location_id in the raw order data equals 65671528523.”

🧩 Filters are ANDed together, not ORed.
If you add multiple filters (e.g., location_id AND tags), an order must match all of them to qualify.


🔍 Viewing your raw order data

To see exactly what Luminous sees:

  1. Open an order.

  2. Click the Actions ⋯ menu → Pull Raw Order.

  3. You’ll see the JSON data like this:

{   "id": 6322589007947,   "location_id": 65671528523,   "app_id": 1354745,   "client_details": {     "accept_language": "en-US"   } }

You can use any of these fields in your filters.


✅ Best practices

  1. Start in Integrations
    Set up the base connection (Shopify, Amazon, etc.) in Integrations first.
    Channels are built on top of these integrations — each channel tells Luminous which subset of orders from that integration should be pulled in.

  2. Create specific channels for special cases
    Use filters when you want to isolate certain types of orders (for example, POS orders, marketplace orders, or orders from specific locations).

  3. Always include a catch-all
    Keep one channel per integration that has no filters — your safety net for anything that doesn’t match another channel.


🛒 Example: Brand xyz's Shopify Locations

Brand xyz uses multiple Shopify locations to handle both online and in-person sales.
Here’s how their setup works:

Goal
Sell certain products in person at the CanJam trade show using Shopify POS, while keeping the rest of their inventory available online and accurately synced.

How they did it

Channel

Filter

Purpose

Shopify – CanJam

location_id = CanJam Location ID

Handles POS orders from the CanJam booth; stock is transferred to a special “SoCal” location in Luminous.

Shopify – Tuscany

location_id = Tuscany Location ID

Used for “ship-to-order” sales when the item isn’t physically at the show.

Shopify – Catch-All

(no filters)

Catches any other orders that don’t fit the above locations.

Result

  • Products sold at the trade show instantly reduce inventory in Shopify and Luminous.

  • Staff can switch the POS iPad between locations depending on where the sale is fulfilled.

  • The main website inventory remains separate from the POS event stock.


🧠 Summary

  • Filters act like rules on mail sorters — they narrow down which orders go where.

  • Filters are ANDed together, not ORed.

  • Channels are built from integrations, not the other way around.

  • Always keep a catch-all channel with no filters.

  • You can test your filters by pulling a raw order and comparing values directly.

Did this answer your question?