The Manage Servers & Services page allows enabling/disabling nodes and editing service rows.
+
The Invoice History page reads JSON payment records from .
+
The Edit Site Config page edits _website/includes/config.inc.php. Edits create a timestamped backup before saving.
+
+
+
Sandbox account (testing)
+
Use PayPal sandbox credentials when testing payments. Set your sandbox client_id and client_secret in the runtime config that the payment handlers use (for this site those are in the respective files under _website/paypal/ and _website/payments/ or in a central config if you moved credentials).
+
+
Create a sandbox business account at PayPal Developer and obtain a sandbox client ID/secret.
+
Update the payment handler config and restart the webserver if required.
+
Run a checkout using the PayPal JS button on the checkout page — after payment completes, the webhook will record a JSON file into .
+
If you need to simulate a webhook locally, drop a JSON file with the same schema into the data/ folder (we added a sample: SIMULATED-WEBHOOK-*.json).
+
+
+
Payments: high-level program flow
+
+
User adds an item and proceeds to checkout (_website/cart.php).
+
The checkout page renders the PayPal JS SDK and calls server-side endpoints (create_order/capture_order).
+
After a successful capture, PayPal sends a webhook event to _website/webhook.php (or the equivalent handler under _website/paypal/).
+
The webhook verifies the signature, fetches any missing order details, and writes a JSON record to the data/ directory (this powers invoices.php and return.php).
+
On successful payment we mark the order as PAID in the JSON and the site UI (invoices/returns) reads those JSONs to render receipts.
+
Admin pages can view invoices at ./invoices.php and reconcile or trigger further provisioning via internal panel APIs.