Because of the way our business operates, each of our items in our Square online store has its own “Select Your Pickup Date” modifier list that contains the dates the respective item is available for pickup. We have a separate web application that I developed which uses the Square API to modify the pickup dates in those modifier lists as needed (with UpsertCatalogObjectRequest calls - C# SDK), which can happen frequently (sometimes multiple times per day). This has all worked fine for the last 3 years up until about a few weeks ago when something changed on the Square side. In these last few weeks, we’ve see multiple issues where the “Select Your Pickup Date” modifier is correct in Square “proper” (POS and Dashboard), but intermittently isn’t correct in our Square Online store on some items. Specifically we’ve seen the following:
– The “Select Your Pickup Date” modifier list on several random items in the Square Online store will intermittently not show all the entries that are actually present in the modifier list as seen in the backend Square Dashboard. We can temporarily rectify it in the moment by making an arbitrary manual change (re-ordering modifiers, changing description, etc) to the associated item in the backend Square dashboard to force it to sync the item and all of its objects to Square Online, but we never know if/when Square Online will get in that bad state again after the next UpsertCatalogObjectRequest call for that modifier list.
– Sometimes the “Select Your Pickup Date” modifier list for an item will randomly disappear entirely from our Square Online store, even though the modifier list is still associated with the item in the backend Square Dashboard. This I can also rectify in the moment by making a manual change to the item in the backend Square dashboard (re-ordering modifiers, changing description, etc) that forces a sync of the item back to Square Online and then the “Select Your Pickup Date” modifier shows up again in the Square Online store. That’s not actually a fix though, because we never know when they’re going to disappear from that item or others again the next time UpsertCatalogObjectRequest is called to change the contents of the modifier list.
The above issues happen intermittently but frequently when the “Select Your Pickup Date” modifier list gets updated by my web app via the API. Obviously I don’t know anything about the inner workings of Square’s API handling or syncing between Square and Square Online, but based on the behavior I’m seeing, it looks like there might be a race condition between the API handler and the sync process, where the API handler might be indicating to Square Online that updates need to be synced for an object before it’s actually done committing the changes to the data source that Square Online pulls from. Then, depending on the timing of Square Online trying to pull the updated object data, it’s sometimes incomplete or missing because the API handler hasn’t finished committing the changes. That’s just a theory - of course, it could also be something buggy strictly on the Square Online side with their sync processing. Either way, it just started happening the last month or so and it’s very disruptive to us since the affected modifier lists are fundamental to the ordering processing for our customers.
Is this something the Square API devs/gurus could look into to see if it’s something on the API handling side?