false, 'ERROR' => 'missing_params', 'MESSAGE' => 'OrderID is required.']); } try { $qOrder = queryOne("SELECT ID, StatusID FROM Orders WHERE ID = ? LIMIT 1", [$OrderID]); if (!$qOrder) { apiAbort(['OK' => false, 'ERROR' => 'not_found', 'MESSAGE' => 'Order not found.']); } if ((int) $qOrder['StatusID'] !== 0) { apiAbort(['OK' => false, 'ERROR' => 'invalid_status', 'MESSAGE' => 'Only cart orders can be abandoned.']); } // Delete line items queryTimed("DELETE FROM OrderLineItems WHERE OrderID = ?", [$OrderID]); // Mark order with status 7 (Deleted) queryTimed("UPDATE Orders SET StatusID = 7, LastEditedOn = NOW() WHERE ID = ?", [$OrderID]); jsonResponse(['OK' => true, 'MESSAGE' => 'Order abandoned successfully.']); } catch (Exception $e) { jsonResponse(['OK' => false, 'ERROR' => 'server_error', 'MESSAGE' => 'Failed to abandon order: ' . $e->getMessage()]); }