- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hola!
Estoy intentando insertar una categoría nueva, el siguiente código lo hace correctamente pero yo quisiera poder insertar el nombre para cada vista en diferentes idiomas
public function __construct( \Magento\Catalog\Model\ResourceModel\Category\CollectionFactory $collectionFactory, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Catalog\Model\CategoryFactory $categoryFactory ) { $this->categoryFactory = $categoryFactory; $this->storeManager = $storeManager; $this->collectionFactory = $collectionFactory; parent::__construct(); }
$category = $this->categoryFactory->create(); $category->setName('nombre en español'); $category->setName('nombre en francés'); // ??? $category->setParentId(3); $category->setIsActive(true); $category->setStoreId(3); $category->setLevel(count($ruta)); $category->setCustomAttributes([ "display_mode"=> "PRODUCTS", "is_anchor"=> "1" ]); $category->setPath(implode("/",$ruta)); $category->setData('description', 'description'); $category->save();
No he podido encontrar como indicar el nombre de la categoría según la vista
Alguna idea ?
Gracias!
Solved! Go to Solution.
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi @ggallego
Puede guardar el nombre de la categoría por ID de tienda actual. Por favor, compruebe el siguiente código:
$currentStoreId = $this->storeManager->getStore()->getId(); $category = $this->categoryFactory->create(); $category->setName('nombre en español'); $category->setParentId(3); $category->setIsActive(true); $category->setStoreId($currentStoreId); $category->setLevel(count($ruta)); $category->setCustomAttributes([ "display_mode"=> "PRODUCTS", "is_anchor"=> "1" ]); $category->setPath(implode("/",$ruta)); $category->setData('description', 'description'); $category->save();
Si se solucionó el problema, haga clic en Kudos / Aceptar como soluciones.
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi @ggallego
Puede guardar el nombre de la categoría por ID de tienda actual. Por favor, compruebe el siguiente código:
$currentStoreId = $this->storeManager->getStore()->getId(); $category = $this->categoryFactory->create(); $category->setName('nombre en español'); $category->setParentId(3); $category->setIsActive(true); $category->setStoreId($currentStoreId); $category->setLevel(count($ruta)); $category->setCustomAttributes([ "display_mode"=> "PRODUCTS", "is_anchor"=> "1" ]); $category->setPath(implode("/",$ruta)); $category->setData('description', 'description'); $category->save();
Si se solucionó el problema, haga clic en Kudos / Aceptar como soluciones.
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Re: Insertar una categoría para diferentes vistas de tienda mediante programación
Hola,
Entiendo que:
$this->storeManager->getStore()->getId();
Devuelve el id del store y no de la vista, yo tengo dos vistas en el store, una para Español y otra para Francés, la categoría pertenece al storeId 3
No tendría que indicar el id de la vista ?
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Re: Insertar una categoría para diferentes vistas de tienda mediante programación
Lo siento, lo que tu dices es correcto, el storeId pertenece a cada vista
Gracias