Всем привет! Подскажите пожалуйста, есть ли какой-либо модуль или нативный метод, чтобы заполнить все seo атрибуты и alt атрибуты
для уже загруженных товаров в каталог? Нашел только вот эту инструкцию
Для просмотра ссылки Войди или Зарегистрируйся , но там описано только как до загрузки в каталог, а у меня уже всё загружено....
Вы в настройках инфоблока указали нужные данные?
Всем привет! Подскажите пожалуйста, есть ли какой-либо модуль или нативный метод, чтобы заполнить все seo атрибуты и alt атрибуты
для уже загруженных товаров в каталог? Нашел только вот эту инструкцию
Для просмотра ссылки Войди или Зарегистрируйся , но там описано только как до загрузки в каталог, а у меня уже всё загружено....
Если не изменения внесенные в инфоблок, не передаются товарам попробуйте сделать выгрузку снова. Ну или пройдитесь скриптом по всем товарам.
Вот пример, делал для обновления наценок на определенные группы товаров, по аналогии можете допилить под Ваши нужны:
if(CModule::IncludeModule("iblock") && CModule::IncludeModule("catalog")) {
echo "Скрипт запущен...<br />";
$newExtraId = 5; // ID нашей наценки
$newPriceId = 2; // ID типа цены, для которого задаём эту наценку
$catalogIblockType = "souvenirs"; // код типа инфоблока, для которого проводим обработку
$catalogSection = "1212";
$count = 0;
$rsProducts = CCatalogProduct::GetList(
array("ID" => "ASC"),
array("IBLOCK_TYPE" => $catalogIblockType
),
false,
false
);
while (($arProduct = $rsProducts->Fetch())/* && $count < 10*/) {
$prod = CCatalogProduct::GetByIDEx($arProduct["ID"]);
$section = 0;
$nav = CIBlockSection::GetNavChain(false, $prod["IBLOCK_SECTION_ID"]);
while($arNav = $nav->Fetch()){
if ($arNav["ID"] == $catalogSection) {
$section = 1;
}
}
if ($section == 1) {
$arPriceFields = Array(
"PRODUCT_ID" => $arProduct["ID"],
"CATALOG_GROUP_ID" => $newPriceId,
"EXTRA_ID" => $newExtraId,
"CURRENCY" => "RUB",
);
$rsProductPrices = CPrice::GetList(
array(),
array(
"PRODUCT_ID" => $arProduct["ID"],
"CATALOG_GROUP_ID" => $newPriceId
)
);
if ($arProductPrice = $rsProductPrices->Fetch()) {
if (CPrice::Update($arProductPrice['ID'], $arPriceFields, true) !== false) {
print "Обновлена цена ".$arProductPrice['ID']." для товара ".$arProduct["ID"]."<br />";
}
else {
print "Ошибка при обновлении цены ".$arProductPrice['ID']." для товара ".$arProduct["ID"].": ";
if ($ex = $APPLICATION->GetException())
echo $ex->GetString();
echo "<br />";
}
}
else {
$priceId = CPrice::Add($arPriceFields, true);
if ($priceId !== false) {
print "Добавлена новая цена для товара ".$arProduct["ID"]." ".$priceId."<br />";
}
else {
print "Ошибка при добавлении цены для товара ".$arProduct["ID"].": ";
if ($ex = $APPLICATION->GetException())
echo $ex->GetString();
echo "<br />";
}
}
$count++;
}
}
echo "Скрипт завершён. Обработано ".$count." товаров.";
}