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:

  1. Ages
  2. Brands
  3. 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:

  1. Resolves the exact product ID and SKU
  2. Previews the expected category changes
  3. Shows any categories that would need to be created
  4. Applies only the approved product selection
  5. Stores the original category assignments
  6. Refreshes category availability and Max Mega Menu
  7. 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:

  1. Age 0 to 18m
  2. Age 18m
  3. Age 3y
  4. Age 5y
  5. Age 8y
  6. 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:

  1. Audits the existing catalogue
  2. Reuses the established category terms and URLs
  3. Builds a conservative managed-relationship baseline
  4. Preserves unknown and manual assignments
  5. Validates a controlled product test
  6. 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.

l

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