Your First Sale¶
This walkthrough takes you through the entire lifecycle once: create a product, place an order as a customer, pay it, and watch PNLCS provision the hosting account automatically. Do this once and the whole system will make sense.
Prerequisites
Step 1 — Create a product group¶
Setup → Products/Services → New Group
A group is just a category customers browse, e.g. Shared Hosting. Give it a name and save. Edit on the group's row renames it or hides it from the store; Delete shows on a group with no products in it.
Step 2 — Create a product¶
Setup → Products/Services → New Product
Any product is made here, hosting or not: a support plan or a monitoring service is a product with Type → Other and no server module, priced on the billing cycles you sell it on. Add Invoice Item is something else: a ready-made line for invoices you create by hand.
- Product Name: e.g. "Starter Hosting"
- Product Group: the group you just made
- Server Module: the kind of server this plan provisions on (Panelica, cPanel, Plesk…), or none if you will set accounts up by hand. A product picks a module, not a single server.
- Server Group (optional): limit it to the servers in one group; left on Any server of that type, PNLCS uses any server with that module.
- Plan on the server: the package the account is created with.
- Auto Setup: choose when the account is created —
- As soon as the first payment is received (most common)
- As soon as the order is placed, before payment
- Only when an admin accepts the order
- Pricing: a price per currency and billing cycle.
-1disables a cycle.
Press Create Product. PNLCS opens the product's edit page, where the rest of its settings live, for example Free domain with this product: the first year of a domain registered or transferred with it is free, and it renews at the normal price. The product now appears in the customer shop.
What is 'auto-setup'?
It decides when the hosting account is actually created on your server. Most hosts provision on the first payment so nobody gets a live account without paying. See The Billing Lifecycle.
Step 3 — Place a test order as a customer¶
Open an incognito/private browser window so you're not logged in as admin.
- Go to
https://example.com/client/registerand create a test customer. - Browse the shop, pick your product, choose a billing cycle.
- Enter a domain name for the account and continue to checkout. If the customer registers or transfers that domain, it is its own line in the cart, next to the hosting.
- An order and an unpaid invoice are created.
Step 4 — Pay the invoice¶
Pay using your gateway's test mode (e.g. Stripe test card
4242 4242 4242 4242, any future expiry, any CVC).
The moment the payment is confirmed, PNLCS:
- Marks the invoice paid
- Accepts the order
- Provisions the account on your server (if auto-setup is on payment)
- Sends the customer a welcome email with their login details
Step 5 — Verify everything worked¶
Back in the admin panel:
- Billing → Invoices: the invoice is Paid
- Clients → View/Search Clients → your test client → Services: the service is Active
- Orders → List All Orders: the order is Active
- If a server module is connected, the account exists on that server
Congratulations — that's a full sale, start to finish. Everything else in PNLCS is a variation on this loop.
Understand what just happened¶
- A product is what you sell.
- An order is a customer's request to buy it.
- An invoice is the bill for that order.
- A service is the live thing the customer now owns (the hosting account), which renews and bills on its own cycle.
Read Products, Services, Orders & Invoices for the full picture.