Pre-release rule: leave Global Checkout off and every product Coming Soon. Saving gateway credentials does not require opening sales.
1. Upgrade an existing installation
Website path: Sign in as Admin → open /upgrade.php
- Create a current hosting/database backup.
- Upload the complete updated website over the existing files, preserving
config.local.phpand uploaded release packages. - Visit
https://your-domain.example/upgrade.php. - Select Create missing tables and defaults.
- Open Admin → Payments. Confirm all products say Coming Soon and Global Checkout is locked.
2. Configure Stripe in test mode
Website path: Admin → Payments → Stripe Checkout
- In Stripe, switch to test mode and copy the test publishable and secret keys.
- Paste the publishable key and secret key into the Stripe card.
- In Stripe Developers → Webhooks, add the webhook URL displayed by Domain Command Post.
- Subscribe at minimum to
checkout.session.completed. - Copy the webhook signing secret beginning
whsec_into the website. - Enable Stripe only for testing. Keep Global Checkout off.
- Select Save encrypted payment settings. The page should later say the secret is saved without displaying it.
3. Configure PayPal Sandbox
Website path: Admin → Payments → PayPal
- In the PayPal Developer Dashboard, create or choose a Sandbox REST app.
- Copy its Client ID and Client Secret.
- Leave Mode set to Sandbox (testing) and paste both values.
- Add the displayed PayPal webhook URL to that sandbox app.
- Subscribe to checkout/order and payment capture completion events.
- Copy the resulting Webhook ID into Domain Command Post.
- Enable PayPal only for testing and save. Keep Global Checkout off.
Understand the three locks
| Lock | Where | Required for a sale |
|---|---|---|
| Global checkout | Top of Admin → Payments | Must be enabled deliberately. |
| Gateway | Stripe or PayPal card | The selected provider must be enabled and fully configured. |
| Product | Catalog status and price | The individual product must be Available with a valid price. |
If any lock is closed, checkout rejects the order server-side. Hiding a button is not the security boundary.
Test before live mode
- Use sandbox/test credentials only.
- On a temporary non-production copy, mark one ordinary paid edition Available and enter a test price.
- Enable one test gateway and Global Checkout.
- Use a verified customer account to complete the provider’s test checkout.
- Confirm Admin → Payments shows the order and its status changes to Paid after the verified return/webhook.
- Cancel another test and confirm it records Cancelled without issuing access.
- Return the product to Coming Soon and turn Global Checkout off.
Move to live only after release approval
- Finalize price, refund policy, taxes, fulfillment, installers and support process.
- Replace test credentials with live credentials and create live webhook endpoints.
- Run a small authorized live transaction and refund test.
- Approve products individually. Monitor-Only, Custom, and Developer are intentionally excluded from ordinary public checkout.
- Enable Global Checkout last.
Secret handling: secret keys are encrypted at rest. Leaving a secret field blank keeps the saved value. Use the explicit Clear checkbox to remove it. Never send secrets in support tickets.
Still stuck?
Write down the edition, program version, the exact path you opened, the last successful step and the full visible error. Do not send product keys, passwords or provider secrets.
Contact support with those detailsBack to Help Center