- How do I install haringsrob/icecat in a Laravel app?
- Install it with composer require haringsrob/icecat, then instantiate the client inside a small service or adapter class. The package is a plain PHP dependency, so there is no Laravel install command or published config to run. Keep the vendor class behind your own adapter so the rest of the application does not depend on its namespace.
- Does haringsrob/icecat support Laravel 9, 10, and 11?
- It is not a Laravel-native package, so Laravel compatibility depends on its PHP and Guzzle/cURL constraints rather than framework features. In practice it can fit Laravel 9-11 on PHP 8.x if Composer resolves the dependency set. Run composer why-not haringsrob/icecat before committing to confirm there are no conflicts.
- Does this package include a Laravel service provider or facade?
- No, haringsrob/icecat is a thin HTTP client wrapper and does not ship a service provider, facade, or publishable configuration. You register it yourself in the container or compose it inside an application-owned adapter. That keeps framework coupling low but means you own the integration wiring.
- How do I configure Icecat API credentials in Laravel?
- Store the Icecat account credentials in .env and pass them into the client when you construct it. Because the package has no Laravel config publishing, you typically read config values in your own service provider or adapter factory. Confirm which tier and domain the credentials are entitled to, since auth failures appear at runtime.
- How do I fetch product specifications by GTIN or EAN with Icecat?
- Use the package client to request product content by GTIN/EAN, usually together with brand and locale parameters expected by Icecat. Wrap the call in a method such as lookupByGtin(string $gtin, string $locale) that returns your own DTO or null. Normalise and validate GTINs before lookup, because poor source data will produce missing or ambiguous results.
- Can I retrieve product images and descriptions for a specific locale?
- Yes, Icecat content is locale-aware, so pass the required locale through to the API request and map the returned XML or payload into your own product content object. Image and copy availability can vary by locale and content tier. Persist the locale with the payload hash and fetched_at timestamp so results are replayable.
- Does haringsrob/icecat handle caching, retries, or rate limits?
- No, caching, retry policy, rate-limit handling, and logging are not built into this thin wrapper. You need to add Laravel cache, queue jobs, HTTP retries, and monitoring around the client. For production, cache responses by GTIN plus locale and respect the limits of your Icecat tier.
- How should I test Icecat integration without hitting the live API?
- Do not call the live Icecat API in unit tests. Wrap the vendor client behind your own interface and fake that interface, or mock the underlying Guzzle/HTTP transport if the package allows injection. Keep a small contract test against a recorded fixture for response parsing.
- What are the licensing or content redistribution concerns with Icecat?
- Icecat content has tier-specific licensing, attribution, and redistribution obligations, especially for Open Icecat versus Icecat Live or Full Icecat. Confirm that your licence permits storing and publicly re-displaying images and copy before shipping. This is a legal and product risk, not just a technical integration detail.
- Is haringsrob/icecat production-ready and actively maintained?
- Treat it as a low-maintenance, single-maintainer dependency with a bus factor of one, so pin versions and isolate it behind your own adapter. It is technically usable in production, but only after you add caching, retries, monitoring, and tests. If long-term support is critical, compare a custom Guzzle client or a supported enrichment provider.