Exporting Images from the Settings > Files Library

BirdieGolden
Shopify Partner
51 1 14

Hi friends, we're migrating our website from one Shopify store to a developer sandbox and have successfully migrated the theme and products.

 

Unfortunately, NONE of the images (social icons, logos, lifestyle photos) came over, and there doesn't appear to be any way to download our images.

 

Is there a way to export our image library? Or do we need to literally go through each photo, one by one, and download them?

 

Thank you!

(Also, if the latter is the answer...SHOPIFY PLEASE FIX THIS)

Replies 47 (47)
Elle
Shopify Staff
Shopify Staff
1092 99 192

Hi, @BirdieGolden 

 

Elle here from Shopify. 

Currently, this feature does not exist in our platform. Our developers are aware of the requests for this feature and we do hope we can bring this to life soon!

 

I was able to find a GitHub where a developer external to Shopify details a couple of different ways to fetch these files using Javascript here.

 

Hope this helps!

 

Cheers,
Elle

 

 

 

Elle | Social Care @ Shopify 
 - Was my reply helpful? Click Like to let me know! 
 - Was your question answered? Mark it as an Accepted Solution
 - To learn more visit the Shopify Help Center or the Shopify Blog

Steve_Brown_UK
Shopify Partner
3 0 24

This is ridiculous. I can't believe that you cannot let the store owner download their assets. What's wrong with you people?

Stuart_H_AU
Tourist
5 0 13

Is there a roadmap of features and expected release dates? This has to be on of the biggest flaws in shopify, along with the inability to create decent looking content pages without creating an exponential number of custom templates.

Elle
Shopify Staff
Shopify Staff
1092 99 192

Hi, all

Thank you for expressing your concerns. Our developers are aware of this request and we hope to offer a solution in the future. At this time, there is no roadmap I can share; however, please keep your eyes on our changelog for product updates. 

If you are able to provide more context as to why this feature is imperative to running your business on Shopify, I will share this directly with our developers. 

Also, if you are looking for a workaround, there are solutions provided in this thread here. 

 

Elle | Social Care @ Shopify 
 - Was my reply helpful? Click Like to let me know! 
 - Was your question answered? Mark it as an Accepted Solution
 - To learn more visit the Shopify Help Center or the Shopify Blog

Stuart_H_AU
Tourist
5 0 13

Thanks - I adapted another script to open all the files in new tabs from the Settings > Files section and I used that tab extension, worked perfectly fine except for the three hours i wasted finding that solution buried in the forums.

The business case is for customers who operate a DEV > UAT > LIVE deployment process. Managing those media assets added through the theme customizer is a pain, migrating across to a different store requires the following;

Source: Export Theme
Source: Export Products (if required)
Source: Manually Export Images

All it needs is a 'download option' from the Settings > Files Dashboard; and if you're there - extending it to show more than 50 images would be handy.

---

Extension: https://chrome.google.com/webstore/detail/tab-save/lkngoeaeclaebmpkgapchgjdbaekacki/related

Script:

function fetchPageAssets(){
  var downloader = $("<a id='download-file' href='' download='' target='_blank'></a>")
  $(".ui-title-bar").append(downloader)
  var assets = $("#assets-table .next-input--readonly")
  assets.each(function(index, input) {
    $('#download-file').attr('href', input.value);
    $('#download-file')[0].click();
    if (index + 1 == assets.length) {
      var lastItem = $(input).parents("tr[bind-class]").attr('bind-class').substring(25,36)
      $.ajax({
        url: "/admin/settings/files?direction=next&last_id="+lastItem+"&last_value="+ lastItem+"&limit=100&order=id+desc",
      }).done(function(data) {
        var mutationObserver = new MutationObserver(function(mutations, observer) {
          mutations.forEach(function(mutation) {
            if (mutation.target.id && mutation.target.id == "assets-table") {
              fetchPageAssets()
              observer.disconnect()
            }
          })
        });
        mutationObserver.observe(document, {
          childList: true,
          subtree: true
        });
        var newDoc = document.open("text/html", "replace");
        newDoc.write(data);
        newDoc.close();
      })
    }
  })
}
fetchPageAssets()
Stuart_H_AU
Tourist
5 0 13

Update: Adding ?limit=250 query parameter to the admin/settings/files URL allows you to use the above script for a larger number of images without having to paginate.

Elle
Shopify Staff
Shopify Staff
1092 99 192

Thank you so much for sharing, @Stuart_H_AU !

Elle | Social Care @ Shopify 
 - Was my reply helpful? Click Like to let me know! 
 - Was your question answered? Mark it as an Accepted Solution
 - To learn more visit the Shopify Help Center or the Shopify Blog

HandHugs
Shopify Expert
189 1 51

I ran that script in Javascript console on the Files page, but it only opened the first image in a new tab and then gave me a GET error.

I would love some help getting this to work so we don't have to pay an app every time we want to see a preview in a dev store!

Stuart_H_AU
Tourist
5 0 13

Hey, you could try a different approach and use the following script to create a HTML file containing all the images from the files section. Once complete, you open the HTML file in your browser, it will fetch all the images and just 'save as'.

 

function fetchPageAssets() {

    var assets = $('.next-input').map(function(key, val) { return val.value; }).get()
    assets.forEach(function (value) {
        if (value != "") {
            files.push('<img src="' + value + '">')
        }
    })
}

function downloadListFile() {
    var downloader = $("<a id='download-file' href='' download='shopify-files.html'></a>")
    $(".ui-title-bar").append(downloader)
    var data = 'data&colon;application/octet-stream;base64,' + window.btoa(files.join('\n'));
    $('#download-file').attr('href', data);
    $('#download-file')[0].click();
}
var files = []
files.push('<html>\n<body>')
fetchPageAssets()
files.push('</body>\n</html>\n')
downloadListFile()

 

DevelopmentGuy
New Member
1 0 1

It's because they want the merchant to purchase a $2K/mo plan in order to create a sandboxed site. 

CynthiaESJ
Excursionist
13 0 7

Oh my gosh! I just figured out this functionality doesn't exist and I'm shocked! 

You wanted a business reason - here are a couple:

1) some of us have subdomains sites that need to use the same images so we need to be able to download OUR assets and re-upload them to our new Shopify site.

2) I personally have a second store with a new brand name that needs all of my image assets from my first store. I already had to pay for a third party app to download my entire store since Shopify doesn't give us that functionality either(!). So I'm paying for that and now I just figure out that my image assets are all still linked to my first store. 

It is clear that we should all be able to download our own assets. I just gave two valid reasons for needing this functionality using Shopify stores. 

Of course, Shopify does not want to make it easy to move to another platform, so there is also the business reason of leaving Shopify and wanting all of your Shopify store content to use on a different platform. But I know Shopify isn't going to give a solution for that! I don't need that, but I DO NEED the my own assets to upload on to my other Shopify store.

I can't believe this functionality still doesn't exist in 2021!! 

c-

Rita2021
New Member
1 0 3

We are a statewide organization with chapters across the state. For various reasons we chose not to go with multiple stores in Shopify. We chose to have a different store for each chapter. The largest chapter has uploaded almost all the products and images without pricing and inventory.  We are using the export of this as the basis or all the other stores.  BUT THE IMAGES DO NOT DOWNLOAD. We need to download the handle for each product and the images associated with it.  Alternatively, we need the Export Products to contain the links to the images and allow our other stores access those images.

CynthiaESJ
Excursionist
13 0 7

Hi Rita, 

I feel your pain! 

Although this is something Shopify MUST FIX for us, I wanted to point you towards an app that at the least will get you what you say you need - Excelify (on the app store or at Excelify.io). I've used it several times and am currently using it again. It will download all the product info that you cannot get from Shopify. That will include URLs to the images for your products, but realize that the URLs will all point to the store you exported them from. Sounds like that will be ok for what you are doing, since you say you have one store with the "master" product list on it. So as long as that store stay live, the URLs you use on the other stores will work for you. 

Right now, that's exactly what I just did for store #3 I am setting up. It works fine, my site #3 is up and the products are all as expected - using the image URLs for the images that still live on store #1. The problem is that I will be closing down store #1, so I can't just leave my image assets at the URLs associated with that store. But there is no way from Shopify to get my images migrated physically over to my new store #3 (also on Shopify). This is unacceptable and Shopify needs to fix it.

Anyway, thought I'd post this in case it will help your specific need. Good luck!

cheers,

c-

PurpleMamba
Shopify Partner
113 2 15

@DevelopmentGuy wrote:

It's because they want the merchant to purchase a $2K/mo plan in order to create a sandboxed site. 


Even then you can't export the files.

Josh_Poole
Tourist
7 0 10

It is sad that Shopify still does not have this basic functionality. Very disappointing 

DazC
Excursionist
13 0 12

We just used Rewind (paid app) to create a clone of one of our Shopify stores, to set it up in a different region, only to find that it doesn't copy the stuff from "Settings -> Files".

We haven't even got the store logos in the Theme Customiser because, you guessed it, this pulls from the Library that is "Settings -> Files".

Not only does "Settings -> Files" not have any kind of mass export or import available, there is also no API to interact with it.  As far as I can see all of the video, PDFs, and other assets that we would need on the duplicated store would all have to be scraped by hand, and then uploaded one by one to the new store.

Surely in 2021 this isn't actually what we have to do, is it?

We are on the $2k+ a month Shopify Plus plan and don't even have this basic functionality.  It's madness.

garrinevan
Tourist
3 0 10

This sucks. Shopify, figure this out asap.

garrinevan
Tourist
3 0 10

Agreed. This is incredibly disappointing.

kevinurb
New Member
1 0 2

Important to add. As it looks like based on the latest change to the Settings Files UI, the script workaround do not work anymore.