Using Official Square PHP SDK v42.0 - New catalog items are missing online fulfillment methods which is why online items are showing "Not Available"

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

  1. Create a new catalog item with variations using BatchUpsertCatalogObjects

  2. Set presentAtLocationIds to your physical store location(s)

  3. Set sellable: true, stockable: true, trackInventory: true on variations

  4. Add inventory quantity via the Inventory API

  5. 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

  1. Is there an API to list available channels or fulfillment methods for a merchant?

  2. Is there a field to specify online fulfillment methods (shipping, local delivery, pickup) during item creation?

  3. Why does the Dashboard UI default to including online availability, but the API does not?

  4. 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.

Hey @basil_software! Thanks for sharing your details here. I’ll keep these on hand for reference, but for the sake of consolidating the conversation I’ll reply over in the other thread: