Все товары minishop2 по url в папке product
        Добрый день! 
Интернет магазин на minishop2 v2.5.0 имеет большое кол-во товаров и url адрес товара у меня складывается из domain.ru/категории/под-категории/имя-продукта.html
Как сделать так, что бы у всех товаров был URL domain.ru/product/имя-продукта.html?
modx.pro/help/11344 — этот способ не сработал.
Плагином на событие OnDocFormSave.
    
    
                                                                                
            Интернет магазин на minishop2 v2.5.0 имеет большое кол-во товаров и url адрес товара у меня складывается из domain.ru/категории/под-категории/имя-продукта.html
Как сделать так, что бы у всех товаров был URL domain.ru/product/имя-продукта.html?
modx.pro/help/11344 — этот способ не сработал.
Плагином на событие OnDocFormSave.
if ( $resource->class_key == 'msProduct' ) {
    $uri = 'product/' . $resource->pagetitle . '.html';
    $resource->set('uri', $uri);
    $resource->save();
}Заморозка URL тоже не подходит.    Комментарии: 4
                Заморозка URL — вполне себе вариант.
Можно все товары создавать в категории products и использовать мультикатегории
                    Можно все товары создавать в категории products и использовать мультикатегории
                а как сделать автоматизированную заморозку URL?
в ручную прописывать у каждого товара, как так себе дело.
                    в ручную прописывать у каждого товара, как так себе дело.
                плагин на сохранение. Вон у вас в посте есть кусок кода, добавьте просто uri_override=1
                    if ( $resource->class_key == 'msProduct' ) {
    $uri = 'product/' . $resource->pagetitle . '.html';
    $resource->set('uri', $uri);
    $resource->set('uri_override', 1);
    $resource->save();
}            
                Можно в консоле  выполнить:
Но, можно указать всем категориям, чтобы они не использовали свои алиасы для формирования url:
В этом случае при создании товара вам не нужно ничего делать. А для новой категории убрать соответствующую галочку.
                    if($products = $modx->getCollection('msProduct')) {
    foreach($products as $product) {
        $product->set('uri_override', 1);
        $product->set('uri', 'product/' . $product->get('alias') . '.html');
        $product->save();
    }
}Но, можно указать всем категориям, чтобы они не использовали свои алиасы для формирования url:
$categories = $modx->getCollection('msCategory');
foreach($categories as $category) {
    $category->set('alias_visible', 0);
    $category->save();
}При условии, что все категории имеют общего родителя. У этого родителя должен быть алиас product и установлена галочка 'Использовать псевдоним в пути псевдонимов'В этом случае при создании товара вам не нужно ничего делать. А для новой категории убрать соответствующую галочку.
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.