Bulk Card Search
Bulk search lets a shopper paste a whole list — a decklist, a wants list, a buylist they’re filling — and turn it into a cart in one pass, instead of searching for sixty cards one at a time. For a card store it’s how you serve the buyer who already knows exactly what they want. This page covers how it works and how to set it up.
The short version
- Bulk search is a page you add to your store, built from the theme’s
bulk-searchtemplate. - A shopper pastes a list (one card per line), clicks Resolve, and every line comes back matched against your live stock, sorted into Found, No stock, and Not found.
- Each found card opens into a small builder where they choose printings and conditions and set quantities; a running total and one Add all available button drop the whole list in the cart.
- It needs your store connected to the Sideboard app — the matching runs through Sideboard, and live price and stock come from your Shopify products.
What shoppers see
The paste box. One card per line. The format is flexible — 4 Lightning Bolt, or as specific as 4 Lightning Bolt (M10) 146 *F* (quantity, name, set code, collector number, and *F* for foil). Deck-section headers like “Deck”, “Sideboard”, or “Commander” are ignored, so a copied decklist pastes straight in. Resolving is one click (or Ctrl/Cmd+Enter in the box).
The results, beside the box. The paste box stays put on the left and results open on the right, so a shopper can tweak the list and re-resolve without losing their place. A summary shows how many cards landed in each bucket:
- Found — in stock. Each one is a card you can open: it shows the requested quantity already filled from what’s on the shelf, a queued / requested counter (amber when you’re short of what they asked for), and a subtotal. Open it and every printing you carry is grouped, with each in-stock condition and finish as its own quantity stepper — so the buyer can take three from one printing and one from another, or mix conditions, all toward the quantity they wanted.
- No stock — you carry the card, but it’s at zero right now.
- Not found — not carried, or the line couldn’t be read. The pasted text is echoed back verbatim (never silently dropped), sometimes with a “did you mean” suggestion.
The sticky bar. A bar pinned to the bottom shows how many cards matched and a live total that updates as they adjust quantities, with Add all available. That adds the whole selection to the cart in one request. If a card sold out between resolving and adding, that one row is flagged and everything else still adds — the batch never fails as a whole.
Setting it up
- Connect your store to Sideboard if you haven’t. Bulk search matches pasted cards through the Sideboard app and reads live price and stock from your Shopify products, so the connection is what makes it work. (Without it, the page falls back to a much rougher Shopify name search — fine for a quick look, not for a real deck.)
- In your Shopify admin, go to Online Store → Pages and add a page — call it something like “Bulk search”. The title becomes the page’s heading and its URL.
- In that page’s Theme template dropdown, choose bulk-search, then save. (The dropdown only lists templates that exist in your live theme, so the
bulk-searchtemplate has to be in whatever theme is currently published — if you’re running the Sideboard theme, it already is.) - Add the page to a menu — your header or the sidebar — so shoppers can find it.
New to page templates? Working with Sections explains what a template is and how to assign one to a page.
Open the page and paste a few cards to test it. You tune the heading, the auto-fill order, and spacing on the Bulk Card Search section in the theme editor — see Settings.
One thing to check on your products
The condition and finish labels (NM, LP, MP…) come from your product options — option 1 is condition, option 2 is finish. If your card products are synced from Sideboard this is already the case. If you’ve built products by hand and the options are named or ordered differently, the labels in the builder won’t read right.
How matching works
Resolving happens in two stages, and it’s worth knowing which piece does what when something looks off:
- Match. Sideboard takes each pasted line and finds the right card in your catalog, using the set code, collector number, and finish when you include them and falling back to the name. This is why the store has to be connected — the matching is Sideboard’s, not Shopify’s.
- Live stock. For each matched card, the current variants, prices, and quantities are read live from your Shopify products at resolve time — nothing is cached. So a card only lands in Found if a variant actually has stock; if you carry it at zero it goes to No stock.
Auto-fill. Each found card is pre-filled toward the requested quantity starting from the cheapest in-stock variant and cascading into the next printing or condition when one runs short. You can flip this to fill from the most expensive first (see Settings). Either way the buyer can open any card and change it.
If Sideboard can’t be reached, the page falls back to a plain Shopify search — it matches each line to the single top product by name, so set codes, collector numbers, and finish aren’t used to pin the exact printing. Conditions and stock still come from that product, but the match is rough. It keeps the page alive; it’s not the experience to rely on.
Settings
Bulk search has a few controls on its section in the theme editor (select the Bulk Card Search section). The full table is on the section reference page; the ones worth knowing:
- Heading — the page title shown above the paste box.
- Default variant when auto-filling a list — whether auto-fill starts from the lowest price (default) or the most expensive in-stock variant. This only seeds the starting quantities; buyers can still adjust every line.
- Use demo fixture data — serves a small built-in sample result instead of hitting the live resolver (also switched on with
?bulk_fixture=1in the URL). Use it to preview the page’s look while you’re still connecting the app; turn it off before going live. - Padding — top and bottom spacing around the section.
Good to know
- Stock is read live, never cached — the counts on the page are what’s actually on the shelf at that moment.
- Nothing is silently dropped. Every pasted line lands in a bucket, and unreadable lines are echoed back so the buyer can fix a typo.
- Big lists are one request. A 99-card Commander deck resolves in a single pass; the cart add is batched too.
- Set codes and foil are read, not just names —
4 Mox Opal (SOM) *F*resolves to that printing and finish.
Troubleshooting
The page is blank, or bulk-search isn’t in the template dropdown.
Shopify only offers and renders templates that exist in your live theme, so the bulk-search template needs to be in whatever theme is currently published. If you’re running the Sideboard theme, it already is.
Every line comes back “Not found.” The store almost certainly isn’t connected to Sideboard, or its products haven’t finished syncing — matching runs through the app. Confirm the connection and that your catalog is synced.
Condition labels look wrong (everything says the same thing, or the raw option text shows). The card products’ options aren’t set up as condition (option 1) and finish (option 2). Products synced from Sideboard already are; hand-built products may not be.
A card I stock shows up under No stock. Its live Shopify quantity is zero for every condition, or a recent restock hasn’t synced yet. Bulk search only shows a variant as available when Shopify reports stock for it.
What’s next
- Bulk Card Search section reference — the full settings list
- Shopify setup — connecting your store to Sideboard
- Working with Sections — pages and templates
- Theme settings — everything store-wide
Was this page helpful?
Spotted something wrong, or want to suggest an improvement? Email support → — your message goes straight to engineering.