hello@kakorin.com

Массовое обновление ссылок (uri) товаров [MODX]

php

Ниже представлен пример обновления ссылок товаров в магазине minishop.

Так как часто встречаются сервера с небольшим количеством оперативной памяти, то мы сделали вариант, при котором можно лимитировать количество обработанных ссылок за раз.

Алгоритм действий прост:

ini_set("memory_limit", "512M");			// лимит памяти
ini_set('max_execution_time', "3200");			// лимит времени выполнения
						
$limit = 2500;						// лимит выборки
$offset = 0;						// отступ от начала выборки
$q = $modx->newQuery('msProduct');
$q->limit($limit,offset);
$docs = $modx->getCollection('msProduct',$q);
foreach($docs as $doc){
    $title = $doc->get('pagetitle') . '-' . $doc->get('id'); 	// то как будет выглядеть будущая ссылка, сейчас pagetitle - id
    $alias = $doc->cleanAlias($title);
    $doc->set('alias', $alias);
    $doc->save();
}