Здравствуйте, пишу скрипт для импорта категорий из api в mysql
<?php
// Получаем данные с API
$json = file_get_contents('https://api.gdeslon.ru/gdeslon-categories.json');
$categories = json_decode($json, true);
// Подключение к базе данных
$host = '----';
$username = '----';
$password = '-----';
$dbname = '-----';
// Соединяемся с базой данных
$conn = mysqli_connect($host, $username, $password, $dbname);
// Меняю кодировку подключения к mysql
mysqli_query($conn, "SET NAMES utf8");
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// Перебираем данные и добавляем их в базу данных
foreach ($categories as $category) {
$term_id = $category['_id'];
$parent = $category['parent_id'];
$name = mysqli_real_escape_string($conn, $category['name']);
$slug = strtolower(str_replace(' ', '-', $name));
$path = trim($category['path'], '/');
$api_id = $category['_id'];
// Проверяем, существует ли категория с таким же slug
$sql = "SELECT * FROM wp_terms WHERE slug = '$slug'";
$result = mysqli_query($conn, $sql);
// Если категория уже существует, обновляем её данные
if (mysqli_num_rows($result) > 0) {
$row = mysqli_fetch_assoc($result);
$term_id = $row['term_id'];
$sql = "UPDATE wp_terms SET name = '$name' WHERE term_id = $term_id";
mysqli_query($conn, $sql);
echo "Категория со слагом $slug уже существует. обновлено.<br>";
} else {
// Вставляем новую категорию
$sql = "INSERT INTO wp_terms (term_id, name, slug) VALUES ($term_id, '$name', '$slug')";
if (mysqli_query($conn, $sql) === TRUE) {
$term_id = mysqli_insert_id($conn);
if ($parent != 0) {
$sql = "INSERT INTO wp_term_relationships (object_id, term_taxonomy_id) VALUES ($parent, $term_id)";
mysqli_query($conn, $sql);
}
$sql = "INSERT INTO wp_term_taxonomy (term_id, taxonomy, parent) VALUES ($term_id, 'product_cat', $parent)";
mysqli_query($conn, $sql);
$term_taxonomy_id = mysqli_insert_id($conn);
$sql = "INSERT INTO wp_termmeta (term_id, meta_key, meta_value) VALUES ($term_id, 'thumbnail_id', '')";
mysqli_query($conn, $sql);
echo "Category with ID $term_id added successfully.<br>";
} else {
echo "Error adding category: " . mysqli_error($conn) . "<br>";
}
}
}
// Закрываем соединение с базой данных
mysqli_close($conn);
?>
Почему то не как не хочет строится иерархия категорий id parent_id
Часть логов
Error adding category: Duplicate entry '1' for key 'PRIMARY'
Error adding category: Duplicate entry '2' for key 'PRIMARY'
Error adding category: Duplicate entry '3' for key 'PRIMARY'
Error adding category: Duplicate entry '5' for key 'PRIMARY'
Error adding category: Duplicate entry '6' for key 'PRIMARY'
Error adding category: Duplicate entry '8' for key 'PRIMARY'
Error adding category: Duplicate entry '10' for key 'PRIMARY'
Error adding category: Duplicate entry '13' for key 'PRIMARY'
Error adding category: Duplicate entry '14' for key 'PRIMARY'
Категория со слагом Картины уже существует. обновлено.
Категория со слагом Сувениры уже существует. обновлено.
Категория со слагом Подарочные-наборы уже существует. обновлено.
Категория со слагом Масштабные-модели уже существует. обновлено.
Категория со слагом Иконы уже существует. обновлено.
Категория со слагом Подарочные-свечи уже существует. обновлено.
Категория со слагом Подарки уже существует. обновлено.
Во вкладке категорий они отсутствуют
При создание товаров присутствуют, без иерархии.