How to get all attributes of a product in Magento 2

- E-Commerce, Magento, Our extensions


Magento 2 get attributes of a product

Below, we shed light on how to get all attributes of a product in Magento 2. Why does someone need this functionality? In some situations, you have to get a list of all available attributes for a specific product. Of course, you can spend time copying them manually, but who needs this waste of resources? Imagine that you have several thousands of attributes and you need to copy them from simple to configurable products. Let’s find out how to do that.

How to get all attributes of a product in Magento 2

The following code snippet returns a list of all product attributes. You can use it to save tons of time replacing manual copy-pasting. 

Use the snippet to get a collection of all attributes assigned to a product. Note that it is possible to extract all the necessary data from it in a loop.

Product Repository

We also need to mention that the code above leverages a product repository, which is a relatively new model introduced in Magento 2. The repository enables you to get products by SKU or ID. Use the following command to get products in Magento 2 by SKU:

Use the following command to get products in Magento 2 by ID:

Both commands provide you with a product instance if the requested parameter (SKU or ID) is valid. However, you will see an error if SKU or ID is not correct. Therefore, it is recommended to add a “try-catch” block. To get a product repository by injection, add the following code in the “you _construct method of your model:

Product Repository Cache

You may also face another issue: wrong data appears if you work with many products with different attribute values. Let’s be more specific: 

  • An attribute has a null value;
  • This value may be ignored;
  • Attribute data from another product appears instead. 

This unpleasant situation occurs when you get products by a product repository in a loop. An internal Magento 2 product cache causes the problem. Due to lazy loading, it fills product attributes with data, using values from the previous product in the case of null data

Luckily, the resolution of this issue is quite simple. You only need to clear product repository cache before doing anything. Use the command below:

For further information, check this article: Magento 2 – Get all attributes of product.

Automated Attribute Import and Export

Magento 2 get attributes of a product

And if you need to import or export attributes, check the following chapter. It sheds light on how to revamp the manual attribute import and export entirely so that you can save tons of time and effort

You need a third-party extension to enable this functionality on a Magento 2 website. Meet the Improved Import & Export Magento 2 module that allows the following functionality when it comes to the import and export processes related to attributes:

  • Import and export of attributes, attribute sets, and attribute values using CSV, XML, JSON, ODS, and other file formats and standards.
  • Mapping for import processes to modify any third-party attributes according to the default Magento 2 requirements.
  • Mapping for export to create output suitable for the requirements of external systems.
  • Support for all attribute details: properties, options, swatches, etc.
  • New attributes on the fly during import.
  • Data transfers from intermediary services (Google Sheets) and via API.
  • Automated updates via cron

With these and other features, you will spend much less time creating new attributes, their sets, or values. With Improved Import & Export, there is no need to do the routine processes manually.

Get Improved Import & Export Magento 2 Extension

Import & Updates

Let’s pay separate attention to the core features of Improved Import & Export that simplify your work with attributes. With the module, you can effortlessly create:

  • Attribute groups, set names, and multiple sets;
  • Attribute labels based on a store view;
  • Attribute options based on a store view;
  • New attributes on the fly.

Besides, the Improved Import & Export Magento 2 extension provides the ability to update the following entities on a store view basis:

  • Attribute labels;
  • Attribute option values.

Attribute values editing

Another notable improvement introduced with our extension is the ability to edit attribute values during import. The module lets you leverage several rules. Note that you can combine them to increase the efficiency of your daily routine. Improved Import & Export provides the following attribute values editing rules:

  • Add a prefix/suffix to SKU and other attributes;
  • Split data from one block to multiple blocks;
  • Merge data from multiple blocks in one;
  • Manipulate the values in the source file via RegEx.

For further information, check this post: How to Modify Attribute Values During Import and Export in Magento 2.

Attributes on the fly

If an imported data file lacks some attributes, you no longer need to recreate them manually. Instead, the Improved Import & Export Magento 2 extension lets you place all data necessary to create an attribute in an attributes column. For instance, it can be an attribute set, a frontend label, scopes, etc. Use the following general format of an attribute creation column:

The feature is described in more detail here: Product attributes import.

Multiple File Standards

Firstly, our module supports various file standards. In addition to the default CSV, it also works with  XML, JSON, ODS, and Excel. Note that you can freely import compressed data since the extension extracts it automatically. 

Multiple File Sources

Support for numerous sources of data files is another benefit of the Improved Import & Export Magento 2 extension. Our module lets you import attributes from:

  • FTP/SFTP. Transfer data files using a local or remote server.
  • Dropbox. Use a Dropbox account to establish a connection between the two systems. Alternatively, you can rely on Box, OneDrive, Google Drive, iCloud, and Amazon Drive.
  • URL. A direct URL can be used to import a data file as well.

Magento 2 get attributes of a product

Alternative ways of attribute import & export

In addition to file transfers, you can also import and export attributes and their values using alternative approaches to data transfers. Note that they are not represented in Magento 2 by default. However, our module enables, making the corresponding data transfers intuitive and straightforward.

The Improved Import & Export extension provides the ability to create API connections with external systems using REST, SOAP, and GraphQL. Thus, you can freely transfer data between your store and accounting platforms, ERPs, CRMs, etc.

It is also possible to leverage a bunch of intermediary services, including Google Sheets, Office 365 Excel, and Zoho Sheet. The following image displays how to use Google Sheets to import data to Magento 2:

Magento 2 get attributes of a product

And of course, the Improved Import & Export extension supports WSDL and WADL.


Since it is impossible to take attributes of an external system and import them into Magento 2 without modifications, our module introduces several ways to replace third-party designations with ones used on the platform. 

Mapping Presets

Mapping presets introduce the most straightforward way of importing/exporting any data with the help of Improved Import & Export. You select a preset of a third-party system, and the module replaces all the unsupported attributes automatically. Take a look at the following gif image to see how simple this process is: 

Magento 2 get attributes of a product

Matching Interface

Alternatively, you can match attributes manually in a corresponding section of an import or export profile. Choose a third-party value and specify an internal one in front of it. You can also add a default attribute value provided to all items related to the attribute:

Magento 2 get attributes of a product

Attribute Values Mapping

In addition to attributes, the Improved Import & Export Magento 2 extension lets you map their values. The algorithm is the same as the one described above. For more details, read this article: Attribute Values Mapping.

Category Mapping

You may not use category mapping in the attribute import, but it dramatically affects related product data transfers. You can match external categories to ones used internally, reducing the number of difficulties that usually occur when products are transferred from other platforms to Magento 2. The Improved Import & Export module allows mapping external product categories to ones used in your catalog as follows:

Magento 2 get attributes of a product

To create new categories right in the import job, choose a parent category, and specify a new one that will be generated automatically. You can find more information about this feature here: Category Mapping.

Automated Import & Export

Last but not least, the Improved Import & Export extension lets you automate attribute import and export as well as other data transfers via schedules or event-based triggers. 


The Improved Import & Export Magento 2 extension uses cron so that you can create any custom update schedules. At the same time, it is possible to select one of the predefined intervals, which are fully customizable.

Import and export jobs with no schedules are another opportunity provided by our module. Also, note that it is possible to launch every scheduled profile whenever you want. As for the configuration process, it is as simple as the following gif illustrates: 

Magento 2 get attributes of a product


Alternatively, the Improved Import & Export Magento 2 extension provides the ability to create event-based triggers. Although they won’t help you get attributes of a product in Magento 2, it is a quite handy feature for import and export processes. You can transfer order data to a CRM system every time a new customers registers on your store. Follow the link below for more information regarding triggers: How to Run Magento 2 Import or Export After Specific System Event or Process.


You can get all the attributes of a product straightforwardly. Use a product repository and don’t forget to flush an internal cache! As for the simplified attributes import processes, you can get more information following the link below:

Get Improved Import & Export Magento 2 Extension