google/shopping-merchant-datasources
PHP client library for the Google Merchant Center Data Sources API. It lets developers create, update, and manage product data sources for Shopping ads and free listings from Laravel or PHP applications using Google's generated API classes.
google/shopping-merchant-products, -inventories, -promotions). If someone scopes "Google Shopping integration" as a single ticket, this repo is the tell that it is at minimum three client libraries plus a mapping layer plus a job pipeline.Adopt when:
composer.json), and no commercial support beyond the GitHub issue tracker.Look elsewhere when:
To executives: This is a free, Google-published PHP client that lets our Laravel platform provision and manage Google Merchant Center data sources directly — the plumbing behind Shopping ads and free listings. It removes a per-SKU SaaS line item and keeps our catalog data inside our own systems. Two honest caveats: it is auto-generated client code with essentially no community ecosystem (2 stars, zero dependents), so it is a dependency we own and monitor, not a supported product; and it covers data-source management only — the product, pricing, and inventory pushes are separate libraries plus work we do ourselves. Recommendation: approve as an enabling dependency for the Shopping channel workstream, sized as internal infrastructure rather than a feature.
To engineering: Composer-installable, Apache-2.0, generated from Google's discovery spec — treat it as a thin transport layer and wrap it. Pin exact versions (0.x releases), authenticate with a service account or ADC, and put every call behind a queued job with idempotency keys, exponential backoff on quota errors, and structured logging of per-item Google errors. Assume you will need to swap or vendor it. Do not let DataSource objects leak into the domain model — map to our own catalog entities and keep the Google-specific shape at the adapter boundary. Pair it with the shopping-merchant-products and -inventories clients so the ingestion path is designed once, not three times.
How can I help you explore Laravel packages today?