Все товары minishop2 по url в папке product

Добрый день!
Интернет магазин на 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 тоже не подходит.
Илья Александрович
14 апреля 2020, 16:15
modx.pro
747
0

Комментарии: 4

Евгений Webinmd
15 апреля 2020, 00:35
0
Заморозка URL — вполне себе вариант.
Можно все товары создавать в категории products и использовать мультикатегории
    Илья Александрович
    15 апреля 2020, 11:51
    0
    а как сделать автоматизированную заморозку URL?
    в ручную прописывать у каждого товара, как так себе дело.
      Евгений Webinmd
      15 апреля 2020, 12:19
      0
      плагин на сохранение. Вон у вас в посте есть кусок кода, добавьте просто uri_override=1
      if ( $resource->class_key == 'msProduct' ) {
          $uri = 'product/' . $resource->pagetitle . '.html';
          $resource->set('uri', $uri);
          $resource->set('uri_override', 1);
          $resource->save();
      }
    Aleksandr Huz
    15 апреля 2020, 12:39
    0
    Можно в консоле выполнить:
    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 и установлена галочка 'Использовать псевдоним в пути псевдонимов'
    В этом случае при создании товара вам не нужно ничего делать. А для новой категории убрать соответствующую галочку.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      4