Available for projects & agency overflow · Quick reply, from the person who does the work

Creating or editing custom order statuses on PrestaShop

Creating a custom status, hiding an existing one, or making a status change automatically based on an event: order status management touches display, the associated email, and sometimes a 500 error when one of the two is misconfigured.

Describe my issue Send a message

What’s a back-office setting

Statuses are managed under Orders > Statuses, where each one can have its own label, colour, and above all an automatic email trigger to the customer, with its own template. Creating a new status, attaching or removing its email, changing its colour: all of that happens from this screen, no development needed.

What isn’t natively supported, though: hiding an existing status from certain back-office users, or pulling it out of the standard workflow while keeping it for history. A status can be disabled or deleted, it can’t be conditionally hidden without development.

The 500 error on a status change

This is a common case and almost always traces back to the same cause: the email template tied to the new status is missing, malformed, or references a logo that can’t be found. A status change triggers the email being generated, and one undefined Smarty variable in that template is enough to break the whole process with a 500 error, even if the status-change logic itself is correct.

I always start by checking the email template for the status in question, inside the mails/ folder for the language used, before looking for a more complex cause.

Automating a status change

Making a status change automatically — for example as soon as a carrier tracking number is entered on the order — isn’t natively available in PrestaShop. It requires hooking code onto an appropriate hook, for instance when the order is updated, to trigger the status change under the desired condition. That’s targeted development, not a setting.

Related pages

Describe your need in one minute

A few targeted questions so I can reply with an estimate rather than another questionnaire.

objectif
version
emplacement (facultatif)
existant (facultatif)
echeance (facultatif)
Please provide an email or a phone number so I can get back to you.

Please provide an email or a phone number so I can get back to you.

Frequently asked questions

Can a status be hidden without deleting it?
Not natively for conditional use: PrestaShop only offers enabling or disabling a status globally. Hiding it based on the back-office user’s profile needs development.
Does a module exist that automatically changes an order’s status?
Modules exist for specific cases, such as payment or carrier, but for logic specific to a given site, I generally build a dedicated hook rather than adapting a generic module.
Why does a 500 error only appear on certain statuses?
Because each status has its own email template: if only one of those templates is broken, only the change to that specific status triggers the error, the others keep working normally.
Can an existing status be renamed without risk?
Yes, renaming the label has no technical impact. What needs more care is changing its behaviour — history colour, email sending, associated invoicing status — since other site settings can rely on it.