OpenCart pre-orders

Sell it before it arrives

Mark a product, or one size of one, as a pre-order with the date you expect it, and Pre-Order tells the shopper before they click: a panel above the add-to-cart button, a line under the price on every product card in the store, and a button that says Pre-Order. When the stock lands, saving the product's quantity is the whole trigger. What it never does is decide who gets the units.

Get it on the marketplace Read the documentation

A product page above the add-to-cart row. A pale blue panel headed “Pre-order” with a clock icon reads “Expected 17/03/2027”, then “You will not be charged today. When the item arrives we will email you a link to pay. Pre-order items have to be ordered on their own, without in-stock items in the same basket.” Under the panel, a Qty field holding 1 and a blue button labelled Pre-Order where Add to Cart would be.
What a shopper is told before the basket rather than at it: the date, the terms, and a button that says what it does. All three are yours to reword, per language, and none of it needs a template edit. The third sentence is the restriction, printed where a customer meets it: a deferred pre-order is checked out on its own.

Charge now, or charge when it lands

Take the money at checkout through your own payment methods, as any other product does, or take the order charging nothing and email a payment link once the stock arrives. It is set per product, and per option value where one size is a pre-order and the rest are on the shelf. A line takes the latest date of what the shopper chose and defers if any part of it defers, so a basket is never told a date the order cannot keep.

Saving the quantity is the whole trigger

Stock arrives, you type the new number into the product you already had open, and every line waiting on it is marked ready. The orders whose lines have all landed are asked to pay, and the customer gets a link that opens their order at the price they placed it at. No screen to visit, no batch to run. And if what arrived does not cover everybody waiting, nothing is sent: the orders are held with the shortfall printed beside them.

A payment window that closes on its own

One reminder halfway through, expiry at the end, and a link that is dead at the end of its window whether or not anything on your host ever calls OpenCart’s scheduler, because expiry is worked out when the link is opened. One reminder ever, recorded, so a scheduler catching up three weeks late cannot fire a burst. Zero days means a link that never lapses.

The link is the identity, so a guest can pre-order

Single-use, emailed, no account required, because a store that sells to guests should be able to take a pre-order from one. Coming back to pay replays the order exactly as it was committed: nothing is recalculated, and the page says so above the total. Paid is one-way, and an order edit (which OpenCart implements by deleting and re-inserting every line) is rebuilt against the new rows with the date, the payment mode and the state each line had already reached.

Translation published, not claimed

Which of our strings a named native speaker has actually read is published per extension and per language, and anything unreviewed ships as English rather than as a blank or a raw identifier.

Everything it refuses to do sits on one page. Limits and guarantees says that it does not ration stock: there is no allocation, no queue and no first-come cut-off, and who gets the units when you are short is your decision, taken with the shortfall on screen. A deferred pre-order cannot share a basket with in-stock items, because an order carries one payment method and a part-paid order is not a thing this can represent. It moves no money, so cancelling a line or letting a payment window run out emails nobody and refunds nothing. Only option values OpenCart gives their own stock quantity can be pre-ordered. A heavily customised theme may show no panel and no card line at all: both are placed at one anchor in your store's own templates, and a template the anchor does not fit is left as OpenCart drew it, with no error anywhere. And nothing of yours is deleted when you uninstall, including the live payment links. Worth reading before you buy.

Questions people ask before buying

Can I sell a product in OpenCart before the stock arrives?

Yes. Mark a product, or one size of one, as a pre-order with the date you expect it, and the shopper is told before they click: a panel above the add-to-cart button, a line under the price on every product card, and a button that says Pre-Order.

Do I have to take the money up front?

No. You either charge in full at checkout or email a payment link once the stock lands, with a payment window that closes on its own.

Does it work with OpenCart 4?

Every Kyvero extension is built for OpenCart 4.x. Each one declares the lowest release it will install on and refuses to install below it, and its documentation lists the releases a full install-and-upgrade pass was run against.

Do I get the source code?

Yes. An extension is PHP on your own server: readable, not obfuscated, and with no remote licence check to fail. Your copy is yours to modify and to keep backed up.

Who answers when something goes wrong?

A developer, usually the one who wrote the extension. There are two official routes, the support portal and the support address, and both arrive in the same place.