We have a problem described in Recommended workaround to sell variable price item... - The Seller Community. Basically we have items we sell in store that are price embedded barcodes (so variable price, but scan at checkout and tracks inventory - lbs of meat).
We use delilabel.app to print these price embedded barcodes. But we can’t sell exactly 0.67lbs of T-Bone stake online, we’d just list 0.75 lb and 1.0 lb. But we need to refund customers if we pick an order under the price they are asking for. And we can’t make refunds a manual process by the store employees, only managers can refund. (Also orders on the online store come in fully paid for, so we can’t edit it before capturing the payment card).
The Idea:
- We build an app on an iPad that watches for online orders (POST /v2/orders/search - Square API Explorer for recent ones, or order.updated Webhook - Square API Reference)
- Then also check each of the line items that they can be fulfilled, in the in-app experience you can do this, we’d do the same
- WHEN THEY ORDER MEAT, we’d prompt for scanning the exact price embedded barcode that it is fulfilled with and issue a refund for the overage square online charged (e.g. purchased 0.75 lb @ 12.99/lb but only picked 0.67lb the difference would be refunded to the card)
- When one comes in, we have a notification and the person marks it pending via our app (using UpdateOrder and set fulfillment state to PREPARED, and COMPLETED).
EDIT: It looks like that State field is editable by the API API PUT /v2/orders/{order_id} Can't set fulfillment state or order state - #3 by ryanlath, that thread shows how to do so.
Wanted to make sure these order updates are possible. Will be testing too.