Пример #1
0
 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 (strtolower(SITE_CHARSET) != 'utf-8') {
                 $fields = \Bitrix\Main\Text\Encoding::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 > 0) {
                 $refreshedCount++;
             }
         }
     }
     return $refreshedCount;
 }