if ($parent->is_loaded) { $zCategory->data['category_parent_id'] = $parent->val('category_id'); } } $zCategory->save(); // update alias $a = new Alias($db, $zCategory->val('category_alias_id')); if (!$a->is_loaded) { $a->setUrl($zCategory->getAliasUrl()); $a->data['alias_path'] = $zCategory->getAliasPath(); $a->save(); $zCategory->data['category_alias_id'] = $a->ival('alias_id'); $zCategory->save(); } } $categories_tree = Category::getCategoryTree($db); /* possibly update all stock numbers to zero here? */ /* produkty */ foreach ($xml->products->product as $product) { $save_product = true; $zVariant = null; $prod_total += 1; $prod_id = intval(trim($product->ean)); $zProduct = new Product($db); $zProduct->loadByExtId($prod_id); $price_sales = trim($product->price_sales); $price_eus = trim($product->price_eus); $product_price = $price_sales ? $price_sales : $price_eus; $product_name = trim($product->name);
$skippedProducts++; continue; } $data = []; $categoryData = []; $configProduct = new ConfigurableProduct($product); $categories = $configProduct->getCategoryIds(); $hasActiveCategories = false; echo sprintf("(%s) %s %s\n", --$open, str_pad($configProduct->getId(), 5), str_pad($configProduct->getName(), 30)); foreach ($categories as $categoryId) { $category = new Category($categoryId); if ($category->isVisible() && strlen($category->getName()) > 0 && !$category->isExcluded()) { if ($hasActiveCategories) { $categoryData['alternateCategoryId'][] = $categoryId; $categoryData['alternateCategoryName'][] = $category->getName(); $categoryData['alternateCategoryTree'][] = $category->getCategoryTree(); } else { $categoryData['defaultCategoryId'] = $categoryId; $categoryData['defaultCategoryName'] = $category->getName(); $categoryData['defaultCategoryTree'] = $category->getCategoryTree(); $categoryData['productType'] = $category->getName(); $categoryData['alternateCategoryId'] = []; $categoryData['alternateCategoryName'] = []; $categoryData['alternateCategoryTree'] = []; } $hasActiveCategories = true; } } // eo category if (!$hasActiveCategories) { // diese Produkte sollten eigentlich nicht mehr aktiv sein
static function getTreeForSelect($db) { $tree = Category::getCategoryTree($db); return $tree->getSelectList(); }