In the following article, we explore a problem that prevents Magento users from importing images. You may be familiar with the ‘Imported resource (image) could not be downloaded from external resource’ issue. If not, below, we provide two StackExchange cases and a possible resolution. Besides, our team developed a dramatically improved way of importing images into Magento 2 which is also described in this article. So, what is the ‘Imported resource (image) could not be downloaded from external resource’ error and how to fix it?
Table of contents
- 1 ‘Imported Resource (Image) Could Not Be Downloaded’ Error Case Study
- 2 ‘Imported Resource (Image) Could Not Be Downloaded’ Error Resolution
- 3 Improved Import & Export Features
- 3.1 Automated Import & Export Processes
- 3.2 Advanced Mapping Features
- 3.3 Extended Connectivity Options
- 4 Final Words
‘Imported Resource (Image) Could Not Be Downloaded’ Error Case Study
As we’ve mentioned above, there are two similar questions posted on StackExchange. Let’s take a closer look at each one.
So, Justin was importing products using the built-in CSV import. All his data was imported as expected, but the following error occurred:
"Imported resource (image) could not be downloaded from external resource due to timeout or access permissions in rows: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10"
The base_image path in his CSV file was http://website.ca/pub/media/import/img/hose/jpg/Ach7938.jpg. He tried to remove the folder structure and edit the CSV – http://mywebsite.ca/pub/media/import/Ach7938.jpg – but it didn’t solve the problem. Even writing the file path as /pub/media/import/img/hose/jpg/Ach7938.jpg didn’t help.
Neither the 775 permission on folders and files nor PHP 7 instead of 5.6 helped. Luckily, we know the resolution, but let’s take a look at the second case.
Imported resource (image) could not be downloaded from external resource due to timeout or access permissions in row(s):
General system exception happened
URL-key for specific store already exists.
The user tried the following, but none of it fixed the problem:
- He located the images in the pub/media/import folder according to the documentation;
- He changed the chmod of images to 777;
- The CSV file was UTF-8 (but we know that it should be UTF-8-BOM);
- He removed the image path from the CSV, using the file name only (e.g., 12356.jpg);
- The user also checked categories to make sure they match the existing ones in his store;
- And adding other image fields instead of just ‘base_image’ didn’t help;
- Finally, he tried to turn the CSV file into one line.
If nothing of these fixes helped, what is the resolution?
‘Imported Resource (Image) Could Not Be Downloaded’ Error Resolution
As mentioned above, we’d like to explore the resolution provided on StackExchange first and then proceed to our own advice.
To download images for your CSV file, upload them to your Magento 2 root folder – ‘/pub/media/import’ as mentioned above. If images are provided in a zip file, don’t forget to extract them.
As for columns (attributes) of a CSV file that contain information about images, they are:
- base_image – an attribute that includes the main product image and path. Upload your base image to /pub/media/import. The path of /sample_data/m/b/mb01-blue-0.jpg has the following structure: /pub/media/import/sample_data/m/b/mb01-blue-0.jpg.
- additional_images – is another product attribute that allows importing a product media gallery. Note that additional images should be separated with commas. You should also upload them to /pub/media/import. The path of /sample_data/m/b/mb01-blue-0.jpg has the following structure: /pub/media/import/sample_data/m/b/mb01-blue-0.jpg.
For further information, check this article: The Complete Guide to Magento 2 Product Import / Export. A more in-depth exploration of this case is available here: How to Import Product Images into Magento 2 in Bulk. But there is even a better option that is described next.
As Magento developers, we were always dissatisfied with the quality of the default import and export tools of the platform. One day, our discontentment motivated us to change the ecosystem by providing our own import and export solution. Meet the Improved Import & Export Magento 2 extension – your number one time saver when it comes to data transfers of all kind.
With our module, you are not bound to the default import procedure and sources. The extension provides the ability to upload images from data files (not only CSV but also XML, JSON, and other formats) via FTP/SFTP, Dropbox, or URL. Alternatively, you can rely on intermediary services and direct API transfers.
The algorithm behind importing images with the help of Improved Import & Export is quite simple:
- Go to System -> Improved Import / Export -> Import Jobs and add a new job.
- Configure General Settings.
- In Import Settings select Products from the Entity drop-down.
- Specify Import Behaviour.
- In Import Source, specify a path to your images depending on the selected import file type and source.
Improved Import & Export Features
Now, we’d like to draw your attention to multiple other features of our module as well as shed light on the ones mentioned above.
The Improved Import & Export extension is designed to turn your Magento 2 admin into a central hub where you control all integrations. Consequently, such basic task as importing product images is not a problem for our module. The tool is designed to establish direct connections and data flows between your Magento 2 store and external systems. And as an administrator, you get an opportunity to manage all integrations right in your backend.
The Improved Import & Export extension has already become a number one data transfer tool for hundreds of merchants all over the world providing them with the opportunity to seamlessly exchange information between their stores and any external systems. Let’s see how our tool simplifies a daily import and export routine.
Automated Import & Export Processes
With the Improved Import & Export module, you can fully automate the import of product images, products, and other entities. Our extension provides the ability to leverage two different ways of automated data transfers: schedules and event-based triggers. You configure the necessary options, and the plugin does everything for you.
Our extension lets you use the default cron syntax to create update schedules. The Improved Import & Export module provides the ability to specify any custom intervals showing excellent flexibility. Thus, you can create a schedule that is suitable for your specific business conditions. At the same time, we offer a list of predefined intervals. Note that they are fully customizable as well. It means that you can select a value and change it in accordance to your needs.
Alternatively, the extension lets you use profiles which have no schedules. Although they are not the most efficient solution for continuous integrations, it is possible to leverage unscheduled jobs for data migrations or asynchronous updates.
Another important feature provided by the Improved Import & Export Magento 2 extension is the ability to launch every scheduled profile manually. Thus, asynchronous updates can be streamlined when a partner provides a file after a scheduled update so that you can transfer it into your database manually within just a few clicks. It is no longer necessary to wait for the next planned import event.
As for the configuration of a schedule, it is quite a straightforward procedure:
As for event-based triggers, Improved Import & Export implements real-time updates with their help. Create and configure a trigger with corresponding conditions to synchronize two systems more precisely right after a certain action takes place. For instance, you can create the following scheme:
- A customer places an order ->
- The module considers this event a trigger ->
- And launches an order export procedure ->
- Providing data to an external system.
The same approach can be applied to import processes. For further information, read this article: How to Run Magento 2 Import or Export After Specific System Event or Process.
Advanced Mapping Features
As for mapping opportunities, the Improved Import & Export Magento 2 extension provides several exclusive features which dramatically simplify every data transfer. You no longer need to edit attributes and their values manually in a data file. Furthermore, our module offers handy tools for matching categories and generating missing elements of a data file. Once configured, a mapping scheme is saved and utilized for further updates.
The most user-friendly way of matching external attributes to ones used internally is represented by mapping presets. Our team developed a series of predefined mapping schemes that provide the ability to reduce attribute matching to a few clicks only. Select and apply a preset related to your integration, and the Improved Import & Export Magento 2 extension will do all the work for you.
The module analyzes the input data that contains external attributes and matches it to the internal designations. No manual interaction with data files is needed. And as we’ve just mentioned, the procedure should be done only once. The algorithm of applying a preset is as simple as the following process:
Another important mapping tool is a matching interface. It is designed to enable manual attribute mapping right in the Magento 2 admin in the most intuitive way. If a certain preset is not available, you can use this tool. Manual matching via our interface looks as follows:
As for the third column from the gif above – “Default Value” – it is used to specify hardcoded (default) values. Under default values, we assume attribute values provided to every item related to the attribute. Thus, you can link products from different store views to a single one, specifying it as a hardcoded value.
Attribute Values Mapping
And the Improved Import & Export Magento 2 module lets you match not only attributes but also their values. This feature is beneficial since incorrect values may prevent import processes. In the case of the default Magento tools, you can edit third-party attribute values only manually in an editor, but the Improved Import & Export Magento 2 extension provides the ability to do that way more efficiently.
Attribute values mapping with Improved Import & Export is exceptionally straightforward: choose a third-party designation and specify a corresponding internal one in front of it. As you can see, the procedure is similar to the attribute matching described above. You have to repeat values matching until no external designations are left. For further information, check this article: Attribute Values Mapping.
Attribute Values Editing
In addition to the tool above, the Improved Import & Export Magento 2 module offers the ability to modify attribute values via bulk actions. The extension provides the following rules:
- Add a prefix to multiple attribute values;
- Add a suffix to multiple attribute values;
- Split multiple attribute values;
- Merge multiple attribute values.
Note that you can freely combine these rules as well as create various conditions to increase the efficiency of editing. You can find more information in this article: How to Modify Attribute Values During Import and Export in Magento 2.
In addition to attributes and their values, the Improved Import & Export Magento 2 extension provides the ability to map categories. The feature is especially useful in case of product data transfers from external stores with unique catalog structures. In this situation, some items may be bound to categories that are not represented on your Magento website. Thus, you need to edit them manually or apply changes after the data is imported. But our plugin offers a more efficient way of achieving the same goal.
While you spend tons of time and effort on manual editing, the Improved Import & Export extension provides the ability to match external product categories to ones used internally much faster right in the import profile. With our module, the procedure looks as follows:
Note that you can even create new categories on the fly. You have to select a parent category and specify a new one. Next, the Improved Import & Export Magento 2 extension will add a missing section to your catalog. Both features are described here: Category Mapping.
Attributes On The Fly
If an update file doesn’t contain all the necessary attributes, the import process can be interrupted unless you use the Improved Import & Export Magento 2 extension which lets you create attributes on the fly. Use the following general form to specify all parameters necessary to get all the missing elements automatically:
For further information, read this article: Product attributes import.
Extended Connectivity Options
In this chapter, we shed light on features that dramatically extend the default opportunities regarding image import. With the Improved Import & Export Magento 2 extension, you can use different ways of transferring all possible information to your e-commerce store including product images. While the default platform offers only one way to synchronize the data flow between your e-commerce store and external systems – CSV files – our module not only provides several more approaches to do so but also offers an extended range of supported file formats. Let’s see how to import images in a seamless manner.
Multiple File Standards
With the Improved Import & Export Magento 2 extension, you can import images using CSV, XML, JSON, ODS, and Excel files. You still have to upload them to a folder or provide a link, but information about them can be specified via lots of new file formats. And it is possible to apply all features described above to any of them.
Multiple File Sources
Another important improvement related not only to images but also data files is support for multiple sources. The Improved Import & Export Magento 2 extension provides the ability to leverage several different connection options:
- FTP/SFTP. Transfer files and images using your local server or a remote one.
- Dropbox. A Dropbox account can also be used if necessary.
- URL. For import processes only, it is enough to specify a URL of a file or image source.
If your update is provided as a compressed file, you don’t need to extract it. The Improved Import & Export Magento 2 extension will do everything for you right during the import procedure.
Alternative Ways of Import & Export
Another prominent feature of the Improved Import & Export Magento 2 extension is the ability to create API integrations or use intermediary services to exchange data instead of transferring data files.
With the extension, you can connect your website to an external system via REST, SOAP, and GraphQL APIs. And API connections are more powerful than file transfers since they support all the module’s features – mapping, scheduling, category matching, attributes on the fly – and offer extended flexibility. As a result, you can fully automate data transfers for the most demanding integration.
As for intermediary services, the Improved Import & Export Magento 2 extension supports Google Sheets, Office 365 Excel, and Zoho Sheet. These online sheets provide the ability to exchange data between your website and external platforms faster and with less effort in comparison to data transfers. You can see the integration on the basis of Google Sheets below:
Watch the following video to see the extension in action:
As you can see, the ‘Imported Resource (Image) Could Not Be Downloaded’ error is not a huge problem especially when you use the Improved Import & Export Magento 2 extension. Our module not only offer the ability to import product images in a more user-friendly manner but also automate all data transfers.
Furthermore, you can get the necessary information right from an external system via API. For further information about the module and its import functionality, follow this link: