For the webmaster and staff who add or edit products in Shopify. You don't need to know anything about code. If you can add a product in Shopify Admin, you can do everything here.
Some things we sell are not cabinets: hinges, screws, dowels, loose panels, legs, camlocks, drawer runners, shelf holders. Customers can buy them from the shop, but it makes no sense for them to appear in the planner as something you drag into a room.
Store-only is the label we put on those products. It means:
| On the website / shop | Yes, sells as normal |
| In the planner's product list (the ⊞ button) | No, hidden |
Why hide them? A cabinet already comes with its own hinges, legs and doors, and the cabinet price covers all of that. If a hinge showed up in the planner, a customer could place a "hinge" in the middle of their kitchen and get a confusing quote.
store-only.
planner.category).store-onlystore-only in the
category metafield, and after the planner is refreshed the product is no longer in the ⊞ Products list.
It is still for sale on the shop.
store-only.
Type it on the product page, in the steps above. The product-list columns
Product type and Category are the wrong place too.
Settings → Metafields and metaobjects is only for creating a brand-new metafield
definition, such as planner.component_skus in section 6.
| You type | Works? |
|---|---|
store-only | Yes (correct) |
Store-Only or store-only with a space at the end | Yes (capitals and stray spaces are forgiven) |
store only (space instead of hyphen) | No. The part will show in the planner |
storeonly, store_only, spare, parts | No |
kitchen hardware | No. This is a normal category, so the product is not hidden |
| Field left empty | No. An empty category means "show it" |
The safest habit is to copy and paste store-only from this page.
(drft) is an intentional live-test marker.
Those products stay visible in the planner. Do not unpublish them to hide them.
The planner only hides a title that contains (Draft). To keep a spare part
off the planner while it stays for sale, use store-only.
store-only and refresh
the planner, that product leaves the ⊞ Products list. It stays for sale on the shop.
Confirm with the checks in section 7.
The planner does not have its own product list. Every time someone opens it, it asks Shopify "what products do you have?" and builds its ⊞ Products list from the answer. So:
| Shopify field | What the planner does with it |
|---|---|
| Title | The name shown in the list, quote and cart |
| Product type | The heading the product is grouped under in the list |
| Photo (first / featured image) | The little thumbnail in the list |
| Variant price | The price in the quote and cart. If it's missing, the price shows as $0 |
planner.glb_url | The 3D model shown in the room |
planner.width_mm, height_mm, depth_mm | The size in the room (in millimetres) |
planner.category | Where and how it sits in the room, or whether it appears at all (store-only) |
planner.component_skus | Extra items that come with this one (see section 6). Owner only |
"Metafield" is just Shopify's word for an extra custom field on a product.
Go down this list and use the first one that fits. Type the word into the planner.category metafield.
| What is the product? | Category to type | What happens |
|---|---|---|
| Spare part: hinge, screw, dowel, camlock, drawer runner, leg, loose panel, trim, shelf holder | store-only |
Sells on the shop, hidden from the planner |
| A service that isn't a physical item (for example an install quote request) | service |
Appears in the list, goes on the quote, but isn't drawn in the room |
| Floor cabinet | base |
Sits on the floor slab. Used by Auto-Design |
| Wall-hung cabinet | wall |
Hangs on the wall, starting 1500 mm above the floor |
| Corner cabinet | corner |
Drops toward the nearest room corner |
| Tall cabinet or pantry | tall |
Full-height, on the floor |
| Island cabinet | island |
Island placement rules |
kitchen hardware for spare parts. It looks sensible, but the planner
treats it as a normal category. A "kitchen hardware" product still appears in the list.
Some genuine planner items (a sink, an oven, a hob) may also use similar wording, so hiding by that word would
hide things customers do need. Spare parts get store-only. Nothing else.
If planner.category is left empty, the planner falls back to the Shopify
Product type. It's much cleaner to always fill the category in.
Also: the planner looks for the words "island", "corner", "tall", "pantry" and "wall" in the
category, product type and title to decide placement, so avoid those words in a title unless they're true.
This is a short version. The full illustrated version is in the Add cabinets to the planner guide.
.glb file → click it → Copy link. The link starts with https://cdn.shopify.com/ and ends in .glb.glb_url: paste the link from step 1width_mm, height_mm, depth_mm: whole numbers, for example 600, 720, 580category: base, wall, corner, tall or island (see section 3)Much shorter, because the planner doesn't need to know about it.
category to store-only. You do not need a 3D model or sizes.store-only before you tick Online
Store, or at the same time as you save. If you publish a hinge first and tag it later, it sits in the
planner list, placeable by customers, until you fix it.
Products added earlier may have spare parts tagged kitchen hardware or nothing at all.
Open each one, change category to store-only, and Save. The
planner's diagnostic (section 7) lists them so you can work through the list.
Our idea is that a customer taps one cabinet and gets a complete unit: the cabinet plus its benchtop, sink, oven or hob. Each of those is still its own product with its own price, and each is its own line in the cart, but the customer only handles one object.
This is set up with a metafield called planner.component_skus on the
cabinet. It lists the extra items that ride along with it, and they're
added on top of the cabinet price. The cabinet price is not reduced.
List only a real extra: benchtop, sink, oven, hob or tap. Never list hinges, legs, doors
or fixings.
Bathroom vanities are not set up this way. A full vanity — cabinet, basin, tap,
splashback and mirror modelled together — is one product with one 3D model.
Do not split it, and do not fill in planner.component_skus on it.
Vanity tops, mirrors and bathroom faucets sold on their own are store-only.
What you can safely do today: make sure companion products (benchtops, sinks, ovens, hobs) exist in Shopify with a real price, a photo and the right category. Parts that only ever exist inside a unit (like the hinges) get store-only.
The planner has a built-in report card for the catalogue.
?catalogaudit=1 on the end: https://planner.brownboxkit.co.nz/?catalogaudit=1&debug=1 to the address instead. A small console appears on screen.)0 and you've tagged some, they haven't taken effect (see the spelling table in section 1).The report only reads data. It can't change or break anything.
| What you see | Most likely cause | Fix |
|---|---|---|
| A spare part (hinge, screw...) shows in the planner | Category isn't exactly store-only (typo, or it's kitchen hardware / empty) |
Check the spelling on the product, save, refresh the planner |
| A cabinet is missing from the list | Not Active, not on Online Store, category is store-only by mistake, or the title contains "(Draft)" |
Check each of those on the product page, then refresh the planner |
| Cabinet is a plain brown box | Missing or wrong glb_url |
Copy the link again from Content → Files |
| Cabinet is the wrong size | Typo in a size field, or a size is missing (it falls back to 600 × 720 × 580) | Fix the millimetre numbers. Whole numbers only, no "mm" |
| Price shows $0.00 | No price on the variant | Set the price in Shopify |
| No thumbnail | No photo on the product | Add one under Media |
| Cabinet lands on the wrong spot (for example at wall height) | Wrong category, or the title/type contains the word "wall", "corner", "tall" or "island" | Correct the category. Check the title wording |
| Customer reaches the checkout and sees "Out of stock" | One item in the cart is sold out. Shopify then refuses the whole cart | Fix stock in Shopify. The planner doesn't warn customers about this yet |
| Changed something in Shopify, planner still shows the old version | Old page still loaded in the browser | Ctrl + F5 (or pull to refresh on iPhone / iPad) |
| Planner | The 3D kitchen design tool at planner.brownboxkit.co.nz |
| Store-only | A product for sale on the shop but hidden from the planner's list. Set with planner.category = store-only |
| Metafield | An extra custom field on a Shopify product. Ours are all in the planner group |
| Category | The planner.category metafield: tells the planner how to place a product, or to hide it |
| GLB | The 3D model file for a product |
| SKU / variant | One specific purchasable version of a product (for example a size or colour) with its own price |
| Companion / component | An extra product that comes with a cabinet (benchtop, sink, oven, hob) |
| Unit | A cabinet plus its companions, treated by the customer as one item |
| Active | Shopify product status meaning it is live. Only Active products can reach the planner |
| Send to Cart | The planner button that puts the whole design into a Shopify cart and goes to checkout |
Brown Box Kit Kitchen Planner · staff guide · the product list loads from Shopify each time the planner opens.