prepare("SELECT * FROM orders WHERE id = ?");
$stmt->execute([$order_id]);
$order = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$order) {
echo "
Order not found.
";
exit;
}
$stmt = $pdo->prepare("SELECT * FROM order_items WHERE order_id = ?");
$stmt->execute([$order_id]);
$items = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo "Podrobnosti naročila #{$order_id}";
echo "";
echo "
Naročilo #{$order_id}
";
echo "
Stranka: {$order['customer_name']}
Email: {$order['customer_email']}
Naslov: {$order['customer_address']}
Telefon: {$order['customer_phone']}
";
echo "
Status: {$order['status']}
Skupaj: {$order['total_amount']} €
Datum: {$order['created_at']}
";
echo "
Izdelki
";
echo "
Izdelek | Količina | Cena |
";
foreach ($items as $item) {
echo "{$item['product_name']} | {$item['quantity']} | {$item['total_price']} € |
";
}
echo "
";
echo "
";
echo "
";
exit;
}
// Default: return all orders as JSON (API)
$stmt = $pdo->query("SELECT * FROM orders");
$orders = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($orders as &$order) {
$stmt = $pdo->prepare("SELECT * FROM order_items WHERE order_id = ?");
$stmt->execute([$order['id']]);
$order['items'] = $stmt->fetchAll(PDO::FETCH_ASSOC);
}
header('Content-Type: application/json; charset=utf-8');
echo json_encode($orders);
}
// POST create new order
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$data = json_decode(file_get_contents("php://input"));
// Start transaction
$pdo->beginTransaction();
try {
// Create order
$stmt = $pdo->prepare("INSERT INTO orders (customer_name, customer_email, customer_address, total_amount, status) VALUES (?, ?, ?, ?, ?)");
$stmt->execute([
$data->customer->name,
$data->customer->email,
$data->customer->address,
$data->total,
'pending'
]);
$order_id = $pdo->lastInsertId();
// Add order items
foreach($data->items as $item) {
$stmt = $pdo->prepare("INSERT INTO order_items (order_id, product_id, product_name, quantity, unit_price) VALUES (?, ?, ?, ?, ?)");
$stmt->execute([
$order_id,
$item->product_id,
$item->product_name,
$item->quantity,
$item->unit_price
]);
// Update product stock
$stmt = $pdo->prepare("UPDATE products SET stock = stock - ? WHERE id = ?");
$stmt->execute([$item->quantity, $item->product_id]);
}
// Commit transaction
$pdo->commit();
http_response_code(201);
echo json_encode(array("success" => true, "order_id" => $order_id));
} catch(Exception $e) {
// Rollback on error
$pdo->rollBack();
http_response_code(500);
echo json_encode(array("success" => false, "message" => $e->getMessage()));
}
}
// UPDATE order status (Admin only)
if ($_SERVER['REQUEST_METHOD'] === 'PUT') {
require_once 'require_auth.php'; // This now includes admin role checking
$data = json_decode(file_get_contents("php://input"));
$id = $_GET['id'] ?? null;
if($id) {
$stmt = $pdo->prepare("UPDATE orders SET status = ? WHERE id = ?");
$stmt->execute([$data->status, $id]);
echo json_encode(array("success" => true, "message" => "Order updated"));
} else {
http_response_code(400);
echo json_encode(array("success" => false, "message" => "Order ID required"));
}
}
?>