I generated this via AI after I exercised several items being uploading using the PHP SDK, Square code to upload data. I can reproduce this bug at will.
Summary
When creating catalog items via the BatchUpsertCatalogObjects API using the official Square PHP SDK v45.0.0, newly created items are missing online fulfillment methods. This causes all API-created items to display as “Not Available” on Square Online despite having inventory and appearing correctly in the Square Dashboard.
Environment
-
SDK: Official Square PHP SDK v45.0.0.20260122 (
square/square) -
PHP Version: 8.1+
-
API Version: 2026-04-26
-
Endpoint:
POST /v2/catalog/batch-upsert
Steps to Reproduce
-
Create a new catalog item with variations using
BatchUpsertCatalogObjects -
Set
presentAtLocationIdsto your physical store location(s) -
Set
sellable: true,stockable: true,trackInventory: trueon variations -
Add inventory quantity via the Inventory API
-
View item on Square Online — shows “Not Available”
Impact
This issue affects any merchant using the Catalog API to sync inventory from external systems (POS integrations, inventory management systems, etc.). Every newly created item requires manual configuration in the Square Dashboard before it becomes purchasable online, completely defeating the purpose of automated catalog synchronization.
For merchants with large catalogs syncing hundreds or thousands of items, this makes the API unusable for e-commerce workflows.
Questions
-
Is there an API to list available channels or fulfillment methods for a merchant?
-
Is there a field to specify online fulfillment methods (shipping, local delivery, pickup) during item creation?
-
Why does the Dashboard UI default to including online availability, but the API does not?
-
Is there a bulk operation to enable online fulfillment for existing catalog items created via API?
Workaround Needed
Currently there is no known workaround via the API. All items must be manually edited in the Square Dashboard to enable online fulfillment options, which is not scalable.
So this is Square generated code in the SDK failing to create the correct data on an item so that it’s automatically set to be available online.
This affects far more customers than just those that use my Square Integration.