It's hard to migrate section themes that rely heavily on images. This bit of code helps you download all the CDN assets of your theme.
- Create a
cdn_assets
folder - Create the
download_assets.js
file at the root of your project - Edit the
download_assets.js
file to match the path to your settings_data.json (line 3) - Edit the
download_assets.js
file to set the "CDN code" of your store. Each file that you upload from/admin/settings/files
gets uploaded with the following format:https://cdn.shopify.com/s/files/1/YOUR_CDN_CODE/files/YOURFILE
. The format of the code is/\d{4}\/\d{4}/
(four digits, a forward slash, and four digits)
To run the code, simply run:
node download_assets.js mainstore.myshopify.com
to download all the assets in your theme that are store on mainstore.myshopify.com
@germ777 the path is relative so if the 'settings_data.json' file is in the same folder a download_asset.js you can use the following line:
var settings = require('./settings_data.json');
I also made the following edit so the script only downloads new files which might help some people maintaining multiple regional stores:
`assets.forEach(function (asset) {
var url = 'https://cdn.shopify.com/s/files/1/${themeDict[process.argv[2]]}/files/${asset}'
try {
if (fs.existsSync("./cdn_assets/" + asset)) {
console.log("file already exists: " + asset)
} else {
console.log("downloading: " + asset)
request.get(url).pipe(fs.createWriteStream("./cdn_assets/" + asset))
}
} catch(err) {
console.error(err)
}
});`