
<?php

require __DIR__ . '/vendor/autoload.php';
use Automattic\WooCommerce\Client;

// Configurar límites de tiempo y memoria
set_time_limit(0);

// Conectar a la base de datos de WooCommerce
$servername = "localhost";
$username = "ndconsulta";
$password = "Nitro2021";
$dbname = "db_compranet";
$idProducto = isset($_GET['idProducto']) ? (int)$_GET['idProducto'] : 0;

$isAll = isset($_GET['isall']) ? $_GET['isall'] : 0;
$isDesc = isset($_GET['isdesc']) ? $_GET['isdesc'] : 0;
$isImagen = isset($_GET['isimagen']) ? $_GET['isimagen'] : 0;
$isCategoria = isset($_GET['iscategoria']) ? $_GET['iscategoria'] : 0;

if ($idProducto == 0) {
    die("Por favor proporciona un idProducto válido.");
}

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("Conexión fallida: " . $conn->connect_error);
}

$query = "SELECT wp_id, SKU, nombre, descripcion, descripcioncorta, ImagenPrincipal, Impuesto, Envio, alto_cm, ancho_cm, largo_cm, peso_kg, Categoria, Etiqueta
          FROM vw_productos_raiz
          WHERE wp_id = $idProducto";

$result = $conn->query($query);

if ($result->num_rows > 0) {
    $row = $result->fetch_object();

    // Conectar a la API de WooCommerce
    $woocommerce = new Client(
        'https://compranet.com.co',
        'ck_910af40e780677e03593d388885a2e58b7c4fa43',
        'cs_2983cea05dbc631dc6236c61c79feb35a61666cf',
        ['version' => 'wc/v3']
    );

    $data = [];

    // Descripción y detalles básicos
    if ($isAll || $isDesc) {
        $data = array_merge($data, [
            'name' => $row->nombre,
            'sku' => $row->SKU,
            'description' => $row->descripcion,
            'short_description' => $row->descripcioncorta,
            //'tax_status' => $row->Impuesto,
            'dimensions' => [
                'length' => $row->largo_cm,
                'width' => $row->ancho_cm,
                'height' => $row->alto_cm
            ],
            'weight' => $row->peso_kg,
            'shipping_class' => $row->Envio
        ]);
    }

    // Imágenes
    if ($isAll || $isImagen) {
        $new_images = array_map(function ($url) { return ['src' => $url]; }, explode(',', $row->ImagenPrincipal));
        $data['images'] = $new_images;
    }

    // Categorías
    if ($isAll || $isCategoria) {
        $category_paths = explode('|', $row->Categoria);
        $categories = [];
        foreach ($category_paths as $path) {
            $parts = explode('>', $path);
            foreach ($parts as $part) {
                $trimmed_part = trim($part);
                $category_list = $woocommerce->get('products/categories', ['search' => $trimmed_part]);
                if (!empty($category_list)) {
                    foreach ($category_list as $category) {
                        if ($category->name === $trimmed_part) {
                            $categories[] = ['id' => $category->id];
                            break;
                        }
                    }
                }
            }
        }
        $data['categories'] = $categories;
    }

    // Actualizar producto en WooCommerce
    if (!empty($data)) {
        $woocommerce->put('products/' . $idProducto, $data);
        echo "Producto actualizado correctamente.";
    } else {
        echo "No se especificaron datos para actualizar.";
    }
} else {
    echo "No se encontró el producto.";
}

$conn->close();

?>
