Salut Alex,
Am avut aceeasi problema cu alte magazine, si am implementat solutia urmatoare:
1. Am renuntat de tot la arborele de categorii din backoffice (remove direct din controller, nu ascuns cu js sau css)
2. Am implementat selectia de categorii intr-un modul, cu un select2 cu search pe baza de ajax (vezi atasament).
E ceva de munca, mai ales ca controller-ul AdminProducts e facut cu symfony si va trebui sa-ti bagi nasul in core pentru a renunta la arborele de categorii, dar e solutia potrivita!
O alta solutie, cu pastrarea arborelui, este incarcarea progresiva a radacinilor, pe baza ce ele sunt selectate. Dar implica mult mai multa munca, in special pe partea de salvare date (pentru a atunci cand arborele nu este incarcat complet, si sunt selectate categorii care nu au checkbox-urile incarcate in DOM, nu se vor mai trimite catre controller, prin urmare produsele vor fi scoase din categoriile respective): https://i.imgur.com/ysSTKSg.gifv