Tu ne dois pas créer une catégorie directement, mais t'appuyer sur l'action Category via l'event TheliaEvents::CATEGORY_CREATE (plus d'infos sur les actions ici : http://doc.thelia.net/en/documentation/ … tions.html)
$createEvent = new CategoryCreateEvent();
$createEvent
->setTitle($title)
->setLocale($locale)
->setParent(0)
->setVisible(true)
;
$this->dispatch(TheliaEvents::CATEGORY_CREATE, $createEvent);
$category = $createEvent->getCategory();
Si tu es dans un contrôleur, tu peux utiliser $this->dispatch() pour dispatcher l'event. Sinon, il faut te débrouiller pour récupérer le dispatcher.
L'action Category se charge de tout, et crée la catégorie. Les éventuels listeners de TheliaEvents::CATEGORY_CREATE sont aussi appelés.
Tu la récupères la catégorie créée avec $createEvent->getCategory();
Si tu veux modifier ta catégorie, tu procèderas de le même façon, en créant un CategoryUpdateEvent qui sera dispatché avec TheliaEvents::CATEGORY_UPDATE.
Tu peux trouver des exemples de ce genre de manips dans la classe CategoriesImport du module ImportT1.