Magento is quite a beast. An open source e-commerce platform that’s able to accommodate all types of sale. From Burger King to Kurt Geiger, Kennards to Seat, its versatility has been harnessed and modified to suit all manner of business.
And yes, there are many resources and themes out there on setting up and creating the perfect shop. But having recently spent far, far too many hours lately inputting attributes, creating sets, and developing products, one thing I have never found was any information on the logic behind data-loading.
Working in data management for well over a decade, I have witnessed so often that basic common sense gets overlooked for ‘quick fixes’ or ‘desperate urgency’, and can often mean the subsequent cleanup operation will cost the business more than getting it right from the off. Like baking a cake, one wouldn’t start baking a cake without knowing what they’re doing from the off, and ensuring they have everything they need, otherwise that cake won’t be edible by the end of it.
So please read on to find my 5 things to bear in mind when entering data into Magento (or any other database for that matter), and how to ensure the results aren’t half-baked.
Preparation is vitally important. I’m not talking about the data gathering here. I should hope this has already been done, otherwise there is little point bothering to data load at all. But cleaning, normalising, and prepping, ready for the load, is so often missed and mistakenly overlooked for the sake of firing data in.
The database is broken up into the following 4 x segments:
Quite simply, if you build your products in the above order, you should have no issues with loading the product. But ensuring you have all of the attributes in the beginning is key to moving forwards with ease and efficiency.
Ultimately, the data is the Attributes. And like a baker who won’t start creating their gateau without knowing they have noted (and sourced) all of the ingredients to make it properly, so no-one should start building a database without having listed all of the attributes they are going to need from the base up, and then subsequently getting the details on them.
The simplest form of database is a spreadsheet, and it’s a great place to start when gathering data together, just like writing down a recipe will have certain parts to it (e.g. the base; the filling; the ganache etc.), so the attributes of a product will have their own parts to them.
Imagine a black forest gateau:
Attribute | Black Forest Gateau |
---|---|
Sponge | eggs |
caster sugar | |
cocoa powder | |
dark chocolate | |
Filling | tinned cherries |
kirsch | |
cherry jam | |
whipping cream | |
Decoration | fresh cherries |
The gateau itself is made up of three types of attribute, and these attributes have values associated to them. If you added another cake, it may share the same attribute values (e.g. eggs, sugar) or have different ones (e.g. in a carrot cake: carrots). If you subsequently added more products, you may realise that a large number of attributes and values are shared, and there may be a few more attributes to add to the list.
Once the attributes are all listed in the spreadsheet, you can then play with it to get a list of unique attribute values, ready to be imported, and separated from the products. The beauty of going product by product to get the attribute list together in the first place means you still have a sheet with all of the information related to its specific product, but you can take the sections you need, one at a time, and build this into the relational database in Magento.
So the attributes have been sorted and loaded into the database, now you need to start looking at attribute sets. The sets collate the attributes that will be associated to specific types of products. Not all products share the same attributes. In fact, there may be certain types that have some that are almost identical, like models of cars, or t-shirts that come in different sizes or colours. So the attribute set is the collation of attributes that make the products what they are.
Ensure the attribute sets cover the various models of products, and these make it much easier, when creating the products, to select the relevant attribute values for it. So with ingredients, there may be an attribute set that covers sponge cakes, but also one that covers tray bakes!
Once everything is in, it only remains to categorise them and actually create your products. The reason the categories go in before the products is because there are fewer of them, and the products will subsequently be associated to them. You could manage a whole database of courses! For instance: the database could have 30 cakes, but they are only to be listed under the ‘cake’ category. There could be 20 ‘main courses’, but you wouldn’t want them popping up in the ‘dessert’ section. Categories can therefore work this way:
Be methodical, and copy your products. If you prep’d correctly, you will still have all of the products listed in your spreadsheet against their relevant attributes and values. Those that are almost identical can be duplicated easily, and the minor changes made. In all, Magento is a very simple relational database, and should, if prepared correctly, be a simple and easy to use tool. So easy in fact, you can have you cake, and eat it too.