Catalog
Categories
Categories are the groups a shopper walks down on your storefront, with Electronics above Phones and Phones above Smartphones.
A category is a group you put products into, and your categories go inside each other. You might have Phones inside Electronics, and Smartphones inside Phones. A phone you sell goes in the last one. That chain is what a shopper walks down on your storefront, and it is the only part of your catalog that nests this way. Your brands, tags and specification groups are flat lists.
Most people build categories for one of three reasons. You want the shape of your catalog to match the way people shop it. You want that same shape to go out to the stores you sell through. Or you want to find a slice of your products later.
Each category has a name, a description, a thumbnail, a banner, two fields for search engines and a slug. Every product you put in it shares that group.
Your categories do a second job that is easy to miss. A category decides which specifications a product is asked for. Move a product into a different category and the specifications it is expected to fill in can change with it. That is covered further down.
You find your categories under Catalog, in Categories. The Create category button is at the right end of the toolbar above the list. The table under it lists every category you have, one row each, with its full path and a count of the products in it. Click a row and that category opens so you can edit it.
Before you start
Two things can stop you. Everything else on this page can wait until you need it.
What your role lets you do
Below Manager, you get no buttons at the end of a row, no checkboxes down the left of the list, and no selection bar. The actions you cannot run are simply not there. Your role is set in team, roles and permissions.
Merging and deleting cannot be undone
A category you delete is gone, and a merge deletes every category you merged away. Neither has an undo, there is no trash, and nothing keeps a copy. Export your categories first if you want one.
How to create a category
Open the category dialog
From
Catalog, selectCategories, then clickCreate categoryat the right end of the toolbar above the list. A dialog opens over the page with the category’s fields running down it.Name it
Type into the
Namefield at the top of the dialog. TheSlugfield at the bottom fills itself in as you type.Choose where it goes
Click the
Parent Categoryfield in the middle of the dialog. A picker opens showing your whole tree. Click one category in it to put your new one under that, or leave the field empty to put your new one at the top level.Add a description and images
Write a description in the editor under
Name. BelowParent Categoryyou get three drop areas, labeledThumbnail,BannerandResources. You can skip all of them.Save it
Fill in
Meta TitleandMeta Descriptionnear the bottom if you want them, then clickCreate.
That is the whole flow. Your category appears in the list right away, in its place under its parent, and a small message confirms it was created. If you have connected a store that keeps categories of its own, your category starts going there on its own.
Only Name and Slug are required. A category with nothing else on it still groups your products and still goes to your stores. Everything below explains the dialog, the list, the tree and the actions at the end of every row. You do not need any of it to create one.
Every option in detail
You get the same dialog whether you are creating a category or editing one. It opens from Create category above the list, or from clicking a row. The button at the bottom reads Create on a new category and Update on one you already have.
Every category has its own web address. A link to one still works after a reload, and you can send it to someone on your team.
Closing the dialog with unsaved edits asks you to confirm first. You can either throw your edits away or go back to editing, and clicking outside the dialog or pressing Escape asks you the same thing. There is no draft for you to come back to.
What goes in each field
The fields run down the dialog in this order.
Each counter turns orange at a length you can go past. On Meta Title that is 60 characters, and on Meta Description it is 160. Those are the lengths search engines usually show before they cut a title or a snippet off. Nothing stops you going further, and the color changing is all that happens. The limits table further down has the hard caps.
The three drop areas keep their English names whatever language you read the app in. Use Resources for anything you want kept alongside the category that is not one of the two images, such as a sizing chart or a supplier document. Where those files are kept, and how you reuse one, is covered in assets.
Your category names have to be unique among siblings, not across your whole catalog. You can have the same Accessories under Phones and under Laptops at once. Each one is only compared against the categories that share its parent. Your top-level categories are compared against each other the same way, so two of those still cannot collide. Your slugs work the same way and are checked separately.
What happens when the name or the slug is already taken
A check runs a moment after you stop typing, and it marks the field before you get as far as clicking Create. The message names the exact place it looked. You get either “already exists under” and the parent’s name, or “already exists at the root level” for a category with no parent. Your slug gets its own version of the same message.
Create and Update stay gray while that check is running. They also stay gray until you have actually changed something, so you cannot save a dialog you opened and did not touch.
If the check cannot answer at all, your save still goes through and the conflict is caught as it is written. You get the same message either way.
Saving while someone else has the same category open
You see a small marker in the dialog header naming anyone else viewing or editing the same category. So you usually know before it becomes a problem.
If someone else saves while your dialog is open, your save is rejected rather than writing over theirs. A banner appears at the top of your dialog saying the category changed, with a Reload action. Clicking it pulls in their version and throws your unsaved edits away.
If you had no unsaved edits, your dialog updates itself with no message, and the fields they changed flash blue as the new values appear.
Where the slug comes from
Your slug is the part of a web address that names the category. Your stores build their category page addresses out of it, so it matters more than it looks.
Your slug follows the name while you are creating a category, and never after that. It stops following the moment you type into the Slug field yourself. On a category that already exists, changing the name leaves the slug alone completely.
So renaming Shoes to Footwear keeps the slug at shoes. A link someone already has pointing at shoes keeps working.
If you do want the address to change, edit the Slug field yourself. On a Shopify store, your old address is redirected to the new one for you.
Putting a category under another one
Parent Category is the whole of your tree. There is nothing else for you to set. Leave the field empty and your category goes at the top level. Click the field, pick a category in the picker, and your category goes under that one instead.
Changing Parent Category on a category that already exists moves it, and everything under it moves too. Move Phones from Electronics to Gadgets and Smartphones moves with it. So does everything under Smartphones. The full path of every category in the branch is rebuilt when you save, so the Path column in your list catches up immediately.
The picker shows your whole tree. The category you are editing is grayed out, along with everything under it. That is deliberate. Putting a category inside one of its own children would make a loop with no top, so you can see those rows for orientation but you cannot click them.
How deep you can nest categories
Nothing in the category dialog caps your depth, and normal catalogs never come close to any of the numbers below.
Your Path column stops building the breadcrumb after 20 levels and marks that it stopped. A move whose chain of parents runs past 30 levels is rejected outright. In practice you only see that if something is already wrong with the branch.
A store can be stricter than the PIM. BigCommerce takes 8 levels. A category of yours that is deeper stops with a message saying so, on that store only. It stays exactly where you put it here.
Reading the categories list
Your list is a plain table, one row per category, and it does not fold or unfold.
There is no drag-and-drop tree here. No folders for you to open and close, and no dragging one row onto another to move it. If you came looking for one, it is not hidden behind a setting.
You read your hierarchy from the Path column instead. Your list is sorted by Path from the start, so children are always directly under their parent until you sort it another way.
To move a category, open it and change Parent Category. That is the same thing a drag would have done for you.
Your Products count includes every product in the category whatever its status. Your archived and draft products are counted too.
Finding the category you want
The search box above your list matches on the name, the slug, the description and the path all at once. Typing a parent’s name finds its children as well, because the parent’s name is part of every child’s path.
For anything narrower, click Filters above the list and build a condition there. You can filter on Name, Slug, Path, the description, Products as a number, and the four audit columns. Two more filter fields are not columns and never show you anything in a row:
Is Leaf. Set it toYesand you get the categories with nothing under them. That is usually the set your products should actually be in.Is Root. Set it toYesand you get your top-level categories.
Both are dropdowns with Yes and No. How you build a condition, and how you keep one for next time, is covered in filters and saved views.
Putting products in a category
You put a product in a category from the product, never from the category. Open the product, find its Taxonomy section, and click the Categories field there. The picker that opens is the same tree, and you can check as many categories as you want on one product.
Nothing in your categories list assigns anything. Check some row checkboxes and the selection bar that appears gives you Merge, Update integration sync and Delete. That is the entire list. You get no bulk edit here, and no way to move a set of products from one category to another. Merging is the only action on this page that touches which products are where.
The order you pick categories in on a product decides which one counts as first. Your Categories column on the products table prints them all but sorts by the first one. A store that can only accept one answer gets your first one. Nothing labels it on screen, so the only way you change it is to reorder the field on the product itself.
At volume, your categories arrive with a products import instead. The Categories column in your file takes full paths, one per category, written the way your Path column shows them.
A path that is not in your catalog yet is handled the way you tell the import wizard to handle it. On the step that asks what to do about things it cannot find, you choose between skipping the row with a warning, creating the category automatically, and rejecting the row. Imports covers that step.
Choosing which specifications a product is asked for
A specification group with no categories on it applies to every product. A group with categories applies only to products in one of them, and you can exclude a single specification for particular categories.
The match is on the category your product is actually in, never on its parents. A group you scoped to Electronics does not apply to a product filed only under Electronics > Phones. That is true even though Phones is inside Electronics.
So scope your groups to the categories your products are really in, which is usually the ones at the bottom of your tree. Specifications has the full rule.
This is why a category change can change what a product is expected to have, without telling you. Move a product from one category to another and the specifications it is asked for move with it.
Loading and saving a whole tree
Your tree has its own import and its own export, separate from the products ones. A categories import maps nine columns: Category Path, Category Name, Description, Thumbnail URL, Banner URL, Resource URLs, Slug, Meta Title and Meta Description.
Order your file from the top down: parents first, then their children. A row asking for a category under a parent your file has not created yet cannot be placed. It fails with a message naming the missing parent, and that is the most common reason a categories import comes back with errors.
An import can also move your categories, not only create them. In update mode, mapping the Category Path column moves each category to wherever the file says it should be, which is the fastest way to reshape a large tree.
A categories export is already in the top-down order for you. It writes parents above their children, sorted by path, so a file you exported can go right back in.
Your export gives you one extra column, Category Level, that an import ignores. How deep a category goes is calculated from its parent and never read from your file. Which columns you get, and how you run an export, is in exports.
Duplicating a category
Duplicate is the first item in the menu at the end of a row. You also get it in the menu in the top right of the category dialog.
You get a copy under the same parent, named with (Copy) on the end and with -copy on the end of its slug. If that name is taken, you get (Copy 2) and upward. A long name is trimmed so the suffix still fits.
Your copy brings the description, the two meta fields and the assets. It brings neither the child categories nor the products, so your duplicate arrives empty with nothing under it. Use it as a starting point for a category shaped like an existing one, not as a way to clone a branch.
Merging two categories into one
Merging is the only way you can get products off a category. There is no reassign-then-delete anywhere in your taxonomy. So a category you no longer want, but that 400 products are still in, gets merged into the one you are keeping rather than emptied and deleted.
You keep one category out of a merge. Every other category in it is deleted, and their products, their children and their specification scoping move to the one you keep.
Start the merge
Click
Mergein the menu at the end of a row. You can also check two or more row checkboxes and clickMergein the selection bar that appears, or use the menu in the top right of the category dialog.Say which category you keep
Starting from a row, the step is called
Select to Merge: the row you came from is the survivor, and you get a picker for choosing what to fold into it. Starting from the selection bar, the step is calledSelect Survivor: you get a list of the categories you checked with a radio button on each.Read the impact summary
Both routes end on
Preview Impact. It lists the category you are keeping, then the categories to be deleted with a line through their names, then a panel calledImpact summarycounting what your merge is about to do.Confirm it
Click
Mergeat the bottom right, then confirm on the dialog. It tells you the action is irreversible and names your survivor.
Your merge then runs in the background, and you get a message as soon as it is queued. You can keep working. Another message tells you when it has finished, with how many categories were merged and how many products moved.
Read Impact summary before you confirm, because it is the only preview you get.
A product already in both categories keeps its earlier position. That can move it up your survivor’s list and change which of its categories counts as first.
You can rename your survivor on the way through. Click Rename next to it on the impact screen, type the new name, and click Save. Your name is checked against its siblings while you type, and Merge stays gray while the editor is open. A rename leaves the slug, the parent and the depth alone, so links pointing at your survivor keep working.
Two findings warn you and let you continue anyway. One appears when an import is running, because rows in that file can fail and need re-importing after that. The other appears when the categories you are folding in are not all at the same level of the tree as the one you are keeping.
Two findings stop your merge before it starts. The first is a category you are folding in that is above the one you are keeping, which would leave the tree with nowhere to put it. Move it out of that branch first.
The second is a slug collision between the children being moved. They can collide with children your survivor already has, or with each other, and you get each colliding slug listed. That check reads slugs, not names.
A merge is permanent. Every category except your survivor is deleted, and their images and files go with them rather than moving to the survivor.
Deleting a category
Delete is the last item in the menu at the end of a row, and in the menu in the top right of the category dialog. Two things block your delete outright, in this order:
- The category still has children. The message tells you how many. Delete or move them first.
- Products are still in the category. The message tells you how many. Merge it into another category instead, or take the products out one by one.
Neither is a warning you can click through. A category has no archived state and no draft state, so once you delete one it has nowhere to come back from.
Your confirmation dialog names the category and then lists everywhere it disappears from. It starts with PIM and names every connected account the category is live on, because your delete goes to your stores too. If it is not on any store, the dialog tells you that instead.
Deleting a whole selection works differently, and it works from the bottom up. Check a parent together with all of its children and the whole branch goes in one action. Deleting that parent on its own would have been rejected. Any row it still cannot take reports why it was skipped, either because children were left behind, or because products are still in it, or both.
On a very large selection, a parent and its children can be handled in separate rounds, and your parent comes back blocked. Run the delete again and it finishes the job.
Working on a lot of categories at once
Check a row checkbox and you get a selection bar with Merge, Update integration sync and Delete on it. Select all in that bar takes every row your filter matches, not just the page you are looking at. Your set is fixed when you confirm, so a category someone creates while it runs is never included.
Above 100 rows in that mode, your work moves to the background, with its own progress bar and a Cancel you can use. A selection you built by checking boxes always runs there and then, however many rows you checked.
Only one bulk action runs for your organization at a time. Start a second while one is going and you are told to try again shortly. Bulk actions covers the shared behavior.
Stopping a category from going to one account
Every connected account that can take your categories shows as a badge in the header of the category dialog. Hover a badge and a panel opens with a Sync switch on it. Turn that switch off and the account stops getting this category.
Turning it off is not a pause, it is a removal. A category has no life of its own on a store the way a product does. There is nothing there to keep except the group itself, so the only choice you get is deleting it from that store, and the dialog says so before you confirm. Turn the switch back on later and your category is created there again.
To do the same to a whole selection, check the rows and click Update integration sync in the selection bar. You get a list of your connected accounts, and you choose per account whether it starts syncing, stops syncing, or is left unchanged. Nothing is pre-selected for you, and Apply stays off until you touch at least one account.
Limits
What you cannot do with a category
What a category becomes on each integration
What your categories turn into depends on what the store has of its own. A store that keeps real, nesting categories gets your tree the way you built it. A store whose grouping is flat gets one group per category, with the shape of your tree recorded alongside so a storefront can rebuild it. A marketplace selling against someone else’s catalog gets nothing about your categories at all.
Amazon and Google are not gaps waiting to be filled in. On Amazon you manage your offer against a listing someone else owns, so you have no product content to place in a category. Google Merchant Center decides its own product classification, and the PIM deliberately sends none.
On Square
A category is a category. Square categories nest, have a page address, and have their own place in the Square dashboard, so yours arrive as themselves.
They are created when you push a product that is in them, parents first. A category no product is in yet has nothing on the Square side.
After that, your name, your page address built from the slug, your page title and your page description are kept in step with what you have here. That work happens on the next push of a product in the category. So a rename you make today shows up when that category next has something to publish.
Square is also the one integration that adds to your tree. The catalog read when you first connect, and any re-sync you start later, creates a category here for each Square category on a product it is importing, nested to match.
It looks for a category of the same name in the right place first and reuses that one. A new one takes the Square page address as its slug, and the Square page title and description as its meta fields. Deleting the category here later deletes the Square one, as the Square integration describes.
On Shopify
Your category becomes a collection, one per connected account, created as soon as the category exists and before any product goes into it.
The address comes from your slug with cat- on the front, so the category shoes becomes the collection cat-shoes. A brand of the same name becomes brand-shoes instead, so the two never collide.
The push sends your name as the title, plus your description, your meta fields, your banner image and which products are in it. When a category has no banner, your thumbnail goes instead. So a category you only gave a thumbnail still goes to the store with an image.
A Shopify collection has no parent of its own. So the shape of your tree is written onto it as a set of fields the PIM owns: what kind of thing it is, its identifier there, its parent, its direct children, its depth and its path. You cannot edit any of them from the Shopify admin, and they are rebuilt on every push.
Moving a category re-pushes everything under it, because the depth and the path of every one of those changed. One move near the top of your tree queues a collection update for the whole branch hanging below it. That is normal and it settles on its own.
Sometimes the address your category wants is already taken by a collection the PIM cannot prove is its own. The push then fails with The handle 'cat-shoes' is already used by another collection in Shopify. Use a unique slug for this category. It never silently settles for a numbered variation, so the fix is yours: give the category a different slug.
Shopify addresses are flat and your slugs are only unique per parent. Accessories under Phones and Accessories under Laptops both want the same collection address, and the second one pushed reports the conflict. Give one of them a different slug.
Doing that before you connect a store saves you a failed push and a sync error to clear.
Membership goes one way. On every push, the products that go in your collection are decided and the difference is written. That is never read back, so a product you add to the collection inside Shopify is not a product the PIM knows about. A read from Shopify leaves your categories alone entirely: it creates none, and it never changes which categories a product is in.
On BigCommerce
Your category becomes a category in your BigCommerce tree, nested the way you nested it, with the address built from your slug. The push sends your name, your description, your page title and your meta description, and your category is created visible.
Three things about BigCommerce matter before you connect one.
BigCommerce takes 8 levels. A category of yours that is deeper stops with a message saying it is nested too deeply, and it stops for that one category only. Everything above it still goes to your store, and your tree here is untouched.
Your category name is also cut to 50 characters on the BigCommerce side. The name you have here is not changed.
Parents go first, and that is handled for you. A category whose parent has not got to BigCommerce yet cannot be created there. The parent is queued instead and your child is tried again shortly. You may see it wait for a moment, and you do not have to do anything.
If BigCommerce already has a category of the same name in the same place, and the PIM cannot claim it, your push stops and says so. Rename one of the two, and the BigCommerce integration has the rest.
The Shopify Category field is not one of your categories
Shopify Category on a product is not one of the categories on this page. It is one choice out of Shopify’s own published list of product types, which is re-read from Shopify every week.
You find it in the Taxonomy section of the product dialog, right under the Categories field, behind its own picker. It tells Shopify what kind of thing your product is. Shopify publishes that list in English only, so the names in the picker stay English whatever language you read the app in.
The two never touch each other. Setting it does not put your product in any of your categories, and your categories never write it. The first sync from a Shopify store can fill it in, because the store sends back the classification it has. So a product you imported from one may arrive with it already set.
When something goes wrong
Checking whether your category got to a store
Open your category and look at the badges in the dialog header. You get one badge per connected account, and hovering one opens a panel with that account’s status, when it was last pushed, and the text of any error.
A Failed badge on one account never blocks your others. Fix what the message asks for and your next push clears it. For every error across your whole catalog at once, see integrations.
Messages in the category dialog
Messages when you delete or merge
Nothing is retried for you after a failed merge, and nothing was half done. A merge either completes or leaves both categories exactly as they were. Start it again once you have fixed what the message named.
Messages from a categories import
Five of the six things that go wrong here are about the order of your file or the shape of your tree.
Every one of these fails only the row it is on. The rest of your file still imports, and you re-import the failed rows once you have fixed them.
Where to go next
Products
The dialog where a product gets its categories, and the order that sets the first one.
Specifications
How a specification group is scoped to categories, and what an exclusion changes.
Imports
Loading a whole tree from a file, and what happens to a row it cannot place.
Integrations
Per-account settings, and where a sync error shows up across every category at once.