Map a standalone product (or resolve one by model / product ID) onto OpenCart 3 category
taxonomy nodes. Search categories by name fragment, then toggle assignment checkboxes and
save. A separate rename tool rewrites inconsistent category labels (for example cleaning
typo variants) while preserving language_id = 1 description rows.
oc_category_description rows and shows breadcrumb paths with current assignment state.oc_product_to_category links from the checkbox state.$assignedCategoryMap; the checkbox loop uses in-memory isset() lookups (no N+1 SQL).cat_page) so large taxonomies do not freeze the browser.