private static function createCategories($category, $parentId = null) { if (!$category->is_active) { return; } try { $categoryEssence = MagentoConnector::$ws->catalogCategoryInfo(MagentoConnector::getActiveSession(), $category->category_id, null, null); } catch (SoapFault $e) { Logger::alert('Erro ao recuperar informacao da categoria.', $e, MagentoConnector::$ws->__getLastRequest()); } $categoryData = new Category($categoryEssence, $parentId); //If category exists, update instead of creating a new one. // if($currentCategory = self::existsByName($categoryData)) // $categoryData->Id = $currentCategory->CategoryGetByNameResult->Id; if (self::$categoryCounter) { $categoryData->Id = 1; self::$categoryCounter = 0; } try { $result = VtexConnector::$ws->CategoryInsertUpdate($categoryData->toVtex()); Logger::info("Categoria criada/atualizada: " . $result->CategoryInsertUpdateResult->Id . " - " . $result->CategoryInsertUpdateResult->Name); } catch (SoapFault $e) { Logger::alert('Erro ao inserir/atualizar categoria.', $e, VtexConnector::$ws->__getLastRequest()); } if (count($category->children) > 0) { foreach ($category->children as $subCategory) { self::createCategories($subCategory, $result->CategoryInsertUpdateResult->Id); } } }