Generate order number before save order

Help for integrating the Laravel package
Forum rules
Always add your Laravel, Aimeos and PHP version as well as your environment (Linux/Mac/Win)
Spam and unrelated posts will be removed immediately!
krzysiekp
Advanced
Posts: 111
Joined: 05 Nov 2021, 16:19

Generate order number before save order

Post by krzysiekp » 27 Jan 2025, 21:26

I have additional column in mshop_order => order_no
How can I generate unique an order number just before it is saved to the database?

User avatar
aimeos
Administrator
Posts: 8705
Joined: 01 Jan 1970, 00:00

Re: Generate order number before save order

Post by aimeos » 28 Jan 2025, 09:54

There's already a column named invoiceno which you can use. If you just want the order ID to be displayed differently, you can also add a macro to the boot() method in your ./app/Providers/AppServiceProvider.php file.

Invoice number:

Code: Select all

\Aimeos\MShop\Order\Item\Standard::macro('invoicenumber', function($order) {
   return 'INV-' . $this->get( 'order.invoiceno', '' );
});
Order number:

Code: Select all

\Aimeos\MShop\Order\Item\Standard::macro('ordernumber', function($order) {
   return 'No-' . $this->getId();
});
If you really need an extra column with a totally different number, than you have to overwrite the saveBase() method of the order manager: https://github.com/aimeos/aimeos-core/b ... #L604-L623
Professional support and custom implementation are available at Aimeos.com
If you like Aimeos, Image give us a star

krzysiekp
Advanced
Posts: 111
Joined: 05 Nov 2021, 16:19

Re: Generate order number before save order

Post by krzysiekp » 28 Jan 2025, 21:59

Thanks for reply

krzysiekp
Advanced
Posts: 111
Joined: 05 Nov 2021, 16:19

Re: Generate order number before save order

Post by krzysiekp » 05 Dec 2025, 12:06

Is it possible get id from the newly added order before saveBase method has executed ?
I need create order number base on id. Order number is new column in database in mshop_order (order_no) table.
I want to save order with order number in one transaction.

User avatar
aimeos
Administrator
Posts: 8705
Joined: 01 Jan 1970, 00:00

Re: Generate order number before save order

Post by aimeos » 06 Dec 2025, 10:37

If you add a customer column "order_no", you can set the value before saving, so it's saved at once but you can't get the mshop_order.id value before saving because it's an auto increment value from the database.
Professional support and custom implementation are available at Aimeos.com
If you like Aimeos, Image give us a star

krzysiekp
Advanced
Posts: 111
Joined: 05 Nov 2021, 16:19

Re: Generate order number before save order

Post by krzysiekp » 09 Dec 2025, 07:46

Could you give a example how to do it ?

User avatar
aimeos
Administrator
Posts: 8705
Joined: 01 Jan 1970, 00:00

Re: Generate order number before save order

Post by aimeos » 09 Dec 2025, 09:03

How to add a new column to a table for your order_no value is described here:
https://aimeos.org/docs/latest/models/extend-managers/
Professional support and custom implementation are available at Aimeos.com
If you like Aimeos, Image give us a star

krzysiekp
Advanced
Posts: 111
Joined: 05 Nov 2021, 16:19

Re: Generate order number before save order

Post by krzysiekp » 09 Dec 2025, 09:36

I'm more interested in how to solve the problem of assigning an order number (new column in mshop_order) based on the order ID (mshop_order.id) during order placing

User avatar
aimeos
Administrator
Posts: 8705
Joined: 01 Jan 1970, 00:00

Re: Generate order number before save order

Post by aimeos » 11 Dec 2025, 09:27

Like said, this isn't possible because the order ID is auto generated by the database.
Professional support and custom implementation are available at Aimeos.com
If you like Aimeos, Image give us a star

Post Reply