Данное дополнение позволяет в CSV-файл добавить поле (столбец) с названием CPU и сохранить при импорте его содержимое в поле uri таблиц товаров и категорий. Насколько я помню, поля именно с таким названием используются в самом распространенном модуле ЧПУ.
1. В файле catalog_import_functions.php
1.1 в функции imGetImportConfiguratorHtmlCode
после строки
<option value=\"eproduct_download_times\"".mark_as_selected($data[$i][$j],ADMIN_EPRODUCT_DOWNLOAD_TIMES).">".ADMIN_EPRODUCT_DOWNLOAD_TIMES."</option>
вставляем
<option value=\"uri\"".mark_as_selected($data[$i][$j],"CPU").">ЧПУ-ссылка</option>
здесь uri это имя поля в SQL-таблице, CPU это имя поля в CSV-файле, ЧПУ-ссылка - текст в выпадающем списке.
1.2 в функции _createBackwards
перед строкой
"eproduct_download_times" => "not defined"
вставляем
"uri" => "not defined",
после строки
else if ($value == "eproduct_download_times" ) $dbc["eproduct_download_times"] = $i;
вставляем
else if ($value == "uri" ) $dbc["uri"] = $i;
1.3 в функции _importCategory
вместо строки
" (name, parent, products_count, description, ".
вставляем
" (name, parent, products_count, description, uri, ".
после строки
" '".xEscSQL($row[ $dbc["description"] ])."', ".
вставляем
" '".xEscSQL($row[ $dbc["uri"] ])."', ".
1.4 в функции _importProduct
после строк
if ( strcmp($dbc["title"], "not defined") )
$title = $row[ $dbc["title"] ];
else $title = xHtmlSpecialCharsDecode($rowdb["title"]);
вставляем
if ( strcmp($dbc["uri"], "not defined") ) $uri = $row[ $dbc["uri"] ];
else $uri = xHtmlSpecialCharsDecode($rowdb["uri"]);
вместо строки
$free_shipping, $min_order_amount, $shipping_freight, null, $title, 0);
вставляем
$free_shipping, $min_order_amount, $shipping_freight, null, $title, 0, $uri );
после строк
if ( strcmp($dbc["shipping_freight"], "not defined") )
$shipping_freight = (float)$row[ $dbc["shipping_freight"] ];
вставляем
if ( strcmp($dbc["uri"], "not defined") )
$uri = $row[ $dbc["uri"] ];
вместо строки
CONF_DEFAULT_TAX_CLASS, $row[ $dbc["title"] ],0 );
вставляем
CONF_DEFAULT_TAX_CLASS, $row[ $dbc["title"] ],0, $uri );
2. в файле product_functions.php
2.1 в функции UpdateProduct
вместо строки
$free_shipping, $min_order_amount, $shipping_freight, $classID, $title, $updateGCV = 1 )
вставляем
$free_shipping, $min_order_amount, $shipping_freight, $classID, $title, $updateGCV = 1, $uri="")
перед строкой
"title = '".xToText(trim($title))."' ";
вставляем
"uri='".xToText(trim($uri))."', ".
2.2 в функции AddProduct
вместо строки
$classID, $title, $updateGCV = 1 )
вставляем
$classID, $title, $updateGCV = 1, $uri="")
вместо строки
" free_shipping, min_order_amount, shipping_freight, classID, title ".
вставляем
" free_shipping, min_order_amount, shipping_freight, classID, title, uri ".
после строки
xToText(trim($title))."' ".
вставляем
xToText(trim($uri))."' ".
PS. возможно, понадобится преобразовывать поле uri при записи функцией urlencode, это уже код конкретного модуля ЧПУ надо смотреть.