Some questions about Order API and possibly delaying order preparation

Hey hope all is well. Had some specific questions that someone might help me with that I am trying to wrap my head around but not quite finding answers in the docs. My use case is I have a mobile app that I create pickup orders with, one that should appear on a store’s POS system for fulfillment. I’d like the user to be able to manually notify when they are going to pick up the order and so I have the following questions:

  1. I think I need the restaurant to actually accept the order at the POS before telling the user it is being prepared, question is how can I tell the restaurant has accepted it? I see the accepted_at field, would I just subscribe to updates on the order and look for that field? Does the OrderFulfillmentState move from PROPOSED to say RESERVED/PREPARED? Not really understanding the implications of each of those states.
  2. Also I’d like to delay the actual preparation of the order until the user has said they want it to start being made. Is there a way to do this to make it easier for the store, eg. can there be a way to separate orders that are accepted and waiting for the user go ahead vs. orders that are ready to be made on the POS screen? I was thinking maybe use the update order endpoint to set a pickup_at time? Maybe just use the notes field?
  3. How do payments fit into this? My understanding is that orders aren’t shown at the POS system until a payment has been completed, correct? Also, does the auto complete field on the payment mark the order as completed? I think I need to turn that off then?
  4. What implications does setting the schedule_type field have?
  5. Is there anyway to test this in sandbox? I think I’d be able to answer a lot of these questions myself but not seeing a way to setup a POS device in sandbox unless I am missing something.

Appreciate the help, this is becoming quite complicated in my head so need to gather my thoughts. Thanks so much.

With our Orders API and fulfillments the customer is able to select the pickup time for their order. Once the order is paid for and the seller accepts it the order it will be in a RESERVED state. When its prepared then the customer can pickup the order.

Orders do have to be paid for them to show on the POS. The schedule_type will determine when the order will show in the Order Manager. If it’s a SCHEDULED order then it will show in the order manager at the beginning of the prep time so there’s enough time to make it till pickup. If it’s ASAP the order will show immediately in order manager.

Yes, you can test in sandbox. Order will push to order manager in the Dashboard in Sandbox. There currently isn’t a sandbox POS app that you can use to test with. :slightly_smiling_face:

Awesome, thanks for the quick reply. This really helps me a lot. So if I am understanding correctly, maybe I could make a ballpark estimate for the scheduled pickup, and then change it later based on user feedback, so that it shows up at the correct time on the POS.

Would be nice to connect a sandbox seller to POS but not the end of the world. Maybe can setup a really cheap item to do some tests with.

Love the punctuality and friendliness of this community and the square employees! Thanks again

Is there a reason you wouldn’t allow the customer to schedule the pickup when ordering?

Also any order you create with a fulfillment in sandbox that pushes to the Orders section of the sandbox Dashboard will push to the POS in production. Also you can test cash payments in production to see orders push to the POS as well.

Thanks for all the great feedback. We really appreciate it. :slight_smile:

Sorry to be vague, I’m not allowed to reveal too much. But basically the product is a very time sensitive and needs to be done when the user is close by so we determined the best course of action would be to have a manual process to start it. Hopefully that makes sense and maybe there is a better way to go about it? Seems like changing the order fulfillment will do what we need here.

Really cool with the sandbox orders in the POS! I am a little confused though how to link the POS account, or how that all works. I wasn’t able to sign into a POS with a sandbox seller account and not sure where the link is to sandbox and production otherwise.

Okay, sounds good.

At this time signing into a POS in sandbox isn’t available. Only production credentials and payments are available with sandbox. :slight_smile:

Can you explain what you mean by this? Apologies I am just confused on how something can be linked to prod and sandbox. Doesn’t seem practical.

Edit: I think you are saying in practice I can confirm in sandbox that the order that shows up there will show up on the POS in a production scenario?

Yes, that is correct. If in sandbox you have orders going to the Orders section of the sandbox seller Dashboard then you can be sure when you switch to production orders will push to the POS. :slight_smile:

Thanks Bryan. Big help, sorry I couldn’t provide more details.