Skip to content

magento/magento2#31353: Materialize GraphQL product image cache with watermarks - #41052

Open
swnsma wants to merge 3 commits into
magento:2.4-developfrom
swnsma:magento/magento2#31353
Open

magento/magento2#31353: Materialize GraphQL product image cache with watermarks#41052
swnsma wants to merge 3 commits into
magento:2.4-developfrom
swnsma:magento/magento2#31353

Conversation

@swnsma

@swnsma swnsma commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Description

GraphQL product image resolvers returned watermark-aware cache URLs without generating the corresponding cache files. Theme-based catalog:images:resize only builds view.xml sizes, so GraphQL variants (null width/height + watermark params) often 404 or resolve to placeholders.

This change introduces ProductImageCache, used by the media gallery URL resolver, to materialize missing HASH-format product image cache files (including watermarks) during GraphQL URL resolution.

Fixed Issues

  1. Fixes [GraphQl] Watermark images don't show. #31353

Manual testing scenarios

  1. Configure product image watermarks (Base / Small / Thumbnail) under Content → Design → Configuration.
  2. Ensure a product has base, small, and thumbnail images assigned.
  3. Clear pub/media/catalog/product/cache (optional but recommended to force generation).
  4. Run a GraphQL products query requesting image, small_image, and thumbnail URLs.
  5. Open each returned URL in a browser.
  6. Expected: Images load successfully and show the configured watermark (not placeholders).
  7. Especially verify small_image / thumbnail, which previously failed most often.

Contribution checklist

  • Pull request has a meaningful description of its purpose
  • All commits are accompanied by meaningful commit messages
  • All new or changed code is covered with unit/api-functional tests (where applicable)
  • All automated tests passed successfully (all builds are green)

GraphQL returned watermark-aware cache URLs without generating the files.
Generate missing HASH-format cache variants (including watermarks) during
image URL resolution so storefront GraphQL clients receive valid images.
@m2-assistant

m2-assistant Bot commented Jul 27, 2026

Copy link
Copy Markdown

Hi @swnsma. Thank you for your contribution!
Here are some useful tips on how you can test your changes using Magento test environment.
❗ Automated tests can be triggered manually with an appropriate comment:

  • @magento run all tests - run or re-run all required tests against the PR changes
  • @magento run <test-build(s)> - run or re-run specific test build(s)
    For example: @magento run Unit Tests

<test-build(s)> is a comma-separated list of build names.

Allowed build names are:
  1. Database Compare
  2. Functional Tests CE
  3. Functional Tests EE
  4. Functional Tests B2B
  5. Integration Tests
  6. Magento Health Index
  7. Sample Data Tests CE
  8. Sample Data Tests EE
  9. Sample Data Tests B2B
  10. Static Tests
  11. Unit Tests
  12. WebAPI Tests
  13. Semantic Version Checker

You can find more information about the builds here
ℹ️ Run only required test builds during development. Run all test builds before sending your pull request for review.


For more details, review the Code Contributions documentation.
Join Magento Community Engineering Slack and ask your questions in #github channel.

@swnsma

swnsma commented Jul 27, 2026

Copy link
Copy Markdown
Contributor Author

@magento run all tests

@swnsma

swnsma commented Aug 5, 2026

Copy link
Copy Markdown
Contributor Author

@magento run all tests

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Priority: P3 May be fixed according to the position in the backlog. Progress: pending review

Projects

Status: Pending Review

Development

Successfully merging this pull request may close these issues.

[GraphQl] Watermark images don't show.

2 participants