58 lines
2.2 KiB
PHP
58 lines
2.2 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;
|
|
|
|
// Handle search by SKU (barcode)
|
|
if (isset($_GET['codigo_barras'])) {
|
|
$sku = trim($_GET['codigo_barras']);
|
|
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/código de barras proporcionado.';
|
|
// 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.';
|
|
}
|
|
// Handle search by internal ID
|
|
} elseif (isset($_GET['id'])) {
|
|
$product_id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);
|
|
if ($product_id) {
|
|
try {
|
|
$stmt = $pdo->prepare("SELECT id, nombre, sku FROM products WHERE id = :id");
|
|
$stmt->execute(['id' => $product_id]);
|
|
$product = $stmt->fetch(PDO::FETCH_ASSOC);
|
|
if (!$product) {
|
|
$response['message'] = 'Producto no encontrado con el ID proporcionado.';
|
|
}
|
|
} catch (PDOException $e) {
|
|
error_log('Database Error: ' . $e->getMessage());
|
|
$response['message'] = 'Error al consultar la base de datos.';
|
|
}
|
|
} else {
|
|
$response['message'] = 'ID de producto inválido.';
|
|
}
|
|
}
|
|
|
|
if ($product) {
|
|
$response = ['success' => true, 'product' => $product];
|
|
}
|
|
|
|
echo json_encode($response);
|
|
?>
|