As with most eCommerce specialists, we are looking closely at the new kid on the block, Magento. Despite the availability of users manuals, I like to begin by just using it. This is a good way to determine just how user friendly a new application can be.
I decided to begin with an activity that I have found to be key in effective product management activities in just about every shop I have ever worked with – product import and export.
This should provide a serious test of usability that goes beyond the developers ability to generate a pretty layout on the page, as well as determining just how powerful the carts ability to support batch processing can be.
I started by looking at the carts import/export tool. This didn’t take very long to locate, being found quickly on the first level of the system menu in the cart admin. The second level selections were profile and advanced profile, which seems to promise some flexibility and potential for expansion in this critical cart system. Very good so far.
Selecting the Profile tool, I was presented with a searchable and filterable grid listing with configurable listing size and an “Add Profile” button. The listing included 6 pre-constructed profiles providing management for 3 data sets. Customers, Products and Product Stocks. This is one data object (customers) more than can be managed by an osCommerce cart with Easy Populate without any modification to the Magento cart – again, very good so far.
Having already created on test product, I started with a product export. This is done by selecting a product related “profile” then selecting the “Run Profile” option from the menu on the left side of the admin screen. Straight forward, and quickly accomplished.
I did however, skip evaluating the column headers other than a quick glance to assure they were there. Doing this turned out to be a mistake. More on that later.
My next step was to attempt an import of foreign product data. I just happened to have a nifty little data set handy for just that test. I popped back to the profile listing and hit the “Add New Profile” button to create an import profile to match my file structure. This presented a 4 section page with the usual left menu and button panel at the right top of the main page.
The first set of options required setting a profile name, the type of entity involved, dataflow direction (import/export), a store id (everything left to default), a number of records (bit strange that), and a decimal separator. This section can be seen in the image below:
Notice the “(Products will be added\updated to this store if ‘store’ column is blank or missing in the import file)” statement. Again, more on this later…
The next section was rather obtuse. Titled “File Information” It contained a single drop down titled “Data Transfer” and containing two options – Interactive and “Local/Remote Server” . I left this at “Interactive”.
The next section was titled “Data Format”. The first element is a “Type” dropdown with selections including “MS Excel XML” and “CSV/Tab Separated”. Toggling the selection from Excel XML to CSV/Tab Separated switches the initially presented “Spreadsheet Name” input apparently used to select a single spreadsheet out of a workbook for new inputs titled “Value Delimiter” and “Enclose Values in” in a rather cute use of AJAX. the final input is a dropdown of “Yes/No” options entitled “Original Magento Attribute names in first row.”
The final section of the page is the “Field Mapping” section. It presents with a single button labeled “Add Field Mapping” :
On clicking the “Add Field Mapping Button” you’re presented with controls to add a “Field Mapping” entry. This consists of a drop down labeled “In Database” and a text input box entitled “In File” along with a remove button.
The attribute selection dropdown contains an extensive selection of Magento product attributes (which refers to attributes of the product class or object rather than any specific aspect of a physical product as an experienced osCommerce user might expect). I quickly setup a map outlining my file contents:
Short sweet and to the point. Which it had better be. Take too long and Magento’s AJAX admin will bite you in the butt by throwing you to the login screen, which will return you to the profile listing where you started with an “Invalid Post” error like this one:
I then proceeded to attempt to upload this file. Not so quick. Turns out that when Magento say’s “Products will be added/updated to this store if ‘store’ column is blank or missing in the import file.” – they aren’t serious about that. Really. After a number of errors about missing “types” , attributes and so forth, I realized that if you expect to import your data you must include at least 4 extra columns in your import file which contains the store, website, attribute_set and type attributes. For those running only a single store (I expect most users), the values of ‘default’, ‘base’, “Default’ and ‘simple” should work fine. On export, the store attribute column contains the value “admin” – I ran into a report that using this on import would result in products not being visible in the store front until it had been changed.
Along the way, I also discovered that despite the complete absence of any data on required fields in this tool there are a surprising number of fields which are required before a product can be imported. Not sure that “Short Description” belongs in that list, but its there. The complete list, with legal values where applicable, is:
Status (Enabled, Disabled)
Visibility (Catalog, Search)
tax_class_id (None, Taxable Goods, Shipping)
I’m not sure if the import process can be carried out at the same time as other administrative tasks or not. I sure hope so. It took the better part of 45 minutes to import a mere 1256 products. What it was before a years worth of optimization work on the EAV based product management, I don’t want to know. By way of comparison, this is at least 5 times as long as it takes to upload 5000 products with 50 more fields on a shared hosting account using Easy Populate on CRE Loaded. Suffice to say, I plan to have a good book and a cup of coffee handy before attempting to import 5000 to 10000 products – a catalog size not uncommon on many sites.
Overall, I’m impressed with many aspects of the import / export tools provided by Magento. That there is a unified framework for data flow speaks well for this shopping cart. But, the user friendliness is a bit lacking. In page documentation of the required fields is lacking, reports in the Varien forums indicates that it is also missing in the User Manual and the exact functionality of the user mapping is not entirely clear. This appears to be focused entirely on column selection from within the local data set – more of a field listing than mapping – as there is no provision for matching foreign field names. The main purpose of this feature seems to be to allow import of files without column headers in place. While I’m new to Magneto, my more than 25 years worth of experience with delimited files tells me that building such files without column headers is like juggling hand grenades with loose pins. You know its going to get ugly, its just a question of when. The presence of misleading statements as to ability to set the default store and the absence of any required element guidance on the front end are major flaws in this system. I was however, fairly impressed with the back end error handling.
Keep in mind, this system review is not intended to be a comprehensive critique. It is shaped by a focus on usability for users new to the software, and limited by my restricting myself to searches of the Magento Knowledge Base, Wiki and Forums in order to obtain a view of the software more congruent with that large portion of such users who seem to never RTFM. I hope that one or more of the available users guides will address these issues quite well, though comments in the dozens of forum threads containing hundreds of posts from frustrated users tend to indicate otherwise.
Look for more posts on Magento in the near future – many of them from the new user perspective and undertaken without review of available literature as I take a good luck at just how user friendly Magento can be – and survey some of the more common frustrations with the Varien shopping cart’s community variant prior to reviewing the available documentation…
One Response to “Magento Product Data Import”
Leave a Reply
You must be logged in to post a comment.