google/shopping-merchant-products
PHP client for the Google Shopping Merchant Products API. Create, update, list, and delete Merchant Center product inputs, manage attributes and data sources, and integrate product catalog workflows into Laravel or any PHP app via generated Google API classes.
insert/update/delete, data-source-scoped targeting, and near-real-time price and availability changes — at the cost of owning retries, quotas, and reconciliation. That is a product decision about freshness expectations, not a technical one.accounts, data_sources, inventories, reports, promotions, notifications, quota). This package alone will not complete a merchant integration — it informs how you slice the roadmap: products now, reports/promotions later, or a vendor until then.ProductSaved/ProductDeleted events from a Laravel app; bulk reconciliation jobs; self-serve merchant onboarding where a customer connects their own Merchant Center account; multi-market/multi-language catalog variants; supplemental product data layered over a primary feed.Adopt when:
google/auth removes the auth work.ProductPublisher interface, and treat the package as a replaceable adapter. With 2 stars and 0 dependents there is no community safety net; you are relying on Google's generator, not on ecosystem support.Look elsewhere when:
grpc/protobuf extensions and you have not validated the REST fallback.To executives: This is Google's own Apache-2.0 PHP client for the Merchant API Products service — the successor to the Content API for Shopping. It is free, and it replaces what would otherwise be several weeks of custom HTTP, auth, retry, and pagination code with a dependency and a thin adapter. It also de-risks a known roadmap liability: Google is moving shopping integrations to Merchant API, and building on the generated client keeps us on the supported path. The cost is engineering time and a small amount of dependency ownership, not licensing. The honest caveat: it has effectively no community adoption, so we are betting on Google's release process rather than on an ecosystem. Mitigation is cheap — pin the version, isolate it behind an internal interface, and add contract tests.
To engineering: Treat it as a generated SDK, not a framework. Wire it through dependency injection behind a ProductPublisher-style port so domain code never imports the generated namespace; that keeps upgrades and a possible swap to direct REST calls to a single adapter. Use a service account with Application Default Credentials, prefer REST unless you have a measured reason for gRPC, and configure retries explicitly rather than relying on defaults. Add structured logging of request IDs and merchant account, and surface quota errors (quota package) as first-class product states — merchants will hit them. Do not fork it. Budget for version churn by pinning exact versions and upgrading on a schedule with contract tests against a sandbox merchant account. Expect to read the generated reference docs and the underlying REST documentation side by side; there are no tutorials.
How can I help you explore Laravel packages today?