34849-vm/get_product_details.php
2026-02-12 12:13:18 +00:00

45 lines
1.5 KiB
PHP

<?php
header('Content-Type: application/json');
require_once 'db/config.php';
$response = ['success' => false, 'message' => 'No se proporcionó un identificador de producto.'];
$pdo = db();
$product = null;
// Universal search: treat any incoming ID as a potential SKU.
$sku = '';
if (isset($_GET['codigo_barras'])) {
$sku = trim($_GET['codigo_barras']);
} elseif (isset($_GET['sku'])) {
$sku = trim($_GET['sku']);
} elseif (isset($_GET['id'])) {
$sku = trim($_GET['id']);
}
if (!empty($sku)) {
try {
// Search by the 'sku' column
$stmt = $pdo->prepare("SELECT id, nombre, sku FROM products WHERE sku = :sku");
$stmt->execute(['sku' => $sku]);
$product = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$product) {
$response['message'] = 'Producto no encontrado con el SKU proporcionado: ' . htmlspecialchars($sku);
// Log the failed SKU attempt to a file
$log_message = date('[Y-m-d H:i:s]') . " Intento fallido de búsqueda con SKU: " . $sku . PHP_EOL;
file_put_contents('sku_failures.log', $log_message, FILE_APPEND);
}
} catch (PDOException $e) {
// Don't expose detailed SQL errors to the client
error_log('Database Error: ' . $e->getMessage());
$response['message'] = 'Error al consultar la base de datos.';
}
} else {
$response['message'] = 'El SKU/código de barras no puede estar vacío.';
}
if ($product) {
$response = ['success' => true, 'product' => $product];
}
echo json_encode($response);
?>