First of all this is just an idea. Dont know how complex it is and its all up to you to decide.
• When a client makes an order, store owner gets preset 30 mins to prepare the order.
• If restaurant can prepare the order in 30 min he just accept the order.
• if store can't prepare the order than they can delay the order. They can click the + button which increase the time by 5 mins. They can delay the order as per required time to prepare the order.
• if store can prepare the order in less than 30 mins they can also decrease the time by clicking - button and than accept the order.
• So let's suppose that a client make an order at 6pm. Store owner gets the order in store dashboard that they had to prepare by 6:30pm. Store can't complete the order in 30 mins so they delay the order by 15 mins (06:45pm) and accept it. Delivery boys gets the notification of new order and can see that order will be ready for pick up by 06:45pm. They can reach the store few mins before (06:40), pick up the order and deliver it.
• This can also be used to give an idea to the client when his order will be delivered.
What can we do when a store is close?
• Allow preorder.
• When a client try to order from a store which is closed, he gets an alert or pop-up alert that store is closed now and it will open at xx:xx.
• He also gets alert that its possible to preorder for when store will open.
• Client make a preorder.
• Order doesn't show in store dashboard xx mins before they open.
• Or they recieve the order instantly on their store dashbaord but without any notification.
• When store reopen (Store owner know that he has to check store dashboard for new orders), store can accept the order by default 30 mins or delay the order for required time. Even if someone accept the order during the closing time of store they must give a time when order will be ready (Default 30 mins). So order will be ready in 30 mins when store reopen.
• Once the order is accepted by store owner, delivery boys will get the notification of new order where they can see the time when order will be ready for pick up.
https://youtu.be/BrQIJIFPMZo?t=30
Update Order Schedule module
• We can create store opening and closing in store setting.
• Create time slots based on every store opening and closing time.
• Allow every store to choose desired time slot: 10, 15, 30, 60 mins.
• On cart page, Clients must choose ASAP or a available time slot.
• Available time slots will be only created for atore opening time.
• If a store open at 8:00 - 12:00 and 14:00 - 19:00, than first available time slots should be
08:30 and last 12:00. No time slot to choose from 12:00 to 14:00. After the evening break first available time slot will be 14:30 and last 19:00.
• So basically clients can order even during the closing hours but they know that store is closed right now and it will open at xx:xx and their order will be delivered later. And store know that, once they reopen they need to check store dashboard for new orders.
I am not a developer, but I am pretty sure that this is going to very complex. This is just an idea. Its all up to you developers to make it possible.
You can make a separate module for accepting preorder so everyone will buy it and doing this we will support your hard work.