Snug Gallery / Guides

Reuse product photos and Shopify Files in a gallery

Snug Gallery can fill a gallery from images already in Shopify: product photos, the Files library, or both. How the picker works and what carries over.

Most stores already own the photos their gallery needs. They are sitting on product pages, in the Files library from an old theme section, or in both. Re-uploading them for a gallery wastes time and doubles your storage. The import page in Snug Gallery exists for exactly this: it shows you what is already in Shopify and lets you pick. This guide walks through the two Shopify-side sources, what the picker shows and hides, and what does and does not carry over when an existing image becomes a gallery item.

Where the import page is

Open a gallery in the app and choose the option to add media. The page is titled Add media to followed by the gallery name, and it has three tabs: Shopify Files, Product images and Image URLs. The third tab, pasting a list of public image addresses, has its own guide on importing images from a URL. This guide is about the first two, which are the ones that cost you nothing in storage because the file already exists in your store.

Whichever tab you use, the result is the same kind of gallery item. A gallery in Snug is an ordered list of references to files in your Shopify Files library. Picking a product photo does not copy the file; it adds a reference to the same file the product page uses. That is the whole trick, and it is why the guide on Shopify Files versus app-hosted images matters: because the image lives in your store, it stays yours even if you remove the app.

The Shopify Files tab

The Files tab lists every image and video in your Shopify Files library, newest first, 48 to a page with a Load more control at the bottom. There is a search box that matches against the filename, so if your photographer delivered files called lookbook-ss26-01.jpg through lookbook-ss26-40.jpg, typing lookbook-ss26 narrows the grid to just those.

Each tile shows a square preview, and the tile's label is the file's alt text if it has one. Videos get a Video badge. A file that is still being processed by Shopify shows Processing or Processing video instead of a preview and cannot be selected yet; come back in a minute. A file whose processing failed is marked as such and is skipped, which is the same behaviour described in the guide to upload error messages.

If a file is already in this gallery, its tile is greyed out and labelled Already in gallery. The check is on the file itself, not on the filename, so two different uploads of the same photo both show as selectable; the app has no way to know they are the same picture.

The Product images tab

The Product images tab searches your products by title, twelve products to a page, and lists each product's images under a heading with the product name. The layout is grouped on purpose: when you are building a gallery from a collection launch, you want to see the six photos of one dress together and pick the two that work as a square, not hunt for them in a flat grid.

The images shown are the product's media as Shopify stores it, which means they are the same files you see in the product's Media section in the admin. Variant-specific images are included because they are product media too. Product videos appear with the same Video badge as in the Files tab, and the same Already in gallery rule applies.

One thing to know: a product image is a file in your Files library like any other, so the same photo often appears in both tabs. Pick it from whichever tab you found it in; the gallery item is identical.

Selecting, limits and the add button

You can tick tiles across both tabs and across pages; the selection is kept until you submit. Above the grid there is a line that reads something like 14 of 50 items used on the Free plan, room for 36 more. That line is doing real work. Every plan has a per-gallery item limit, and the import page checks your selection against the room left before it starts, so a selection that would overflow is refused with a message rather than half-applied. The free versus paid plan limits guide has the numbers for each plan.

Submitting with nothing selected shows Select at least one image. Submitting a valid selection adds the items and returns you to the gallery page with the new items at the end of the order. If adding fails part way, for example because someone else added items to the same gallery at the same moment and the limit was hit, the items created by this attempt are removed again so the gallery is never left half-filled. Nothing is ever deleted from your Files library when you pick existing files: the rollback only removes gallery entries, and it only deletes files the import itself created, which for these two tabs is none.

What carries over, and what does not

The file carries over, obviously, with all its sizes; the gallery requests resized versions from Shopify's CDN exactly as the product page does. What does not carry over is the text. A new gallery item starts with an empty alt text and no caption, even if the file in the Files library has alt text and even if the product image has alt text on the product. This is deliberate: product alt text is written for the product page (Blue linen dress, front view) and is often wrong in a gallery context, where the same photo might be captioned with a customer's name or a location.

So after an import from Files or product images, the next stop is the gallery editor, where each item has alt and caption fields and a link field. Filling the alt text matters for accessibility and for image search; filling the caption matters if your lightbox shows captions. If you were hoping the file's existing alt text would come along, this is the one place where you will do a little extra typing.

Order is the other thing to check. Imported items are appended in the order you selected them, which is rarely the order you want. Drag them into place in the gallery editor, or use tags and a filtered gallery if the gallery is large enough that manual order stops being practical.

When to reuse and when to upload fresh

Reuse product photos when the gallery is a shoppable lookbook, a collection launch or a best sellers wall; the images are already cropped for your store, already compressed by Shopify, and the gallery item can link straight to the product. Reuse Files when a previous theme section or app left you with a library of lifestyle shots that are not attached to any product.

Upload fresh when the photos do not exist in Shopify yet, or when you want a different crop than the product page uses. Snug's gallery grid is happy with mixed aspect ratios, but a gallery that mixes tall product shots with square lifestyle photos will look tidier if you crop before uploading rather than picking the product original.

Frequently asked questions

Does picking a product image for a gallery duplicate the file in my Shopify Files?

No. The gallery item points at the same file the product page uses. Nothing is copied and no extra storage is used. Deleting the gallery item later removes the reference only; the product image stays where it is.

If I delete a product, what happens to its photos in my gallery?

Deleting a product in Shopify deletes its media files as well, and any gallery item that referenced one of those files will no longer have an image to show. If you plan to retire a product but keep its photo in a gallery, upload the photo to Files separately first and pick it from the Files tab instead.

Why is the alt text from my product image not showing on the gallery item?

Imported items start with empty alt text and caption on purpose, because product alt text is written for the product page and often reads oddly in a gallery. Add alt text and a caption per item in the gallery editor after importing.

Can I search product images by SKU or by collection?

The Product images tab searches by product title only. For a collection, search for a word that the collection's products share in their titles, or import in a couple of passes. The Files tab searches by filename, which is often the fastest route if your files are named consistently.

More guides