- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/tradingplatform/ebay/api/categories.php
- Класс: BitrixSaleTradingPlatformEbayApiCategories
- Вызов: Categories::refreshVariationsTableData
public function refreshVariationsTableData(array $ebayCategoriesIds = array())
{
$refreshedCount = 0;
$specXml = $this->getItemSpecifics(array(
"CategoryID" => empty($ebayCategoriesIds) ? $this->getMappedCategories() : $ebayCategoriesIds
));
$specifics = new SimpleXMLElement($specXml, LIBXML_NOCDATA);
foreach($specifics->Recommendations as $categoryRecommendation)
{
foreach($categoryRecommendation->NameRecommendation as $nameRecommendation)
{
$fields = array(
"CATEGORY_ID" => $categoryRecommendation->CategoryID->__toString(),
"NAME" => $nameRecommendation->Name->__toString()
);
if(isset($nameRecommendation->ValidationRules))
{
if($nameRecommendation->ValidationRules->MinValues)
$fields["MIN_VALUES"] = $nameRecommendation->ValidationRules->MinValues->__toString();
else
$fields["MIN_VALUES"] = 0;
if($nameRecommendation->ValidationRules->MinValues)
$fields["MAX_VALUES"] = $nameRecommendation->ValidationRules->MaxValues->__toString();
else
$fields["MAX_VALUES"] = 0;
$fields["REQUIRED"] = intval($fields["MIN_VALUES"]) > 0 ? "Y" : "N";
$fields["SELECTION_MODE"] = $nameRecommendation->ValidationRules->SelectionMode->__toString();
$fields["ALLOWED_AS_VARIATION"] = $nameRecommendation->ValidationRules->VariationSpecifics->__toString() == "Enabled" ? "Y" : "N";
$fields["HELP_URL"] = $nameRecommendation->ValidationRules->HelpURL->__toString();
}
if(isset($nameRecommendation->ValueRecommendation))
{
$values = array();
foreach($nameRecommendation->ValueRecommendation as $valueRecommendation)
$values[] = $valueRecommendation->Value->__toString();
$fields["VALUE"] = $values;
}
if(mb_strtolower(SITE_CHARSET) != 'utf-8')
$fields = BitrixMainTextEncoding::convertEncodingArray($fields, 'UTF-8', SITE_CHARSET);
$res = CategoryVariationTable::getList(array(
"filter" => array(
"CATEGORY_ID" => $fields["CATEGORY_ID"],
"NAME" => $fields["NAME"]
),
"select" => array("ID")
));
if($savedVar = $res->fetch())
$result = CategoryVariationTable::update($savedVar["ID"], $fields);
else
$result = CategoryVariationTable::add($fields);
if($result->isSuccess())
{
$refreshedCount++;
}
}
}
return $refreshedCount;
}