Добрый день.
Написал некий скрипт для добавления товаров из excel, все работает как надо, но, товары имеющие одинаковые названия (например: "фильтр масляный" и "фильтр масляный" не хотят добавляться, то есть добавляется только один из них). Я полагаю, что дело в скрипте, так как помимо добавления товаров нужно еще еженедельно делать обновление остатков и цен, подскажите пожалуйста где моя ошибка?
Написал некий скрипт для добавления товаров из excel, все работает как надо, но, товары имеющие одинаковые названия (например: "фильтр масляный" и "фильтр масляный" не хотят добавляться, то есть добавляется только один из них). Я полагаю, что дело в скрипте, так как помимо добавления товаров нужно еще еженедельно делать обновление остатков и цен, подскажите пожалуйста где моя ошибка?
| Код |
|---|
...
foreach($prod_res->data as $val)
{
$sectionName = $q;
$parentSectionId = getSectionId($sectionName);
$productName = $val->itemTitle;
$arFilterProduct = Array(
"IBLOCK_ID" => IBLOCK_CATALOG,
'NAME' => $productName,
"IBLOCK_SECTION_ID" => $parentSectionId,
'ACTIVE' => 'Y',
);
$resProduct = CIBlockElement::GetList(Array('SORT' => 'ASC'), $arFilterProduct, false, false, array());
$el = new CIBlockElement;
$arr = array(
"IBLOCK_ID" => IBLOCK_CATALOG,
"IBLOCK_SECTION_ID" => $parentSectionId,
"NAME" => $productName,
"CODE" => rus2translit($productName) . $val->mnd,
"ACTIVE" => 'Y',
"DETAIL_PICTURE" => CFile::MakeFileArray($img_pr),
"PROPERTY_VALUES" => array(
'ARTICLE' => '',
'ARTICLE_MANUFACTURER' => $val->mnd,
'PROP_165' => $val->manufacturer,
'PRICE_TITLE' => $val->priceTitle,
'SOURCE_TYPE' => $val->sourceType
)
);
if ($arResProduct = $resProduct->Fetch()) {
$res = $el->Update($arResProduct["ID"], $arr);
//echo "Позиция обновлена \n";
} else {
if ($arResProduct["ID"] = $el->Add($arr)) {
//echo "Новый товар ИД: " . $arResProduct["ID"] . "\n";
} else {
//echo "Ошибка товарd: " . $el->LAST_ERROR . "\n";
}
}
$price = array(
"PRODUCT_ID" => $arResProduct["ID"],
"CATALOG_GROUP_ID" => 1,
"PRICE" => $val->price,
"CURRENCY" => "RUB"
);
$resPrice = CPrice::GetList(
array(), array(
"PRODUCT_ID" => $arResProduct["ID"],
"CATALOG_GROUP_ID" => 1
)
);
$quantityp = array(
"ID" => $arResProduct["ID"],
"QUANTITY" => $val->availability
);
$arrPrice = $resPrice->Fetch();
if ($arrPrice) {
//echo "> обновлен \n";
CPrice::Update($arrPrice["ID"], $price);
CCatalogProduct::Add($quantityp);
} else {
//echo "Price add\n";
CCatalogProduct::Add($quantityp);
CPrice::Add($price);
}
}
...
|