YBO Category Sync
Overview
YBO Category Sync is a specialist WooCommerce and Max Mega Menu plugin developed by YBO Digital to maintain a structured, multi-category product catalogue when Stock2Shop or another upstream product feed can assign only one primary product category.
Many ecommerce catalogues need products to appear in several useful browsing paths at the same time. A single product may need to be found by age, brand, subject and its original product family. When the upstream integration supplies only one category, maintaining those additional classifications manually becomes slow, inconsistent and difficult to sustain as products are continually added or updated.
YBO Category Sync uses selected WooCommerce product attributes as the source for additional category assignments. It resolves the required category paths, reuses existing WooCommerce categories wherever possible, creates genuinely missing categories only when authorised, assigns products to the correct categories and projects the resulting structure into a controlled Max Mega Menu.
The plugin preserves established category terms, IDs, slugs, URLs, descriptions, images and SEO metadata. It does not delete category URLs simply because a category is temporarily empty or no longer assigned to a particular product.
Why this Plugin Exists
Stock2Shop Supports Only One Primary Category
Stock2Shop can synchronise a product into its main WooCommerce category, but many stores require the same product to appear under several customer-facing category paths.
For example, one product may need to appear under:
- Its original product family
- Ages → Age 5y
- Brands → The Brand Name
- Subject → Mathematics
YBO Category Sync preserves the category supplied by Stock2Shop while adding the additional category relationships derived from the configured product attributes.
Customers Browse Products in Different Ways
A shopper may know the age of the child, the brand they want or the educational subject they need, without knowing the store’s primary product family.
Maintaining parallel Ages, Brands and Subject structures makes the catalogue easier to browse and gives each product several relevant discovery paths without duplicating the product itself.
Manual Category Allocation Does Not Scale
On a catalogue containing thousands of products, manually reviewing attributes and assigning several categories to every new or changed product is not practical.
The plugin converts the agreed attribute structure into repeatable category rules, processes catalogue changes gradually and records the result of each reconciliation.
Category URLs Must Remain Stable
Established product-category URLs may have accumulated search visibility, links, descriptions, images and SEO metadata.
YBO Category Sync treats the WooCommerce category architecture as permanent website infrastructure. Product relationships may be corrected as attributes change, but the plugin does not automatically delete category terms, rewrite category slugs or recreate existing categories under new IDs.
Empty Categories Should Not Clutter the Menu
A useful category may temporarily contain no qualifying products. Deleting the category would remove its URL and associated metadata, but displaying it in the storefront menu creates a poor browsing experience.
The plugin separates category existence from menu visibility. The category and URL remain available in WooCommerce, while empty or specifically excluded branches can be omitted from the managed Max Mega Menu.
Menu Maintenance Becomes Difficult After Catalogue Changes
Adding or changing categories can disturb menu ordering, column layouts and submenu settings.
YBO Category Sync maintains the managed Ages, Brands and Subject branches while preserving the website’s unrelated navigation items, including My Account links, pages, custom links, search elements, promotional items and other site-specific menu content.
How The Plugin Works
Step 1 – Configure the Managed Category Sources
The administrator selects the WooCommerce attributes and root categories used for:
- Ages
- Brands
- Subject
The actual attribute names and category roots are configurable so that the plugin can be adapted to the structure used on each website.
Step 2 – Interpret the Product Attributes
The three managed sources are processed according to their purpose.
Ages
Age attributes use boolean values.
The attribute name identifies the age category, while its value controls whether the product should be assigned:
- True assigns the product to the age identified by the attribute name.
- False is ignored and does not create or assign a category called True or False.
Brands and Subject
Brand and Subject attributes use their values as category names or hierarchical paths.
Examples include:
- Brands → LEGO
- Subject → Mathematics
- Subject → Mathematics → Fractions
Step 3 – Resolve Existing Category Paths
Before creating anything, the plugin searches beneath the expected parent category for an existing matching term.
Matching handles:
- Existing term IDs
- Exact hierarchical parent relationships
- Capitalisation differences
- Matching slugs
- Encoded characters such as ampersands
This prevents duplicate terms such as Sand & Water play and Sand & Water Play from being created beneath the same parent.
Step 4 – Create Only Genuinely Missing Categories
When category creation is enabled, a category is created only when no valid existing category can be reused beneath the correct parent.
Category creation is therefore a fallback, not the default response to every attribute value.
Step 5 – Reconcile the Product’s Category Relationships
The plugin calculates the categories the product should currently have and compares them with its existing assignments.
It preserves:
- The primary category supplied by Stock2Shop
- Manual category assignments outside the managed roots
- Categories assigned by unrelated plugins or integrations
- Existing WooCommerce category terms and URLs
It manages only the product relationships controlled through the configured Ages, Brands and Subject roots.
Where an attribute changes, an obsolete managed product-to-category relationship can be removed while the category term itself remains intact.
Step 6 – Calculate Category Availability
The plugin determines which managed categories should appear in the storefront menu.
A category can remain visible when:
- It contains at least one qualifying product; or
- One of its descendant categories contains a qualifying product.
Availability rules can take product publication status, catalogue visibility and stock policy into account.
Step 7 – Project the Structure into Max Mega Menu
The plugin maintains a stable WordPress menu structure and applies the required Max Mega Menu settings to the managed branches.
The default managed root order is:
- Ages
- Brands
- Subject
All unrelated top-level navigation items retain their existing relative order after those managed roots.
The plugin also supports:
- Four-column layouts for Brands and Subject
- Alphabetical ordering for Brands and Subject
- A fixed semantic order for Ages
- Default Level-2 Collapse sub menu settings
- Preservation of existing manual Max Mega Menu settings where configured
- Removal of empty or excluded managed branches from the storefront menu
- Stable menu-item identities so Max Mega Menu metadata is retained
Step 8 – Record the Outcome
Each run records clear product-level and catalogue-level results, including:
- Products examined
- Products updated
- Category relationships added
- Category relationships removed
- Existing categories reused
- New categories created
- Products requiring no change
- Items requiring review
- Processing errors
- Menu projection status
Operating Methods
Controlled Product Test
Before enabling full live operation, the administrator can test one or more selected products.
The controlled workflow:
- Resolves the exact product ID and SKU
- Previews the expected category changes
- Shows any categories that would need to be created
- Applies only the approved product selection
- Stores the original category assignments
- Refreshes category availability and Max Mega Menu
- Provides rollback for the controlled test
This is useful for validating a new installation, a migrated website or a configuration change before broader processing begins.
Continuous Incremental Reconciliation
The normal permanent operating mode processes new and modified products rather than repeatedly scanning the entire catalogue.
When a relevant product change occurs, the product is added to a deduplicated background queue. Repeated Stock2Shop updates to the same product are consolidated so that the product is processed once after the incoming changes have settled.
The default queue operates conservatively, processing approximately one product every 20 seconds. The pace is configurable for the hosting environment.
Daily Modified-Product Integrity Sweep
A daily integrity sweep checks for products modified since the previous checkpoint. This provides a safety net where an import or integration update does not trigger the normal WooCommerce product-change hooks.
Scheduled Full Audit
A full-catalogue reconciliation remains available as an integrity check.
Administrators can select:
- Manual only
- Weekly, with a configurable weekday and time
- Monthly, with a configurable date and time
For YBO-managed sites, a weekly Sunday 04:00 audit is a practical default where the catalogue changes continually.
Full audits run in small delayed batches and can be paused or resumed. They are deliberately slower than an import process to reduce database and server load.
Manual Menu Synchronisation
The category availability and Max Mega Menu projection can be refreshed independently when required, without running a full product audit.
Max Mega Menu Management
Managed Menu Boundary
The plugin owns only the configured Ages, Brands and Subject roots and their descendants.
It does not rebuild or reorder the website’s complete navigation menu. Unmanaged items retain their existing order and settings.
Ages Ordering
Ages use a configurable semantic sequence rather than alphabetical order.
The default sequence is:
- Age 0 to 18m
- Age 18m
- Age 3y
- Age 5y
- Age 8y
- Age 13y
Additional age categories can be placed through the configurable order without changing the classification engine.
Brands and Subject Ordering
Brands and Subject are ordered alphabetically within their managed branches and can use a configurable four-column Max Mega Menu layout.
Collapse Sub Menu
New Level-2 Brand and Subject menu items with Level-3 children can have Max Mega Menu’s Collapse sub menu setting enabled automatically.
Administrators can choose whether the plugin should:
- Apply the default only to newly created menu items; or
- Enforce the setting across the managed branch
Empty and Excluded Menu Categories
A category can remain valid for product assignment while being omitted from the storefront menu.
This is useful for staging categories such as TBC, where products may temporarily be assigned while the final category is being confirmed.
The category remains available in WooCommerce, but its managed menu branch is not displayed.
Fresh Installations and Legacy Migration
Fresh Installation
Fresh Installation is intended for a website where the earlier YBO category and menu plugins have not managed the catalogue.
The workflow prepares or selects the managed root categories, validates the mappings and establishes a new ownership baseline without adopting historical relationships.
Legacy Migration
Legacy Migration is intended for websites previously managed by the separate YBO Product Categories from Attributes and Max Mega Menu generation plugins.
The migration workflow:
- Audits the existing catalogue
- Reuses the established category terms and URLs
- Builds a conservative managed-relationship baseline
- Preserves unknown and manual assignments
- Validates a controlled product test
- Enables continuous reconciliation only after approval
The legacy plugins should remain deactivated once the new application begins live reconciliation.
Administration Interface
YBO Category Sync appears beneath the shared WordPress administration area:
YBO Apps → Category Architecture
The application is organised into:
- Dashboard
- Configuration
- Operations
- Results
- Advanced
A Guided interface remains available for onboarding, migration and recovery, while the permanent Dashboard and configuration sections provide access to the full operational controls.
Performance and Safety Considerations
YBO Category Sync is designed to:
- Process catalogue changes gradually
- Deduplicate repeated product updates
- Avoid overlapping full audits
- Pause incremental work during a full reconciliation
- Preserve progress during interrupted runs
- Reuse existing category terms before creating anything
- Preserve category IDs, URLs and SEO metadata
- Preserve Stock2Shop and unrelated manual category assignments
- Restrict menu changes to the managed branches
- Keep unrelated website navigation intact
- Debounce Max Mega Menu refreshes after import activity
- Provide controlled previews and rollback before full live operation
- Maintain run results and operational history
For large catalogues, a full audit may take several hours. This is intentional. The plugin is designed to operate quietly in the background rather than complete thousands of product updates as quickly as possible.
Configuration Profiles
A validated development-site configuration can be exported and imported on other websites.
Profiles can include:
- Attribute mappings
- Root-category names and slugs
- Category behaviour
- Ages ordering
- Brands and Subject columns
- Collapse settings
- Managed menu ordering
- Queue pacing
- Daily and full-audit schedules
Profiles deliberately exclude site-specific term IDs, menu IDs, approvals and live operating state. Each destination site resolves and confirms its own existing categories and menu structure.
Requirements
The plugin requires:
- WordPress
- WooCommerce
- Max Mega Menu
- Product attributes containing the configured Ages, Brands and Subject data
- A product feed or catalogue process that maintains those attributes consistently
Stock2Shop is the primary use case, but the classification model can also support another product-data source that supplies the required WooCommerce attributes.
Support
YBO Category Sync is a custom-developed WooCommerce and Max Mega Menu solution by YBO Digital.
Support requests:
support@ybo.digital