<?php
require __DIR__ . '/vendor/autoload.php';
use Automattic\WooCommerce\Client;

// Conectar a la API de WooCommerce
$woocommerce = new Client(
    'https://compranet.com.co',
    'ck_910af40e780677e03593d388885a2e58b7c4fa43',
    'cs_2983cea05dbc631dc6236c61c79feb35a61666cf',
    [
        'version' => 'wc/v3',
    ]
);

// Conectar a la base de datos MySQL
$servername = "localhost";
$username = "ndconsulta";
$password = "Nitro2021";
$dbname = "db_compranet";

$conn = new mysqli($servername, $username, $password, $dbname);

// Verificar conexión
if ($conn->connect_error) {
    die("Conexión fallida: " . $conn->connect_error);
}

// Limpiar tablas
$conn->query("TRUNCATE TABLE wp_publicados_raiz");
$conn->query("TRUNCATE TABLE wp_publicados_atributos");

// Función para obtener todos los productos con paginación
function get_all_products($woocommerce) {
    $page = 1;
    $products = [];

    do {
        $results = $woocommerce->get('products', ['per_page' => 100, 'page' => $page]);
        $products = array_merge($products, $results);
        $page++;
    } while (count($results) > 0);

    return $products;
}

// Función para obtener todas las variaciones de un producto con paginación
function get_all_variations($woocommerce, $product_id) {
    $page = 1;
    $variations = [];

    do {
        $results = $woocommerce->get("products/$product_id/variations", ['per_page' => 100, 'page' => $page]);
        $variations = array_merge($variations, $results);
        $page++;
    } while (count($results) > 0);

    return $variations;
}

// Obtener todos los productos
$products = get_all_products($woocommerce);

foreach ($products as $product) {
    // Insertar datos en wp_publicados_raiz
    $id = $product->id;
    $sku = $product->sku;

    $stmt = $conn->prepare("INSERT INTO wp_publicados_raiz (id, referencia) VALUES (?, ?)");
    $stmt->bind_param("is", $id, $sku);
    $stmt->execute();

    // Obtener y procesar variaciones de productos
    if ($product->type === 'variable') {
        $variations = get_all_variations($woocommerce, $product->id);

        foreach ($variations as $variation) {
            // Insertar datos de variaciones en wp_publicados_atributos
            $var_id = $variation->id;
            $var_sku = $variation->sku;

            $stmt = $conn->prepare("INSERT INTO wp_publicados_atributos (id, referencia) VALUES (?, ?)");
            $stmt->bind_param("is", $var_id, $var_sku);
            $stmt->execute();
        }
    }
}

$stmt->close();
$conn->close();

echo "Datos importados correctamente.";
?>