Wocart

Order form

Each store chooses what its order form asks. Dashboard → Checkout form; through the API, GET and PUT /api/checkout-form. A store that never changes it keeps the original form.

What can change

FieldChoicesWhy
Full name, phone, wilaya, communeAlways requiredA cash-on-delivery parcel needs a name and a phone; the wilaya and commune set the delivery price
AddressRequired or optionalIt cannot be hidden: carriers need it for a home delivery. Required applies to home delivery only; a stop-desk parcel is collected at the desk
Order notesOptional or hiddenHiding it shortens the form; shoppers can no longer leave delivery instructions
EmailRequired, optional or hiddenHidden by default
Delivery optionsHome, stop desk, or bothAt least one stays on
Your own questionsUp to 5Short text, long text, number, or a list of choices; each can be required

Your own questions

Answers appear on the order in the dashboard. They are never sent to carriers.

Each answer is kept with the question's wording at the time of the order, so renaming or deleting a question later never changes what an old order says.

The server enforces it

The storefront shows the form the store configured, and the server checks every order against it:

  • something hidden that still arrives, like a note from an old cached page, is dropped and the order goes through;
  • something the shopper agreed to that the store no longer allows, like a delivery option turned off, refuses the order with a message in the store's language, rather than silently changing the delivery fee.

Product and landing pages may be cached for a short time, so a shopper can be looking at the form as it was before a change. Making the form stricter can then refuse an order from that page, with a message asking the shopper to refresh; making it looser never refuses one.

What the email is for

When a shopper gives one, it is shown on the order and sent to Meta, hashed, with the conversion, which improves how Meta matches the order to an ad. It is never sent in clear.

Orders your team creates in the dashboard are not checked against this form.

Permissions

checkout_form:read to see the form's settings, checkout_form:manage to change them.