Magento Product Types Setup – The Ultimate Guide

 

What kind of product attributes are there in Magento?

There are 6 different product types in Magento:

  • Simple product
  • Configurable product
  • Grouped product
  • Bundle product
  • Virtual product
  • Downloadable product

 

What are the different product types good for?

 

Simple product:

This is the simplest product type, normally this is used the most frequently. These products are simple products because they have characteristics that make them unique, e. g. board games, TV, paintings. These products may be sold by themselves or as parts of grouped, configurable or bundle products.

Example: There is a black cap below where the customer cannot choose the colour of the cap. In case the product is available in several colours and you would like the customer to be able to choose the desired colour on the data sheet of the product, you need to create the product as a configurable product.

Magento simple product

 

Configurable product:

These products have variable characteristics e.g. shoes, T-shirts (colour, size).

  Example: The customer can purchase the shoes below in various colours and sizes (sizes e.g. 39, 40, 41, colours, for example: blue, black).

Magento configurable product

Configurable products consist of several simple products. Let’s presume that you have a configurable product that can be chosen in 2 colours and 3 sizes. In this case, you actually made 6 simple products (which are usually not displayed in the store, so they do not appear by themselves) and you made 1 configurable product that covers these 6 products.

 

Grouped product:

Grouped products are similar to configurable products. At this type of product the user can choose which items to buy among the items of a grouped product and also can decide how many of the individual items he or she wants to buy. E. g.: knife set, bed-linen etc.

Example: You can see below a bedroom furniture set with several simple products in it, which can also be purchased separately. However, this way we offer the customer the possibility of buying several products that belong together more easily and without searching further.

Magento grouped product

 

Bundle product:

In case of bundle products, the customer can set which items or parts the product to be purchased should consist of. There is a camera in the picture for which we can buy parts or accessories like e.g. lens, strap etc. Accessories or parts of bundle products may be simple or virtual products.

Magento bundle product

Virtual product:

These products do not have physical or downloadable forms, they are physically undeliverable (as there is nothing to be delivered). In general, these are some kinds of services e.g. subscription, licence etc. The data sheet of a virtual product is exactly like that of a simple product, just no delivery address has to be entered during the purchasing process. This VIP membership offer in the picture serves as an example of a virtual product.

Magento virtual product

Downloadable product:

These products do not have physical forms, only downloadable forms, e.g. downloading of a piece of software or an e-book. You can buy the user’s manual of a BMW car below, which is a downloadable PDF.

Magento downloadable product

After purchase and payment of the product, the customer receives an e-mail containing the download link. But if the customer logs in to the online store, the product can also be found under “My downloadable products” and it can be downloaded from there, too.

 

How can a specific product type be created?

 

Simple product

It is simple to create a simple product!

    1. Log in to admin, and go to menu Catalog -> Manage Products.
    2. Here, go to menu Add Product on the right.
    3. At the first part of product creation
      1. Choose Attribute Set (attribute group)
      2. Choose Simple Product at Product Type and click on the Continue

 

Magento simple product setting

 

4) After this, you will receive a new data sheet where you need to enter specific data of the product. It is important at the beginning that if you have several online stores and store views, you can access or modify its own settings by switching to the desired Store view in the drop-down menu Choose Store View, located at the top on the left.   Note: I detail all the necessary settings only in case of the simple product, I describe only the changes concerning the other product types.

 

Fill in the General tab according to the following:

Name: Enter the name of the product, it will show everywhere under this name.

Description: Add the long description of the product. This will appear on the product data sheet.

Short Description: The short description will appear in the lists.

SKU or item number, where you should enter a unique identifier.

Weight: Weight of the product, which is necessary for the shipping calculations (provided you have a carrier who takes into account weight).

Set Product as New from Date: This is the start date of a new product (optional).

Set Product as New to Date: This is the end date of a new product (optional).

Status: If you would like to allow this, set this to “Enabled”.

Url Key: If you leave it blank, it will be automatically generated from the name of the product.

Visibility: If you would like the product to appear everywhere, set this to “Catalog, Search”. “Not visible individually” means that it does not figure by itself on the page, which is relevant in case of the bundle or configurable products.

Country of Manufacture: not obligatory, rarely used

Size: optional

Color: optional

 

Magento simple product general setting

 

Prices tab

Price: You enter the price of the product here.

Group Price: This is where you can add customer group prices (optional).

Special Price: Promotional price (optional).

Special Price From Date: Start date for the special price (optional).

Special Price To Date: End date for the special price (optional).

Tier Price: Here you can set how much the price of a product should be after adding a certain quantity of it to the cart. It can be separately set for customer groups and websites, e.g.: the price of 1 product is 1000, but if 10 or more is bought, the price per piece is only 800, so if 10 are bought, the total price will be only 8000 instead of 10,000.

Apply MAP: Application of Minimum Advertised Price for this product.

Display Actual Price: Where the actual price should be displayed.

Manufacturers Suggested Retail Price Tax Class: Set the tax class here.

Magento simple product prices setting

 

Meta Information

These parts are all important from the point of view of SEO.

  1. Meta Title: This will be the title in the browser. If you leave it blank, the browser title will be the name of the product.
  2. Meta Keywords: These will be the meta keywords. If you leave it blank, the name of the product will be added.
  3. Meta Description: This will be the meta description. If you leave it blank, again the name of the product will be added.

 

Magento simple product meta information setting

 

Images

This is where the images belonging to a product should be uploaded. You have to select the images with the Browse Files button, then upload them with Upload Files. After uploading, you have to choose

  • which image should be the Base Image that will show on the product data sheet,
  • which should be the Small Image that will show in the product lists,
  • and which image should be the Thumbnail that will show on the product data sheet in the gallery at selection.

Label can also be set, which will be the title of the product image. You can set with check-box exclude which image should not appear (this is useful if you do not want to delete the image, only to, say, disable it temporarily). Obviously, remove deletes the selected image after saving.

Magento simple product images setting

 

Recurring Profile

Recurring profiles are most frequently used for subscriptions or for purchase of a product in instalments. If the customers buy such products, they can pay for them only through PayPal (payment through PayPal has to be enabled and set).

Example: There is a newspaper that you have subscribed to and you pay for it in monthly instalments, so you pay once a month.

Settings:

Enable Recurring Profile: Set it to yes if you want to enable it.

 

Schedule

Customer Can Define Start Date: Whether you allow the customer to define the start date.

Schedule Description: Short description that appears on the “successful payment” page.

Maximum Payment Failures: After how many unsuccessful payments should it be suspended.

Auto Bill on Next Cycle: Set it to yes if you would like the system to automatically initiate the missed (unsuccessful) payments in the next billing cycle.

Example: there was not enough money on your (PayPal) account on the day of payment, so the payment was suspended. But later you put enough money on your account, so at the next payment the system withdraws the missed amount, too, if this is set to yes.

 

Billing

Billing Period Unit: Set the billing period (weekly, monthly etc.)

Billing Frequency: How frequent the billing should be.

Maximum Billing Cycles: Maximum number of cycles, so how many times should the billing take place (infinite number of cycles happen if left blank). Take a newspaper for example, the price of which is 1000, the Billing Period Unit is weekly, the Billing Frequency is 3, Maximum Billing Cycles is 5. This means that the payment takes place every 3 weeks and you pay 5 times in total, thus you pay 1000 every 3 weeks, totally spending 5000.

 

Trial Period

Settings of the Trial period has to be done the same way as described at the Billing section. The only difference is that here there is a Trial Billing Amount, which is the price during the trial period. I will show it through an example what this is really good for.

Example: Let’s presume that a new magazine is published that the customers are completely unfamiliar with, so it is possible that not so many people will be interested in it. This is when it is worth having an “Introductory” period and selling the product at a lower price (introductory price) and after this period is over, the product can again be sold at the original price.

 

Initial Fees

Initial Fee: This is a one time fee that has to be paid at the first occasion, provided it is set enabled.

Allow Initial Fee Failure: It cancels the subscription when set to yes if the initial one time fee is not paid. When it is set to no and the initial one time fee is not paid, the system will take this initial amount the next time when there is enough money in the account.

 

Magento simple product recurring profile setting

 

Design

This is where you can set what kind of theme a specific product should appear in.

Custom Design: This is where the design pack can be selected.

Active From: From when the individual appearance shall be active (if left blank, it will be active from the date of setting, so the system ignores this option in this case).

Active To: End date of individual appearance (when blank, it is active for an indefinite time, if a certain date is set, the design will be reset for the original after its expiry).

Custom Layout Update: Custom Layout xml modification (Requires programming knowledge!)

Page Layout: Modification of page layout (e.g. the present one is 1 column layout and you would like to modify it to 2 columns).

Display Product Options In: Where to display the selectable options of a product (this is interesting in case of products that have selectable options, e.g. configurable, bundle etc. products).

Product Info column usually appears under the product price next to the image on the right hand side, Block after info column appears under the whole info block, so usually under the image.

 

Magento simple product design setting

 

Gift Options

You can allow here for the user to be able to enter a gift message during the purchase. If this is set to Yes, the system will ask the user during the purchase to enter the gift message (from whom, to whom, message). At the system settings it can be determined whether it should be possible to set individual messages concerning separate products or set a message for the whole order.

Magento simple produc gift options setting

 

Inventory

Inventory management can be set here. Where User Config Settings is enabled, the system gets the values from the system settings.

Manage Stock: Whether inventory management should be allowed concerning this product.

Qty: How many pieces are in stock.

Qty for Item’s Status to Become Out of Stock: Beyond this number of pieces the product will be in “Out of Stock” status.

Minimum Qty Allowed in Shopping Cart: Minimum quantity that can be purchased.

Maximum Qty Allowed in Shopping Cart: Maximum quantity that can be purchased.

Qty Uses Decimals: Is it possible to use decimals in quantities, e.g. 1.5 litres.

Can be Divided into Multiple Boxes for Shipping: This option pops up after setting Qty Uses Decimals option to yes. This is where it can be set whether the product can be shipped in separate boxes.

Backorders: “No backorders” means that the product cannot be purchased if it is not in stock, “Allow Qty Below 0” means the product can be purchased (backordered) even if it is not in stock. ”Allow Qty Below 0, and Notify Customer” means the same as “Allow Qty Below 0”, but here the customer is also notified.

Notify for Quantity Below: Below what quantity should the system make a report on the stock of the product. (You can take a look at this under Reports -> Products -> Low Stock menu).

Enable Qty Increments: If this is enabled, the user can add the product to the cart only if it is added in the quantity entered in the Qty Increments options.

Stock Availability: Whether the product is in stock. If this is set to Out of Stock, the product cannot be purchased even if backorders are enabled. Qty and Stock Availability cannot be interpreted as the same, it is misleading for a lot of people that no matter if there are 3 pieces available of a product (Qty), it cannot be purchased if Stock Availability is set to Out of Stock.

Magento simple product inventory setting

 

Websites

This is where you can set in which online stores your product should appear.

Magento simple product websites setting

 

Categories

This is where you can select in which categories the product should appear.

Magento simple product categories setting

 

Related Products

This is where the related products can be selected. If you want to see the complete list, you have to click on the Reset Filter button on the right. Then you should pick out (tick the check-box) the related products. These products appear in the left or right sidebar on the data sheet of the actual product (of course this may differ depending on design).

Magento simple product relate -products setting

 

Up-sells

These are set the same way as Related Products. These are products that the ecommerce store offers to the customer. They appear at the bottom of the product data sheet.  

Cross-sells

This has to be set the same way as the Related Products. These products appear on the cart side. The aim of this function is to encourage the customer, still before purchasing, to buy even more products.  

Product Reviews

Product reviews that arrived on the product figure on this tab. The reviews can be modified (accepted or maybe their texts can be modified a little or deleted) by clicking on the Edit button.

Magento simple product product reviews setting

 

Product Tags

This is where the tags of a product appear. The logged in customer can put tags on a product on the product’s data sheet and that is also where the accepted, approved tags appear. The newly arrived (thus not yet accepted) tags can be approved or modified in admin under Catalog -> Tags -> Pending tags menu.

Magento simple product product tags setting

 

Customer Tagged Product

The list of the customers who tagged this product appear here.

Magento simple product customer tagged product setting

 

Custom Options

These are the custom options of a product, which are a little bit similar to the options of the configurable product, but they are, after all, different.

This custom option setting allows you to create selectable custom options and thus avoid the creation and use of attributes.

 

Example:

Let’s take the earlier used example of the black cap. You would like to have the possibility of printing different stickers, logos, etc. on the cap. You have to do the settings in this case according to the following:

You have to click on the Add New Option button and enter the name of the option e.g. Printing stickers in the Title field then you should select at Input Type what type the option should be. Is Required – whether it should be obligatory to fill in this blank, Sort Order – this is for sorting the order.

 

Text – Field: this is a simple text field that is filled in by the customer, e.g. “I would like to have a BMW logo”. Enter into the Price field how much more expensive the product will be compared to its original price. Price Type means whether the price will be a certain amount higher or by a percentage of the original price. You can enter the eventual individual item number at SKU, at Max Characters you can put a character limit indicating how many characters can be entered by the customer at most.

 

Text – Area: text field, the customer can enter longer texts here. Further settings of it are the same as those of Text – Field.

 

File – File: The customer can upload different files, e.g. the BMW logo can be uploaded here.

At the further settings, at Allowed File Extensions you can enter – separated by commas or space – the allowed file extensions e.g. jpg, gif, png.

Enter to Maximum Image Size the maximum size of the images that can be uploaded. If the file is not an image, you should leave this field blank.

 

Select – Drop-down: in this case the administrator will fill in the offered options (see the attached image for such an example).

To add new options, you need to click on the Add New Row button. At the further settings the fields have to be filled in the same way as at Text – Field, the only difference is that here you have to enter in the title the name of the option that the customer will select. The customer can select one option.

 

Select – Radio Buttons: This has to be set the same way as Select – Drop-down, but these will be radio buttons. The customer can select one item.

 

Select – Check-box: This has to be set the same way as Select – Drop-down, but these will be check-boxes that can be ticked. The customer can select several items.

 

Select – Multiple Select: This is the same as Select – Drop-down, the only difference is that the customer can select several items.

 

Date – Date: The customer can select the date here.

Date – Date & Time: This is where the date and time can be selected.

Date – Time: This is where only the time can be selected.

 

Magento simple product custom options setting   Magento simple product custom options setting

 

Thus the setting of the simple product is finished. Save the product by clicking on the Save button.

 

Configurable product

Before creating a configurable product, there must be an attribute or attributes that you can use for configuration (I will write about that in detail in the attributes section).

  1. As the first step when creating the product, select type Configurable.
  2. Then you have to choose which attributes you would like to use for configuration, so what the customer will be able to choose from.

 

Magento configurable product setting

 

3) After that, enter everything the same way as you did in the case of the simple product except for the Inventory, because here it depends on the simple products associated to it whether it will in stock.

4) The associated simple products can be found on the Associated Products  tab.

The associated products can be created in two different ways. You either create them as the simple products or by using the Quick simple product creation section. I suggest the latter one because it is faster.

When choosing the latter one, fill in the fields, then the associated product is created by clicking on the Quick Create button. You will find the preselected attributes here that the customer will be able to select (e.g. Size, Colour).

If you would like to quickly modify the product after the Quick Create, click on the Edit button in the list below where a window pops up. You can modify here what you need to.

 

Magento configurable product setting quick

 

Below, there are a couple of options with which you can make a product or products more expensive than others (e.g. you would like to raise the price of Size 39 by 500 compared to the other sizes. Either a fixed price or a price expressed in the percentage of the original price can be set. This setting may also pop up when filling in the above form, provided there is no product yet in this size or colour, namely: if this option is not included in the Super product attribute configuration section.

You can enter the text under Attribute Name that the customer will see. If Use default is checked, the original text will appear.

Magento configurable product setting super

 

Grouped product

Settings of the grouped product are similar to those of the configurable product.

  1. As the first step when creating the product, select Grouped Product.
  2. You have to tick the products associated to it on the Associated Products You can set the Default Qty in the list, namely the default quality that will be set by default on the product data sheet (of course, this can be modified by the customer). You can reach the complete list at Reset Filter in case you would like to add associated products.

 

Magento grouped product setting

 

Bundle product

  1. As the first step when creating the product, select Bundle Product.
  2. The difference here on the General tab, compared to the simple product settings, is that the item number (SKU) and weight can be set to dynamic (this will be visible in the order, if set to dynamic the item numbers are aggregated e.g. test-1 and test-2 will be test-1-test-2).
  3. On the Prices tab the price field is dynamic, so you cannot enter the price because it is calculated from the sub-product.

In the Price View field you can set how the price should appear on the product data sheet and in the lists. As Low As means the initial price, the minimum price of the bundle product. At Price Range the price is expressed as a “from-to” value, so the minimum and maximum prices appear (the minimum in this case means the price when the customer buys the least, usually 1 item, from the bundle product, the maximum means the price when the customer buys the whole package, so all items of it).

 

  1. Items of the bundle product appear on the Bundle Items

 

You have to add here the products that are to be part of the bundle product.

It has to be set in the following way:

It has to be set at Ship Bundle Items whether the product items may be shipped Separately or Together.

The Bundle Items part is below this, where new options may be added with Add New Option on the right side.

When adding a new option, title of the selection e.g. Camera Objective has to be entered to Default Title.

Type of the selection should be chosen at Input Type, whether it shall be Drop-down, Radio buttons, Check-box or Multiple select.

Is Required means whether it is obligatory for the customer to choose from this section.

Position means in which position it should be if there are several choices.

Products can be added to this selection with the Add Selection button.

The complete list can be reached at Reset Filter where you have to select the product. Qty to Add is the default quality to be selected.

Then you have to click on the Add Selection Product(s) to Option button above.

When this is done, you will see the added products. In case it is Drop-down or Radio Button type, you can set beside Default Qty whether the customer may modify the quantity of the added product (User Defined Qty). That is not an option in case of the other types and it is always the quantity set in the Default Qty field that will be added to the cart.

With the Default switch, it can be set whether the given option should be enabled on the product data sheet by default.

 

Magento bundle product setting

 

Virtual product

Virtual products have to be set the same way as simple products.

  1. As the first step when creating the product, select Virtual Product at the product type.
  2. The only difference on the General tab is that no weight needs to be entered here as virtual products do not have any weight. The rest is the same as with the simple product.
  3. Stock management is usually not used at this type since it is not likely that these products run out of stock, so set Manage Stock to no on the Inventory tab in this case.

The customer does not have to enter a shipping address when purchasing a Virtual product since this type of product cannot be shipped.

 

Downloadable product

Downloadable products have to be set almost exactly the same way as simple products only here there is an extra Downloadable Information tab.

  1. As the first step, select Downloadable Product at the product type.
  2. Just like in case of the virtual product, you do not need to enter the weight of the product on the General tab as there isn’t any, and usually stock management is not used with this type either (of course you still have the option).
  3. The following has to be set on the Downloadable Information tab:

At the Links section:

Title: Title of the downloadable products should be entered (e.g. Documents).

Links can be purchased separately: This is where you can set whether the downloadable products can be purchased separately.

Then by clicking on the Add New Row button below, you can add further items.

Title has to be set here, which will be the title of the item (e.g. BMW e46 manual)

Price may only be entered if it is allowed that the downloadable items be purchased separately, because in this case prices of the items have to be entered here. If the product can be purchased only as a whole, the original price that appears on the Price tab will apply.

Max. Downloads: This is where you can set how many times the user can download the purchased product. If you do not wish to limit this, tick the Unlimited check-box.

Shareable: If you would like it if the customer, who bought the downloadable product, could share it with others, set this to Yes. In this case the product can be viewed by anyone by sending, sharing its link. If this is set to No, only the logged in customer can view the product who actually bought it.

Sample: This can be either a file or a link, which is a preview that appears on the product data sheet (e.g. in case of a book, usually the summary on the back-cover of the book is uploaded in some form that may be an image, PDF etc.).

File: This is where the complete version of the downloadable item is uploaded, which may be a file or a link (the link may point to a downloadable file etc.).

Sort Order: Should there be several downloadable items, the order of appearance is set here.

 

There is a Samples section (rarely used in my opinion) above the Link part. If you upload items here, too, they will also appear on the product data sheet the same way as in case of Sample in the Links section. This (Sample) is actually the preview of the whole downloadable product, while in the Links section separate previews may be uploaded for each downloadable item.

 

Magento downloadable product setting

Creation and setting of the products is completed now.

 

What is a product attribute and what is an attribute set (attribute group)?

 

What is a product attribute?

Product attributes define the characteristics of the products, e.g. the colour of a product, its weight, its size, its description etc. In my opinion, this has been very well elaborated in Magento and can be nicely used both by developers and online store administrators.

Product attributes can be filtered very well in the search engines, e.g. if someone is only interested in black coloured size M T-shirts. It is important from the point of view of customer experience that the users are able to easily and successfully search in an ecommerce store. For this reason, attributes and attribute sets of the store must be designed very thoroughly.

 

What is an attribute set (attribute group)?

An attribute set (attribute group) is, as its name suggests, the grouping of attributes.

Example: Let’s assume that you sell T-shirts and laptops in your online store. In this case you create two attribute sets with the appropriate attributes. Why? Because, for example, the T-shirt does not have memory size, processor frequency, hard drive size, the same way as the computer does not have a colour (though this would even be possible in some cases). Because of this, you create an attribute set for the T-shirts, let’s call it Clothing, and another one for the computer, e.g. IT Equipment.

It is not advisable to create separate attribute sets for each and every product type as you should simplify as much as possible, but make sure that a logical concept is followed (shown in the above example of the T-shirts and laptops).

 

How to create product attributes and attribute sets (attribute groups)?

 

Creating an attribute

In admin go to menu Catalog -> Attributes -> Manage Attributes.

There click on Add New Attribute above on the right.

The form needs to be filled in the following way:

 

1) On the Properties tab:

 

Attribute Properties

Attribute Code:

Unique identifier of the attribute (no space or accents are allowed in it and it cannot be longer than 30 characters) e.g. colour, size, memory_size.

 

Scope:

This defines at what level the values of the attributes can be modified.

Global: equal, everywhere the same value.

Website: its value may vary by online store (so if you have 2 ecommerce stores, the product will be on sale from 1 February in one of them and from 1 March in the other).

Store View: This may be different by store view (for example you have two store views, one of them is in Spanish, where the URL key is producto-muy-bueno, and the other is in English, where it is very-good-product).

 

Catalog Input Type for Store Owner:

This is where the input type of the attribute has to be selected.

Text Field: simple text field

Text Area: text area field

Date: date format

Yes/No: Yes/No type

Multiple Select: multiple choice type

Drop-down: drop-down type

Price: price type

Media Image: image type, lots of settings disappear if selected

Fixed Product Tax: fixed tax type, lots of settings disappear if selected

 

Default Value:

This is where you can set the default value to be filled in at the creation of each product (this is useful when this value is frequently repeated at the products because you have to type less).

 

Unique Value:

This is where you can set whether a given value should be unique. Let’s say there is already a product in the store, with a memory capacity of 8 GB. However, there is another product in case of which you would like to set the same value. If the unique value is set to yes, the system indicates that this value is already in use. So in this case two products cannot have the same value.

 

Values Required:

Whether it is obligatory or optional to fill in the field.

 

Input Validation for Store Owner:

Whether the system should verify at the input whether the given data is adequate.

Decimal Number: whether it is a decimal number

Integer Number: whether it is an integer number

Email: whether it is of e-mail type

URL: whether it is of URL type

Letters: whether it is made up of letters

Letters (a-z, A-Z) or Numbers (0-9): whether it is made up of letters or numbers

 

 

Apply To:

Which product types the attribute should apply to, if to all, then All Product Types.

 

Front-end Properties

Use in Quick Search:

Whether the value of the product attribute should be searched in a quick search engine. If yes, then searching for, say, the word “red”, the system will find the products with which this value is set.

 

Use in Advanced Search:

Whether this attribute should appear in advanced search.

 

Comparable on Front-end:

Whether the product could be comparable based on this attribute.

 

Use In Layered Navigation:

Whether it should be used in layered (also called narrow-down) navigation. If yes, then this attribute will appear and will be able to be searched for by the customer. Only drop-down, multiple select and price type attributes can be used for this.

 

Use In Search Results Layered Navigation:

This is almost the same as the previous one above, only this sets whether the attribute should appear in layered navigation following the search.

 

Use for Promo Rule Conditions:

If you would like to use the attribute among the conditions of the promotion rules, set this to yes. For example, if there is a rule that gives 10% discount from the price of the red coloured T-shirt, this has to be set to yes at the colour attribute in order to be able to set the rule.

 

Position:

In which position should it appear in the layered navigation.

 

Allow HTML Tags on Front-end:

This can be set only in case of Text Field, Text Area. This defines whether HTML tags may be used when entering an attribute value.

 

Visible on Product View Page on Front-end:

Available only in case of Simple and Virtual Products. This sets whether the attribute should appear at the Additional Information on the product data sheet.

 

Used in Product Listing:

Whether the attribute should appear at the summary part on the product list pages. In other words, whether this value should be displayed in the list. This also depends on the theme.

 

Used for Sorting in Product Listing:

Whether it may be used for sorting in product listing. This, too, depends on the theme.

 

Magento product attribute create setting

 

2) On Manage Label / Options tab:

Manage Titles

This will be the name of the attribute by store view (provided there are several) that will appear on the page.

Admin: This is how it will appear in admin.

Default Store View (note: its name might have been changed by an administrator): this is how it will appear in the default view that the customer sees.

If there are several, all of them will be listed here. If the fields are left blank, the system will always get the values from the admin field.

 

Manage Options (values of your attribute):

As the text in brackets suggests, these are the attribute values.

This has to be entered only in case of drop-down and multiple select.

You can add a new one with Add Option.

It has to be filled in the same way as at Manage Titles, only here there is the position of the attribute values in addition. If Is Default is ticked, this will be selected by default at the creation of the product.

 

Magento product attribute setting

 

Creating attribute sets

In admin go to Catalog -> Attributes -> Manage Attribute Sets menu then click on the Add New Set button.

Creating an attribute set is quite easy.

  1. As the first step, you need to enter its name and then in Based On you have to define based on what should it be created. It is advisable to use the Default (if there is one).
  2. After this, you will arrive on a new page by clicking on the Save Attribute Set button where you can add the desired attributes.

The name of the group can be modified in the left column.

The attributes on the right have to be put in the middle column. They are divided into several sub-groups here, which is useful from the point of view of transparency. Also, e.g. the memory_size attribute should not be on the prices tab as it does not belong there. Of course you can create a new sub-group by clicking on the Add New button.

On the right, the attributes that are not yet part of this attribute set are listed.

Attributes may be removed if you would not like them to belong to the attribute set.

 

Magento product attribute set create setting

 

 

12 proven tips that can raise ecommerce store conversion in 2016

1. Make your visitors feel welcome

If someone visits your website for the first time, obviously you cannot greet them with a broad smile. But still you can make something appealing: you can greet them with a pop-up window. Here you can show a special offer right away, a small discount or free shipping, for example, going with the first purchase.

Online store conversion welcome

Since achieving the very first conversion is the hardest, and customer retention requires a lot less effort, it is well worth enriching your visitors with a positive experience right at the first time. Needless to say, it is wise to ask for a subscription or email address in return because you will be able to reach your new customers later via newsletters or electronic direct mails.

 

2. Don’t let your visitors leave you!

One of the major challenges with online stores is that even if visitor numbers are high, conversion rates can be really low. Reasons for it may be that visitors simply abandon their carts, just look around without buying anything or make shopping lists (and not purchases) by putting products in the cart.

If you want to get hold of those who consider making a purchase, you have an immense number of options in online marketing that help you do that. Remarketing is one of them. If the user takes a look at a product, but does not buy it, you can offer him or her that same product via AdWords, even with a discount.

You can also show a special offer to your visitor just at the moment when he or she tries to leave your store. It can be an attractive, one-time-only discount deal in a pop-up window. It is best when you tailor your message, focusing on that particular product or category, which the customer has just viewed.

 

3. Simplify your checkout process

Many case studies mention that lots of customers abandon their shopping cart in the last moment, just before they are about to pay for the products. There can be several reasons for this. A complex checkout process is a typical case.

If too many click-though’s to other pages are necessary or too many customer details are to be given, the chance of rejection is quite high. Don’t make registration necessary for the customer if he or she wants to make a purchase.

You can encourage him or her to do so with deals or discounts, but don’t make it compulsory. Minimize the number of steps so that the purchase process takes only a few clicks and as little time as possible. Place the shopping cart and the CTA (Call to Action) payment button in a very visible spot, for example in the upper right corner or in the sidebar where people usually look for it.

Always show the number of products in the cart and the subtotal. Never hide any additional costs. Indicate the cost of shipping right on the product page.  A vast number of customers decline their purchases at the very end because they see the charges for shipment, as an “unpleasant surprise”, only on the last page of the checkout process.

 

4. Always run A/B tests

That moment when you can lay back and say “Finished at last!” will never come. You need to optimize your online store on a continuous basis, watching all the time how your customers use it.

A B test conversion

Conversion rates can largely depend on where you place different buttons, what colour they have or what kind of text they show. By guessing, you will never be able to tell which will generate the best results. Therefore you need to monitor the data of your pages, in terms of changes in efficiency, proportion of visitor types, how much time they spend on a page, what they click and what they don’t (ignored sections of pages).

When you have specified the fields that need to be improved, prepare two (or more) new versions of the page in question and show the different versions to your audience in a random way. Try to gather as much information as possible that shows you which version performs better and from then on use the winner page.

For further tips read: A/B testing in ecommerce: 10 things you really need to test

 

5. Use many good quality images

Your credibility increases considerably if you make the effort to display your customers the items that they are about to buy as precisely as possible. So the first thing you need to do is get or take pictures of your products.

Online store image use

Forget about copying or importing low resolution images from other websites. You’ll need professional photos that show the products from every angle, so that the customers can have the experience similar to holding the products in their hands, inspecting them closely and viewing their details.

Make your design clear and make it focused on the products, grab your users’ attention with high quality images. Your written content and videos are perfectly suitable for directing your visitors to your site or help answer different questions. But in the case of your home page or additional product offers, you will definitely need eye-catching pictures. You may ask: why is it SO important?

According to a survey by Oneupweb, 70% of visitors are more likely to make a purchase if images of products are shown on the home page of a website. A very effective approach can be presenting your most popular products on your main page. At first thought, it may seem controversial: why should you promote those items that are doing fine, why not trying to sell more of the less popular ones? Because popular products have proven their worth and thus will more probably win the masses.

 

6. Let your shopper customize the product

Of course, this possibility largely depends on what you offer on your online store. If you have the opportunity, give a chance to your customer, whenever you can, to choose the product which most satisfies his or her needs.

Offer options to select colour, style, shape, size etc., ideally on a product page with a nice user interface where only a few clicks are needed to get the desired product displayed. Also, make it possible for the users to add some extras to the product.

For example, if a customer spends half an hour to configure his or her ideal laptop computer on a state-of-the-art page of an electronics ecommerce store, he or she will feel that it is his or her own creation. It is now more likely that he or she will buy this product, even if this custom product is more expensive than a standard one (maybe with similar performance qualities).

 

7. Be reliable and show that you truly are

Although there is nothing really revolutionary with online shopping nowadays, a large portion of customers still have doubts about it. They are afraid of data abuse, theft or failed delivery. If you want these doubts to disappear, there are a couple of things you can do.

In the first place, publically available reviews and ratings can significantly strengthen trust. It gives confidence if the shoppers can rate the seller and the products, can ask questions, send complaints (which are answered) on the dedicated pages of the online store.

The users can give “rating stars”, write opinions, send questions seen by other users etc. When visitors can read useful information sent by other visitors has a massive advantage: an opinion sent online by a “real human being” can almost have such influence on others just as if some friend made that remark or recommendation.

This is especially relevant in such cases when the customer has some doubts about online shopping right from the start. E.g. the costume won’t fit, the facial cream won’t work as expected etc. In the case of those types of products that we would normally try and test in a brick-and-mortar store, you should leave the opportunity open for the online shopper to step back if he or she wants to, after making a purchase.

If you have faith and confidence in your products, if product quality is truly high, if you do everything in your capacity to help your customers choose the right thing for themselves, there won’t be a lot of returned products. And, on the other hand, you will have more and more shoppers because they will feel secure with your e-store. Using some additional visual elements is also recommended. Show the certificates you have or the payment options the customer can select from, display the store’s business address and phone number.

Communicate that your online store is not some “obscure money-sucking” business, but a responsibly operating company, to which customer satisfaction is the highest priority. Another useful hint is that you display your phone number on every page in a highlighted spot so that users of mobile devices can call you immediately just by tapping on the number.

 

8. Use weather-based segmentation

Most online stores monitor whether the visitors arriving to the website are new or returning ones, where they have come from, what their previous history is, and so on. In addition, of course you may know geographically where the visitor is located by city and country. Still, there is a trick that few ecommerce stores apply: segmentation based on actual weather.

Online store conversion weather based segmentation

Since you know the geographic position, with a minimum effort you may as well check the weather at the location where your visitor lives. And you can make use of that in lots of different industries in order to make shopping more personal.

If you sell cars, you can emphasize the advantages of their use in cold weather for those who live in locations where it is winter. You can grant discounts in case of various articles of clothing if there is a rainy period at your visitors’ location, you can offer them raincoats, umbrellas in addition to their actual carts. If you also sell wine, you can draw your visitors’ attention to this in case the weather is not nice at their locations, in which case they are not likely to go out, but would prefer having a drink at home.

It is only your fantasy that may limit the possibilities: you can use weather-based segmentation in case of medicinal products, DIY items, garden products, cosmetics etc.

 

9. Shoot videos that convert

Video content may be of good use for you not only in acquiring new visitors, but it may also help you increase the conversion rate.

Shoot video online store

It is worth measuring what the customers are most curious about in case of each product. It is worth monitoring what questions they send in or what keywords they enter in the search fields. Make a list of the most frequently asked questions and make short videos showing how to use the product based on those questions.

It takes only some little effort to produce these, you can shoot even a dozen different videos a day and all you have to do is to give information to the users in a concise and comprehensible manner about what they are interested in, to present the product features, how to use it, give tips etc. This substitutes the experience when one asks the shop assistant in a store how a certain product should be used, whether it has this or that function and so on.

 

10. Launch a blog, write a lot!

We will write about this in detail in a later article, but let us have a few words here about the importance of a company blog. What plus does written content give you when you operate an ecommerce store? Online store blogging Content marketing can help you answer the users’ questions even before they ask them. Likewise, you may blow away their doubts in connection with a product: simply with text that describe how to use a product, who it is important to, why it is worth buying it (honestly, though, not with an aggressive sales objective), and you have immediately won over lots of users who would not have asked questions otherwise, they would have simply rejected the purchase.

You can have links to relevant content on the product pages, too, like a sort of FAQ-teaser mixture. And speaking about products – do not skimp on the characters here either. Try to include all significant details in a well-structured description of the product including the characteristics, the available options as well as the potential types of uses.

However, do not write the text as a list – rather as an interesting article with subheadings, dynamics and a message. Typically the most popular advertisements on the advertising pages are those with superbly written copy next to them.

 

11. Follow your customer!

Remember the advertisements in the movie Minority Report? The ones that called the customer by name and asked how the product, purchased the previous week, worked out? If you are smart, you need to strive to achieve a similar experience and concept only without the pushiness.

Monitor your customers, their habits and grab them discretely! You can lead someone much more easily towards conversion if they have already purchased from your online store especially if they “left” with a pleasant experience. Send them an e-mail offering different products of the same category they previously selected.

Promote similar products to them on other platforms with remarketing. If they visit you, greet them with a personal pop-up window, offer them some kind of a discount if they purchase again. It is also important to keep track of who bought what in your store. If you sell for example premium mattresses with a ten-year guarantee, there is no sense in promoting the same kind of mattress to the customer the next time – this is simply useless. What can you do instead?

You can offer them relevant things even on the product page – e.g. bed linen that is ideal for the given mattress type. You can present, in an email, other products of the manufacturer that they may very likely need. Furthermore, you can monitor who purchased in your store and when he or she made that purchase.

If you sold a product that the given customer probably uses for, let’s say, two years, send him or her a personalized (automated) e-mail after two years. Ask whether the product worked out and make a personalized offer to him or her to get a new piece of the same product with some discount.

 

+1. Forget about your own “e-merchant mindset”

You should always focus on the things that are good for your customers. Think with the head of your customer. Think about what makes you feel good during a purchase and what makes you frustrated. How do you look for information? How do you decide what to choose? What would make you happy in the long run?

Conversion: abandon e-merchant mindset

 

tips It does not matter if you personally do not like some of the solutions, focus on efficiency: Choose a system for your ecommerce store that is flexible and cost-effective, with which you can make different changes to optimize the website – into which you can easily integrate e-mail marketing tools or even different kinds of content if these prove to be the most efficient way to achieve better results.

Do not be afraid to change even your most cherished solutions because there is always some extra little thing that can increase conversion by a few percent – bringing you additional income.

 

 

Preparing for the Magento Developer Certification exam

The Past

During my secondary and primary education I had a great deal of possibilities to participate in different competitions. I always liked taking part in these competitions, since I enjoyed comparing my knowledge to that of, let’s say, the students of another school. My teachers also urged that more and more of us go, get experience and thus prepare for the secondary school final exam.

When it came up here at AionHill that it would be good if we, developers, passed the Magento Developer Certification exam, I immediately indicated that I would be happy to take this challenge. By that time already two of my colleagues had passed the Magento Developer Certification exam. Before coming to AionHill I had Magento experience, so I had already heard about the exam. Of course, this exam seemed too distant and unattainable for me back then.

 

How i prepared for Magento Developer Plus Exam

This goal became more and more realistic as my experience in Magento increased.

Preparing for the Magento Dev. exam

I started preparing for the exam approximately two months in advance while also going to work every day as usual.

After I checked the exam requirements I realized that only the practical and some theoretical experience gained during my work would not be enough. It was inevitable for passing the exam to prepare particularly for the topics of the study guide. The exam requirements can be found here: Magento Certified Developer Exam Study Guide (PDF)

If you take a look at the document, you will find that the questions are built around 10 topics:

  • Basics − 6% of the exam
  • Request flow − 7% of the exam
  • Rendering − 7% of the exam
  • Working with database in Magento − 13% of the exam
  • Entity-Attribute-Value (EAV) Model − 10% of the exam
  • Admin html − 7% of the exam
  • Catalog − 10% of the exam
  • Checkout − 16% of the exam
  • Sales and customers − 11% of the exam
  • Advanced features − 13% of the exam

The highest number of questions were about the checkout process. You need to know the classes that are responsible for the shopping cart, the management of the address, for the total of the cart, for the payment and delivery methods. The second highest number of questions were related to database operations. Here, one also had to have a deep knowledge of the operations of the classes in connection with the database, operation of install and upgrade scripts, and the methods that can be used within them.

Magento Developer Exam Preparation

After I learned about the exam requirements, I started thematically preparing for the exam. I always selected a topic and tried to get to know it as deeply as possible. I installed a test Magento in my own developer environment where I could test the newly acquired knowledge.

In addition, there is a very good video series (in English) that describes thoroughly the operation of Magento, through examples, while still focusing on theory. The training material named Fundamentals of Magento development, which is no longer free of charge, is available here: Fundamentals of Magento Development I learned a lot from this forty-hour video series!

You can find some other links below that helped me during my preparation:

Some Advice

Besides the training materials and videos listed above, I put a great deal of emphasis on testing and experimenting during preparation. I always tried out the examples in the study guides and I even tried modifying them so that I got to know the operation of Magento better. Since I use public transportation on a daily basis, I uploaded most of the materials above on my phone so I could prepare for the exam when I had a little time while commuting to work.

Another perfect preparation strategy may be writing modules as similar as possible to the core structure of Magento. What I mean is that you should use the models, collections in the modules and that you should get ACL (Access Control List) and external JavaScript and CSS files from xml. Of course, when developing a Magento module you can also choose solutions that are a bit further from the basic concept of Magento.

This method speeds up the development, but it makes the code complicated and since I work in a team, the clear code is indispensable. When we go through each other’s codes with the eyes of a developer, the solutions that are far from the core structure of Magento, pop up very quickly. This is when the developer has to rewrite the functioning, but “ugly” code to a coherent, clear, logical one that does not go against the core structure of Magento. You can read more about this issue on zend.com: Zend Framework Coding Standard for PHP

 

Magento Developer Plus Exam Preparation

The Exam

I applied for the exam at IQSoft. It was a great advantage for me that there was an exam centre in Budapest where I could take the Magento Certificate exam. I know this is a little thing, but I know myself and I am sure that the travelling and the new environment would have tired me so much that I could not have concentrated one hundred percent on the exam.

The exam took place on 23 June 2015, whose date I could schedule myself, of course depending on seat availability. I already knew the exact date more or less a week before the exam. The exam fee was 260 US dollars, which is quite a lot if you take into account that no textbook or trial exam was provided. I was lucky because I got a voucher code from AionHill, so I could take the exam for free. The voucher is granted when you buy Magento Enterprise.

There was strictness during the exam at IQSoft. The camera was continuously on in the room recording me and the others taking the exam. All personal belongings had to be left outside, I could have no watch, no phone, not even tissues on me. The examiner gave me tissues and had me sign a declaration of liability that explained of course in much more detail (and in English) the principles of conduct that I had to follow during the exam.

The exam was taken by using a computer and it was immediately evaluated. Only multiple choice questions were asked, however, several answers could be checked in case of many questions and the score was only given if I knew all of them, so no partial points or scores were granted. There were 85 multiple choice questions, 70 of which you had to give correct answers to in order to pass the exam. When I came out of the room, the evaluation was printed immediately, but unfortunately the results per topic were figured on it only in percentages. As a consequence, I did not find out which questions I answered incorrectly and which correctly.

Finally, this is my Magento Certification Profile link.

SUMMARY

I would like to encourage everyone who feels aptitude for it to take the Magento Developer Certification exam because it is worth it. The main advantages that I would highlight are the broadening of your competence and the deepening of your knowledge. I hope I have managed to encourage those to take such an exam who are still hesitating to do so. Really, the only negative aspect of the whole thing was the strictness, but that is kind of understandable if you take into account what is at stake at the exam.

 

Good luck to everyone!

 

 

Magento vs. PrestaShop – tools for professionals and beginners

Before starting the detailed discussion of the two software solutions, it is worth examining an entirely different aspect first: your enterprise. You will see that the two pieces of software are for businesses of different sizes, of different profiles and ambitions and this will be the main factor that may facilitate the decision.

The two open-source code software solutions, which can be freely used and developed or modified by anyone, primarily show similarities at first sight rather than differences. However, you may find after the first steps that there is actually a great deal of differences between them. We will go through the following aspects in this article so you will definitely find everything here in one place:

  • Pricing: how much will you have to spend on the systems and how much do they cost in the long run? How cost-effective are they?
  • Support and community: who can you ask for help, what can you expect when you have a problem?
  • Manageability and functions: can you cope yourself or you will need professional help?
  • Customizability: how freely can you shape the functions, appearance or operation?
  • Compatibility: about the basic needs of the systems
  • SEO: a good system gives you the chance to rank high in the search hit lists
  • What does PrestaShop offer?
  • What does Magento offer?

Let’s start with one of the most important aspects.

 

Pricing of PrestaShop and Magento

PrestaShop is a quite simple application for free and is of open-source code. In order to be able to use it, you only have to download it and install it on the server.

The same is true for Magento Community Edition: we are also talking about an open-source code software that is available free of charge. Enterprise Edition of Magento is also available, but that is really for the biggest players since its yearly subscription fee is quite large (starts at $18,000).

 

Magento PrestaShop price

 

What you have to take into account in the long run in both cases is mainly the fee of the hosting service.

It is necessary to roll an appropriate hardware infrastructure under the system, otherwise it will hardly be able to handle higher traffic.

It will also be shown how the basic software can be extended or modified – this is important from the point of view of the costs, too, as you have to pay for most of the professional themes, designs and extensions.

It also has to be mentioned here that in case of Magento the inexpensive themes are not perfect, they will make front-end development or back-end correction necessary, should you wish to customize them hundred percent.

Customization and error correction often involves almost as much work as if you had the design built from scratch.

Generally, purchasing is much cheaper than developing your own system (provided that you find one that perfectly meets your demands), and the overall experience of Magento e-commerce store owners is that these investments will abundantly return in case there is an already existing customer basis and an elaborated sales strategy in place.

It is important that you allocate a constant budget following the activation, since functionality will certainly have to be continuously optimized according to the user feedback and your own measurements.

This is necessary because the online store is capable of satisfying customer needs only if it can adapt to changes in market trends.

This is the only way it can generate more profit: if it offers the customer what the customer truly needs. Consequently, the real work begins only after going live – this is true for all e-commerce store systems that can be optimized this way.

The budget may, of course, vary depending on the industry.

 

[bctt tweet=”An online store can meet customer needs only if it can quickly adapt to changes in market trends.” username=”aionhill”]

 

Support and community

 

The two platforms are significantly different when it comes to having questions to answer or problems to solve.

In case of PrestaShop, you can join a smaller online community of quite enthusiastic users and professionals. Possibilities of official support are quite restricted though.

 

PrestaShop Community Support

 

Another disadvantage of PrestaShop is that you may come across a lot of smaller bugs when using it, as experiences show, so the developers have to publish corrections frequently.

These on the other hand are not automatic and their installation imply some technical knowledge. However, the corrections generally arrive quickly and the latter statement is also true for Magento: you will really be able to benefit from the installation of the corrections and extensions only if you rely on a specialist.

Regarding Magento, you will receive official support only if you are using the quite expensive Enterprise Edition tailored for the large enterprises.

But users of the free Community Edition will not be left alone either, since there is a community of a large number of users behind Magento including a lot of talented and enthusiastic web developers who can be contacted any time on the different online forums.

 

Magento Support Forums

 

And of course you can find Magento developer partners if needed, who are capable of solving problems and to shape the system according to the demands.

The reason for this, among others, is that Magento is at the moment one of the most popular e-commerce platforms among the medium-sized and multinational commercial enterprises, it covers nearly 30 percent of the market.

Although the system itself is more complex, there is still a bigger chance to solve the eventual problems due to that very fact.

 

Manageability and functions

 

Installation itself is relatively simple in both cases, it does not demand particularly deeper knowledge from the user and it usually takes only a few minutes.

In case of Magento however, a developer is needed for this and you also have to make sure that the development environment is adequate. Regarding Magento, it is advisable to decide at the installation whether you want to operate a single online store or a multi-store system.

You also have to consider that installation of the extensions of Magento – which you will definitely need sooner or later – is a more complex task calling for a specialist. Unless you have relatively significant experience in handling more complex systems, you have a good chance of facing obstacles.

In order for the e-commerce store to operate appropriately, professional assistance is usually inevitable. Differences also appear regarding handling.

Handling Magento is a more serious task, it takes more time to get to know where to find the different functions – or what kind of functions whatsoever the system has. Yet

Magento is famous for already having a great deal of functions by default, even without extensions. PrestaShop has great potentials for those who want to operate a simpler online store.

Simplicity here does not refer to the number of products, as PrestaShop is theoretically able to handle anything which the physical infrastructure, the server itself can. At the same time, problems may occur with scalability.

Earlier, the system has not even contained the multi-store feature but from version 1.5 up, similar to Magento’s solution, you can manage from a single administrative interface several e-commerce stores that are hosted on different domains and have different designs.

Magento is rather the engine of the more complex online stores, it is the tool of those companies that would like to work with continuous optimization, endless number of options for functions, detailed possibilities of customization and targeting – thus ensuring in the long run to be able to always shape their system according to the actual requirements and market needs.

This entails that its handling will be most comfortable for the users with a technical orientation.

PrestaShop also remains at a disadvantage in not being able to collect statistical data and to make reports as effectively as Magento – of course the capabilities of both systems may be increased with extensions.

 

Customizability

 

Both platforms are open-source code systems, so certainly lots of different plugins and extensions are available for them – amounting to several hundreds in both cases.

The real difference is that PrestaShop is simpler in this regard, too: installation and handling of the modules is not too difficult even for beginners, while for the appropriate installation of a Magento extension, you will need an expert with specific competence in the use of the system who also has development experience.

 

PrestaShop Customization Modules

 

The enthusiastic communities, including a great deal of talented developers, are continuously making newer and newer extensions. For this reason, it is given in case of both pieces of software that you find the exact solutions tailored for your needs.

Should you have unique needs, it is worth persistently looking for extensions with favourable user opinions and choosing based on those opinions.

As for Magento, however, it is worth searching for a competent developer team for the installation of such extensions (or even for the development of individual extensions).

PrestaShop offers less possibilities in the first place to customize your store.

Even if the system of Magento is more complex, that is because it includes much more features.

So one makes a fair deal if they are willing to sacrifice more of their time to get to know the system in exchange for the great deal of options that they can thus freely use.

 

Magento Connect

 

It is also worth becoming familiar with the setting options since individual development is not necessary in case of a lot of things that you would assume would need that – and this way you can save money, time and trouble if you properly know your own system.

 

Compatibility

 

It is important to touch upon this issue as, according to the experiences, it may cause problems in certain cases.

In case of both systems it may happen that they cannot work together with another piece of software – for this very reason, it is by all means worth checking the possible consequences before installation or when preparing for a more significant modification. It is best to consult professional developers in such cases.

In order to be able to use PrestaShop, your system will have to meet the following requirements: Apache web server 1.3 or newer version, Nginx or Microsoft IIS, PHP 5.2 or newer version, MySQL 5.0 or newer version, and Linux, Unix or Windows operating system.

The following requirements will have to be met in order to be able to use Magento: Ubuntu 10 or higher version, and CentOS 6, Apache 2.x, nginx 1.7.x, PHP 5.4 and the necessary extensions, MySQL database.

 

SEO

 

If you want the e-commerce store to attract sufficiently high traffic, you also have to pay attention to search engine optimization.

The unanimous opinion of the professionals is that even though PrestaShop includes some basic optimization possibilities, Magento is much stronger in the field of SEO, it offers so many opportunities that search engines “favour” as no other e-commerce platform does.

 

Magento PrestaShop SEO

 

The issue of responsiveness also belongs here since Google’s algorithm nowadays also monitors whether your website is mobile-friendly or not. If it is not, you might as well give up on the good results on the hit lists regarding searches, launched from a mobile device.

Magento has been responsive since 2014, it may be optimized superbly to any kind of platform, it offers an easily manageable interface for the users – and thus even the algorithm does not rank it lower in the searches.

PrestaShop did not feature responsive layouts by default earlier, but by now it does.

At the moment one of the most important factors for reaching higher Google rankings, besides such factors like page speed and relevant back links to your website, is responsiveness, since it is crucial for users with mobile devices.

 

What does PrestaShop offer?

 

PrestaShop offers an open-source code software solution with several useful functions, lots of features, for free – at the same time, to be able to exploit its possibilities appropriately, you will need extensions, templates and so on.

 

PrestaShop offers

 

PrestaShop is also a mobile friendly system. Although with versions 1.4 and 1.5, a separately developed theme was needed to be installed for making it responsive, from version 1.6 it is a responsive system by default. (In the case of Magento CE, 1.9 and later versions handle responsiveness “automatically”.)

PrestaShop was established in 2007 by Igor Schlumberger and Bruno Lévêque, with the explicit aim of making e-commerce more available for the average users.

It is not by chance that the target audience of this simpler system mainly consists of small and medium-sized enterprises.

Because of the complex features that lie in Magento, it is worth considering using it for the medium-sized and large enterprises, while for the smaller ones, the fresh starters, the simpler and more easily predictable PrestaShop may be a better choice.

 

What does Magento offer?

 

It is an open-source code, free of charge software solution with a lot of features.

Its real strength is customizability – of course you will need extensions in this case, too, however, several thousands of these are available, among which you will most likely find the ideal one for you.

It is worth choosing a hosting provider that has specific experience in this field with Magento and also has provided service for Magento stores with heavier traffic. Previous work references show well how strong the hosting is, even if there is not yet such a big traffic of thousands of visitors per day.

 

Magento Enterprise Edition

 

It is also important that the provider undertakes the individual configuration as well, so you do not need to adapt to global settings as in case of big-name hosting companies.

It can be nicely optimized for search engines, its biggest strength, narrow-down search, is holding it back though a little in this respect – however, this, too can be easily corrected with the help of a developer company.

It is a more complex system, but for a reason, as it provides the user with much more possibilities. It is ideal mainly for the mid- or large size companies that build their business model particularly on e-commerce selling several thousands or even several tens of thousands of products.

 

Summary

 

Purchasing process of PrestaShop is more easily adjustable, Magento, on the other hand, offers much more features.

It is the perfect tool for those who like to control as many factors as possible and who are planning deep integration with external ERP systems (SAP, Microsoft Navision, Dynamics). More significant expertise is necessary for the installation of Magento, while even beginners can use PrestaShop without trouble.

Similarly to WooCommerce, PrestaShop is for those who would like to test the online market as e-commerce storekeepers who have just started or have recently started.

And once the business picks up according to the feedback from the market, introduction of an ERP system and deep integration with the online store is inevitable for growth, and that is when it becomes definitely worth seriously considering switching to Magento.

The two systems target two completely different audiences so the decision is not particularly difficult.

It may cause a dilemma only for some of the medium-sized enterprises that are not completely aware of how serious they are about ecommerce: should they build their future upon that or not? Therefore, you need to be clear on that before making the choice.

 

 

Magento discount system, Magento coupon use

The use of the Magento price rules can be a powerful promotion tool in your hands since your customers like experiencing a special approach. Obviously, a shopper buys an item more happily if it is discounted. Magento discounts can be managed in the admin panel under the Promotions menu. A basic difference between the Magento catalog price rules and the Magento shopping cart price rules is that with the catalogue price rule, shoppers see the discount as soon as they open the store page, while with the shopping cart price rule they see it only at the shopping cart and during the checkout process.

Magento catalog price rule

In the Rule Information tab you can set the basic properties of the rules. Here you can define the time intervals and customer groups to which the rules may apply. In the Conditions tab you can narrow down the conditions under which the discount should be valid. You can define a group, a category and other attributes. You also have “exclude” options when setting the conditions, which means that if you select a group or category, the rule will NOT apply to these. Magento discount catalog price rule   In the Actions tab you can define the value of the discount either by giving a percentage or a fixed sum of money. By default, more than one discount can be used by the shopper in a single online store. In order to eliminate this, you need to select YES under the Actions tab at Stop Further Rules Processing.

IMPORTANT You can apply the catalog price rules by clicking the Save and Apply button, however, if cronjob is operational, it is automatically started by Magento every day at midnight.

 

Magento shopping cart price rule

IMPORTANT Here the options are similar to the catalog price rule settings. The difference is that in this case the total of the shopping cart (and not the product’s price) or the delivery cost will change. Under Conditions, in addition to the conditions of the catalog price rules, you can define delivery and invoicing settings as well as the total weight of the cart.

 

Magento coupon information

You can also create coupons under shopping cart price rules. You can generate an infinite number of random coupons, but if you want to create each coupon manually, then you need to assign a different price rule to each one. Magento discount shoppig cart price rule

Real life examples for Magento discounts

 

1 − Now each product delivered to the UK can be purchased at a 10% discount

Here you can see how you can give a discount on the basis of the delivery address.   Setting the conditions: Click on the Conditions tab and then on the “+” icon. From the dropdown menu select Shipping Country and after clicking “…”, choose United Kingdom. Magento discount shoppig cart price rule shipping   Select Percent of product price discount in the Actions tab at Apply and then type 10 at Discount Amount. Magento discount shoppig cart price rule actions

2 − You save 50% if your total is over GBP30 and if you pay with PayPal Express

In this example we want to set a shopping cart price rule which applies to shopping cart totals exceeding GBP30 and the customer has selected PayPal Express as a payment method.   Setting the conditions: Click on Conditions and then on the “+” icon. In the dropdown menu select Subtotal. Click on the “is” link and select the equals or greater than option. Then click on the “…” link and type the value of 30. Now that you have set the shopping cart total, click on the “+” icon again and define the Payment method, which is Paypal Express Checkout, after clicking on the “…” link. Finally, select the Percent of product price discount option at the Apply tab under the Actions tab. Set 50 for the Discount amount.   Magento discount shoppig cart price rule conditions

3 − 10% discount for a product over GBP15

Here you will set the 10% discount using a coupon code for a product which costs more than GBP15.   Setting the conditions: Click on the General Information tab and select the Specific Coupon option under the Coupon option. Then type 10OFF in the Coupon Code field. Thus if a customer gives the 10OFF coupon code on the shopping cart page, he or she will get a 10% discount. In the next step, instead of defining the GBP15 limit on the Conditions tab, you will set it at the Apply the rule only to cart items matching the following conditions (leave blank for all items) section on the Actions tab. Click on the “+” icon, then select Price within the Product attribute option group. Click on the “is” link and define the sum of 15 at the greater than option. On this same tab select Percent of product price discount at the Apply option. Then type 10 in the Discount Amount field and type 1 in the Maximum Qty Discount is Applied To field.   Magento discount shoppig cart price rule coupon

4 − 5% discount on the total if UPS (Next Day Air) shipping is selected

In this example you will set the 5% discount using the coupon code method.   Setting the conditions: Click on the General Information tab and select the Specific Coupon option under Coupon. Then type 5OFF at the Coupon Code field appearing below it. Thus if a customer gives the 5OFF coupon code on the shopping cart page, he or she will get a 5% discount on the total order. Now click on the Conditions tab, then on the “+” icon and select the Shipping Method option and after clicking on the “…” link, select [ups] Next Day Air. Finally, at the Apply tag, on the Actions tab, select Percent of product price discount and type 5 in the Discount Amount field. Magento discount shoppig cart price rule coupon conditions

More Complex Cases of Magento discount solutions

In many cases, the default functions of Magento cannot fulfil more sophisticated business needs. These requirements can be met by Magento development. Let us see some examples.

1 − Discount for female/male shoppers according to age

Say, you want to do give a discount on the total purchase price for men over 50 years of age. Although you can set the birth date and gender in Magento, you CANNOT use these data as conditions with the catalog or shopping cart price rules. However, with programming it can be solved that these data are taken into account by price rules.

2 − We’d like to give a coupon code for one specific person

In this example we want to give a coupon code to a predefined person so that he/she will be able to shop at a discounted price. It can be determined that a coupon code is to be used only once, but Magento development is needed if you want to define which person can use exclusively this coupon code. But, well, with a little trick even programming is not necessary: you put the shopper, you want to give the coupon to, in a separate user group and then set the price rule to apply to only that specific user group.

3 − Discount for returning customers

Here you would like to reward your loyal shoppers. Unfortunately you cannot see at the price rules by default how many times a customer has shopped at your online store and how much he/she has spent. With the help of Magento development, it can be solved that the sums of all the purchases of a given shopper are added up and then a specific discount is given to that customer.

tips +1 Solution: We also have developed such a solution where the checkout process was complemented with a form. The fields of the form were shown in accordance to the price rules. For example, if Computer Configuration was present in the shopping cart, a checkbox appeared during the ordering process. By clicking this checkbox, the customer could ask for the configuration of the computer completed in the shop.

These examples are just a few out of many that we have come across or can manage flawlessly. Do you have specific problems in Magento you would like to solve? Contact us right away.   If you think this article can be useful to other readers as well, please share it. You can also write your comments below. So if you have any questions or queries, don’t hesitate to comment!

 

 

Magento product import: 4 excellent solutions that definitely work

One of the greatest advantages of Magento is that shoppers can search for nearly an endless number of parameters and terms and browse among the products. This makes shopping easier and also increases the chance of conversion because it is more likely that they will find the most desired product, even out of thousands of options. To be able to accomplish this, obviously, you need to fill up your store with products. No one stops by an empty shop window. Simple as that. Luckily, a number of different solutions are available for such a project.

 

The basics: via the Magento admin panel

The most trivial and simple way is to import the products manually into the Catalog. In the admin panel, under Catalog, you can find the Add Product button on the Manage Products page. With Magento’s CMS (Content Management System) you can easily and quickly modify the product database.

You can assign different parameters to the products so that customers not only can search the products with better results, but can also activate intelligent filters. Additionally, thanks to the parameters, you can also set up different user groups that will see specific offers. This all makes your life easier while managing your online store, however, throughout the database building process, you will need a more effective way.

 

1. Simple importing in Magento

It is a basic function of Magento with which, after only a few clicks, you can import your products from a .csv file. This method is quite simple after you have got the hang of it, like where to find the items and what sequence you should follow during the process. It offers a rather limited number of possibilities though.

 

Default Magento Product Importer

 

If the file contains parameters that are not set included in the system (because you have not yet created the specific attributes), then importing will fail and the process will get stuck during the data check. Thus such a process is needed where the attributes contained in the .csv file are identical to the ones that the system holds.

This can be done on this page: System -> Import/Export -> Import. Since you can also upload customer data here, you need to select whether you want to do this or upload product data instead. You also need to choose from the following:

  • add new data of the .csv file to the existing database,
  • change the existing database to the imported one,
  • or delete the items from the database that are present in the import file.

 

2. Bulk import with some extra steps

Of course, Magento’s admin panel provides the option to import more products at a time. Let’s see how bulk product import works that contains product attributes set beforehand.

 

Magento bulk product import

 

First you need to create a category in the admin panel. This can be done in Catalog -> Manage Categories. Create all the categories you need at the moment, then, after filling out the required information panels, save them.

It is recommended to save the IDs of the newly created categories in a text file. The ID is shown by the system when you save the newly created category. Here it is also worth giving or creating those attributes that you want to use later on.

It is understandable that the Magento system cannot comprise all the things you may need, but it certainly provides the features to be able to add whatever you want. So you can add the attributes in Catalog -> Attributes -> Manage Attributes. Having this done, the “sample product” is created, which can be used as a “template” for the rest of the product imports. After saving it, it appears in the product list.

The next step seems a little more complicated, but in fact it is a simple process as well. The goal is to have access to the parameters of the sample product on your own computer so that you can modify the parameters in a simple way and then reload them up to the store. This can be done the following way: Go to System -> Import/Export -> Dataflow – Profiles and select the Export All Products option.

You need to define the online store where you wish to import the products under Profile Information (logically, this store must be the same where the sample product was created). Under the Data Transfer drop down menu select Local/Remote Server and make sure that CSV is selected with the format.

Next, save the profile and then export all the products again and click the button Run Profile in Popup. Thus you will get a file “export_all_products.csv” (whose name you can change if you wish), which is saved in Magento’s installation directory. You can download this file to your computer with the help of an FTP client, containing the columns with the previously defined attributes. If you open the file in a spreadsheet program (e.g. Microsoft Excel), you can easily fill out the fields and thus you can add the products you want to import. You need to add the category IDs here as well, make sure you place the proper products in the correct categories.

Finished? Now go to System -> Import/Export -> Dataflow – Profiles -> Import All Products and select Upload File and then choose the modified .csv file. After the upload, go to Import All Products again and select Run Profile in Popup and then click the uploaded file in the dropdown menu. Now all you have to do is check the product list to see if the upload has been successful.

 

3. Using Magento Mass Importer, aka Magmi

If you want to have a clear and easy-to-use solution with several other options, the free Magmi application may be the answer.  This is basically an external user platform which offers you a number of import/export functions that are originally not included in the Magento system.

 

Magmi import for Magento

 

Based on our experience, it is simpler to import products with the use of Magmi, however, you will still need to create the necessary .csv files. So the database needs to be created by you, but with Magmi it can be easier to upload it to your system. The only initial drawback may be that you have to learn how to use a new admin area, but before you start worrying, it is not such a big deal.

There is a lot of documentation which guides you through the process step by step, even a dedicated Wiki page has been set up to help users get every bit of information they need. Its huge advantage is that such tasks as mass import of images or automatic category creation with the importing process can be accomplished.

 

4. Paid Magento extensions

The “capabilities” of Magento can be broadened by buying and adding special extensions to it. Most users employ the Magmi application because it has a great variety of functions and can be downloaded for free. But if you need a special feature, you can find extensions fulfilling your requirements.

 

Magento Store Manager

 

It is good to know that such extensions cost approx. USD50-100 per extension, so if you want to have some custom extensions to maximize efficiency, obviously, you will need to spend a certain amount of money and it is wise to allocate a portion of your budget to such developments for the future.

 

tips Useful Tips:

 

Appropriate Software

As you could see above, in the case of Magento, one of the major challenges is to make the basic templates that you can later use for importing the products. If you do not pay special attention to this process, problems with compatibility may arise even because of some minor missing attributes. Therefore the template should be created within the online store itself and thus the system will be able to read it afterwards. This file needs to be exported to your computer and edited in such a way that it contains the detailed information of every product you want to offer.

To Magento, however, it is very important what kind of program you use to manage the .csv files. We have seen that Excel is not suitable to handle such tasks flawlessly, so we recommend using other software. You can find the free-to-download Calc program in the Libre Office software package, which is easy to use for Excel users and has all the functions you need for your files.

Special Characters

When saving CSV files, use UTF-8 formatting. It is probably the safest way to avoid any problems in the future, but it is still not a 100% problem-free solution. You have to be careful with special characters, for example. If a product attribute contains special characters that the given format is incompatible with, it may cause difficulties when importing.

The error usually manifests in the way that the product field is left empty. If you really need to use special characters, e.g. line breaks or commas, place the content of the field between quotation marks (see examples below where we describe attributes), thus it will likely appear properly. This mainly applies to product descriptions, with the rest of the attributes it is better not to use special characters at all.

Put the images you would like to import in the /media/import directory

The system needs to process every single image during importing. Upload the raw images to the /media/import directory before importing the product database. It is also crucial how you set the names of the images. In order to avoid unpleasant surprises, make sure to set the same names and extensions as the table includes.

Do not change the columns of the table

The essence of the process mentioned above is to use the same attributes that the engine of your ecommerce store can recognize and handle. If you change these even just a little while editing the file, it may cause unforeseen errors. Most likely the import process will fail.

The columns (/attributes) that you must set

We have already described thoroughly what compatibility problems you may encounter if you upload your products in an inappropriate format. Now let us see which columns or attributes you definitely need to include in your source .csv file.

  • websites – the website entity which has a “base” value by default.
  • store – the online store assigned to the product, has an “admin” value by default.
  • type – the type of the product.
  • attribute_set – default, or another group of attributes, you can check this in the admin panel on the following page: Catalog -> Attributes -> Manage Attributes
  • tax_class_id – the tax type assigned to the product, you can find its features in the admin panel at Sales -> Tax
  • status – the status of the product, its value can either be “Enabled” or “Disabled”.
  • weight – the weight of the product; if you do not need it, simply type 1 here.
  • sku – the unique identifier of the product.
  • name – the name of the product.
  • price – the price of the product.
  • description – the detailed description of the product, which will appear on the product page.
  • short_description – the short description of the product, it can appear in different places (e.g. on search result pages) depending on the settings.
  • visibility – the visibility of the product, it may have values such as “Not Visible Individually”, “Catalog, Search”, “Catalog” and “Search”.
  • category_ids – category identifiers (ID); we have already mentioned it.
  • qty – the quantity of the product.
  • is_in_stock – the inventory value assigned to the product, where 1 means that the product is in stock and 0 that it is not. Those products that are not in stock are not shown on the main page of the online store and cannot be purchased either.
  • image, small_image, thumbnail – here we can define the paths and file names of the images assigned to the products. You need to know that the system makes a difference to letter case, i.e. small and capital letters. You should avoid using spaces all together. You can use the same larger image file for displaying the three different  image types (image, small_image, thumbnail), the system will automatically resize it.

 

Potential errors

Magento import errors

“Image does not exist”

You may see this message if you have given the names of the image files in the .csv file inappropriately. You should check the names again carefully not to have any problematic characters in them.

Products fail to appear

The imported products do not appear on the main page if you do not properly define certain attributes. Properties that are needed for making images appear:

  • websites = base
  • store = admin
  • status = Enabled
  • visibility = Catalog, Search
  • category_ids = # (it must be an existing category identifier!)
  • qty > 1
  • is_in_stock = 1

 

Summary

The basic functions of the Magento system give you the opportunity to create very useful properties such as products, attributes, product groups, and other entities. However, successful importing from pre-set databases may be a challenge when relying only on built-in options.

Thanks to the previously described methods and Magento’s flexible system, with the use of .csv files you can easily upload databases containing even tens of thousands of products in a way that the software can manage them without any problem. Consequently, you save a lot of time as you do not have to upload every single product or manually set every parameter. Just think of how much it would cost you to get such a lengthy work process done. Also, this means that there is a simpler way to successfully migrate databases to Magento from other systems.

Having said all these, if you still feel you need any further assistance, we are happy to offer you our Magento Project Rescue service which helps you solve basically any problem that you experience at the moment with your Magento ecommerce store.

 

 

>

Magento vs. Shopify – Which should you choose? Here’s some help.

Regarding global popularity, let us take a look at what Google Trends show.

Interest towards Magento started soaring in 2009 and it has brought constantly high search numbers since 2011.

 

magento vs shopify google trends

 

On the other hand, Shopify, as a Software as a Service (SaaS) ecommerce platform, has been growing remarkably over the past year or so, now (mid 2017) serving over 500,000 merchants globally.

Shopify’s curve started to more considerably increase only in 2013 and it became half as strong in terms of the searches by 2015.

In February 2017 Shopify managed to surpass Magento, and since then it has been gaining better results in terms of search volume.

Taking a look at the regions of the world, Shopify (red) now seems to be more popular in the English speaking countries (except for the UK) and Magento (blue) is preferred by the rest of the world.

 

magento vs shopify regions

 

However, popularity by itself does not mean anything, it does not show anything about which system is better for you personally. Therefore, it is worth taking a close look at which platform is the more optimal choice for different user groups.

Next, we will go through the following aspects, talking over everything thoroughly, so that by the time you finish reading this article, you will know which platform is better for you:

 

  • Pricing
  • Support
  • Functions & Features
  • Managing your store
  • Marketing your store
  • Design & Branding
  • Security
  • Extensions & Applications
  • Recent Versions
  • Multi-vendor Marketplace
  • Dropshipping
  • Big Brands
  • Magento Commerce vs. Shopify Plus
  • Shopify’s aggressive attack against Magento

 

Let’s get started!

 

Pricing

 

It is difficult to compare the pricing of the two systems as they operate in different schemes.

Magento Open Source (formerly Community Edition, CE) can be freely downloaded and thanks to the open-source code it can even be further developed or modified. This, however, is not to be done by the average user, but by professional developers.

In broad terms, we can say that creating a “normal” Magento store fulfilling the needs of a mid sized ecommerce business costs $10,000-$40,000. Of course, such a development price greatly depends on whether you hire a freelancer or an agency and where, in which country they are based.

For more information on Magento pricing, please read our detailed article in which we describe every aspect of the costs of developing a Magento store.

Magento Enterprise Edition and Magento Enterprise Cloud Edition (hosted using AWS infrastructure), now under the name Magento Commerce, offer greater possibilities and are suitable for building a stronger online store, will cost you money, depending on your annual revenue:

Annual Gross Sales Revenue Minimum Cost/Year (EE) Minimum Cost/Year (EE Cloud)
Up to $1M $22,000 $40,000
$1M–$5M $32,000 $55,000
$5M–$10M $49,000 $80,000
$10M–$25M $75,000 $190,000
$25M–$50M $125,000 $190,000

Please note: according to Magento, the combined hosting and licensing cost is negotiable.

 

On top of this, you may need to calculate with the costs of installation, extensions and additional developments, support, web design, and hosting (either on premise or cloud).

Extensions can significantly increase functionality, thus pay off even in the short run. Initial installation as well as extension installations need experienced Magento developers, support and hosting need devops capacities.

Still, a major part of the large enterprise market segment regards Magento as the most cost-effective ecommerce system, even including paid extensions.

 

It means: Even though there are considerable costs of running a complex Magento store, it may be well worth investing in it, since with advanced performance and high user experience standards, specifically tailored to your business needs, it can generate such levels of revenue that no other platform could.

 

Magento Open Source (Community Edition) offers for free basically the same thing that Shopify provides for a seemingly unrealistically high price. However, in case of Magento, you have to take into account that you will need a dedicated hosting service.

Also, CE by itself, lacks the unique design, tailor-made for a specific corporate image, and has no pre-set, country-specific individual configuration (e.g. delivery and payment settings, system e-mails, confirmations depending on language, specific functionalities, and so on).

That is because Magento is mainly the solution for the professionals. It may be an excellent system for anyone, however, it is typically the platform of large companies, of those operating several online stores simultaneously, of those supplying a huge audience with thousands or tens of thousands of products.

To be able to use Magento, you have to have a budget that makes it possible for you to continuously finance the subsequent modifications and optimize according to the feedback and the changing market needs.

This, concerning an already operating store that generates regular monthly revenue and is introduced to the market, in case of a company that has been operating for years and is generating stable turnover and is growing, means approximately a monthly development fee of 40-60 hours.

Plenty of optimization regarding the customer interface and also further functional developments can be carried out within this monthly time frame, all for the satisfaction of the customers – thereby resulting in the realization of extra income.

Hosting Magento will also imply a monthly fee, but a considerably lower one, and in return you will get a stable background infrastructure that can cope with higher traffic.

And if you want to take advantage of the possibilities offered by the system, if you want to grow, to evolve, you will need this. All in all, this is still the cheaper solution. It has to be emphasized though that you will have to choose a company that has enough experience in this field.

When you are looking for a hosting provider for a Magento system, you should make sure that they run already operating stores, that they can present Magento references that continuously operate under increased traffic, which justifies that they are capable of adequate optimization both in terms of development and hosting.

 

Shopify works in a subscription system.

There are three subscription plans:

Basic Shopify Shopify Advanced Shopify
$29/month $79/month $299/month

 

Since Shopify is SaaS, these service fees include maintenance, hosting, security, support, and also bandwidth.

You also need to calculate with credit card costs (2.9%–2.4%+30¢, online rates) and transaction fees (2%–0.5%) if you use external payment gateways (other than Shopify Payments).

The enterprise version of Shopify, Shopify Plus, claims to offer an enterprise ecommerce platform for a fraction of traditional enterprise costs.

Shopify Plus’ pricing plans can vary a lot depending on your selected features and resources.

Monthly fees start from around $2,000 and increase as you want to upgrade to more extensive plans having additional features (i.e. specialized apps, API resources).

 

Support

 

Comparison of customer support is quite simple: Shopify provides it, Magento does not.

To put it more precisely: in the case of Magento, support is given by the huge, committed community that continuously develops, tests and improves the open-source code system.

If you trust this community with your problem, you may get quite valuable answers that will certainly help to find the solution.

Or, you can turn to such professional development firms that deal specifically with Magento – this, by all means, provides a sounder technical background.

You should also make sure that in case the hosting company is also developing Magento, it is done in-house and is not outsourced to a subcontractor.

If anyone feels that there will not be problems with their online store, or feels their web-developer veins pulsating enough so that they think they can solve the problems themselves, Magento is the right choice for them.

But if one does not have the appropriate person for this job, Shopify means a simpler solution with 24/7 support. (What does enough preparedness mean in the case of Magento? Well, at least senior PHP programmer level with the knowledge of Zend Framework, if you haven’t dealt with Magento previously.)

 

Functions, features and options that Magento and Shopify have

The two systems are quite close to each other in this field.

Regarding the basic functions of an ecommerce store, the two ecommerce platforms can be considered practically equal, the only difference is that in order to exploit all the possibilities of Shopify, you need to pay a higher monthly fee. You have that access for free in case of Magento CE.

The competition in this category is determined by the type of the software.

Shopify is a commercial edition software that comes with a limited number of extensions to choose from.

These are restricted applications made by the developers, which ensure great features – it is unlikely though that they can properly satisfy your every single need.

 

shopify features

 

Magento is an open-source code software.

This means that anyone can freely modify or develop it – and loads of people do that.

There’s a great number of features, e.g. marketing & SEO tools, responsive design, various payment, checkout, order management, and mobile commerce solutions, which make Magento probably the most sophisticated ecommerce platform in the world.

 

magento features list

 

You can also find an amazing amount of extensions on the internet – both free and paid – developed by a third party.

Errors are continuously being looked for and corrected and you can much more easily find something among the several thousand of tools that will cover exactly what you need.

If you want to operate a simple, start-up ecommerce store, you can try Shopify Lite or Basic Shopify to measure up your market, while having only some restricted features. Advanced Shopify and Shopify Plus is for the bigger players with much more possibilities.

 

Magento on the other hand gives you total freedom. You can fully customize your store as you wish. For development, installation of extensions, and managed hosting you will likely need professional assistance, however.

 

Store Management

 

Magento is a significantly more complex system, but its administrative interface is not hard to handle and it ensures loads of possibilities to customize everything.

 

magento 2 admin dashboard

 

Shopify, in general, can be more easily installed and then handled on a day to day basis, this is however due to the limited number of possibilities.

Magento CE is free and you can include an unlimited number of products in the system from scratch – provided you have enough background capacity, and in case of a uniquely designed and functioned store it is professionally optimized (for details, see the section on infrastructure).

Magento is also the leader in allowing you to freely shape the products, their appearance, to assign any kind of categories and attributes to them thus fitting the framework system itself to your products.

 

 

Marketing & Promotion – Magento or Shopify gives you more?

 

Shopify is again falling behind in this field, as the system does not support coupons or gift cards in the starter pack, while Magento does.

Moreover, even without installing extensions in Magento, you have loads of chances to intervene in the purchasing process, to offer cross-sell and up-sell opportunities to the users, to make product comparisons, and so on.

In Magento you can set various promotional activities in lots of different ways.

You can specify, for example, to give a discount on products having a certain characteristic or being in a given category.

 

magento2 cart price rules

 

You can also make settings

  • to get a discount from the whole purchase amount if a certain product is added to the cart,
  • to make shipping cheaper at the first purchase,
  • or even to get one product for free if three are bought.

 

You can play with the settings just as if you were creating promotional boards or signs in your brick-and-mortar shop.

You can give discounts in the form of free products, presents, percentage – the examples could be listed all day long, but nothing compares to personal experience.

It is certain that you will not find a system other than Magento that better supports coupons, sales, and promotions, which can greatly boost sales.

And you can handle that even without the assistance of a developer.

 

Design & Branding

 

Both systems can be customized, a plethora of free templates are available so you can create and enhance the image and prestige of your online store quite easily.

 

shopify themes

 

 

It is an important aspect that both platforms are responsive, so they will appear on smartphones just as nicely and user-friendly as on desktop computers.

Aesthetically, the free themes offered by Shopify perform a little better, but their advantage shows rather in their simpler installation.

Furthermore, Shopify themes can be customized only in a very limited way, like changing colors, some design elements, and font types and sizes.

Because of the fundamentally simpler user interface of Shopify, its appearance is easier to shape than that of Magento, even though a lot of free and paid templates are available for Magento as well.

Magento 2 now offers drag&drop layouting and design so that you, without any coding knowledge, can put together a nice looking website quite fast.

 

magento themes magento connect

 

Security

 

Tens of thousands of websites are hacked each day. If your ecommerce store ever falls victim to an attack, you’ll probably suffer grave losses. The risk factor is extremely high here, so there’s no question that security is a very critical aspect of your online business, especially because you handle customer financial data day by day.

For Magento, security patches are issued on a continuous basis which need to be installed as soon as possible to give your website maximum protection.

 

01-Magento-patches-logo-emblema

 

Shopify, being an SaaS, takes care of security without the need of any action from the clients’ part. That’s quite convenient.

Furthermore, they communicate that they use the latest security measures for customer data protection. Shopify is in full compliance with the PCI DSS (Payment Card Industry Data Security Standard), at Level 1, which means it meets the highest security requirements.

 

shopify security

 

Extensions and Apps

 

There is a good number of add-ons and extensions for both Magento and Shopify.

For your Magento store, the official sites of Magento Connect and Magento Marketplace are recommended for finding secure and checked extensions.

Currently, there are over 2,000 extensions in the Shopify App Store.

On the Magento Connect site there are nearly 10,000 extensions out of which more than 1,500 have been developed for Magento 2.

So you have lots of choices in different categories, such as Marketing, Payments, Sales, or Social Media, and these numbers are rising steeply for both ecommerce platforms.

Shopify offers a simpler installation process, while you’ll probably need an expert to help in adding extensions to your Magento store.

 

Current versions

 

There are no versions associated with the desktop version of Shopify. The Shopify mobile app, however, allowing you to create products, manage inventory, and fulfill orders, does have versions, at the moment (Aug. 2017) it’s 6.2.1.

 

shopify-mobile-app

 

All recent Magento Community Edition 2.x and 1.x (free) versions and patches are available at the official Magento Tech Resources site.

 

If you want to try demo versions of Magento 1 and Magento 2 in terms of both frontend and admin features, you can take a look here:

 

tips Try Magento Demo Stores:

Check Magento 1 Demo Store here

Check Magento 2 Demo Store here

Access data:

User name: admin

Password: admin123456

 

Multi-vendor solutions

 

In the case of Magento, there are at least 5 different, quite sophisticated, premium (paid) extensions you can buy with which you can create your own multi-vendor solution for your ecommerce business.

If you want to have a high quality, “general” multi-vendor extension with lots of features and you don’t need any custom developments, we recommend Marketplace Multi Vendor Extension by CreativeMinds.

For Shopify we’d choose Multi Vendor Marketplace or Marketplace for turning our store into a multi-vendor marketplace.

 

Dropshipping for Shopify and Magento

 

Today, the dropshipping business model is more and more popular.

There is a good number of advantages, such as low investment (since you don’t have to keep goods in stock at all), diversity (you can sell a wide range of products) and workload optimization (you don’t necessarily work a lot more if your order numbers get significantly higher).

Shopify solidly supports dropshipping. They provide you with guides and excellent case studies about how to start and run a dropshipping business.

You can also add the Oberlo app to your store which makes it easy to dropship your selected products around the world. You can use it for free with the main features up to 50 orders a month. Unlimited orders and all features come at a monthly price of $79.90.

For Magento you there is a bunch of solutions too, e.g. on Magento Connect.

Before choosing one, it’s worth taking a look at the popularity scores and reviews!

 

Now let us give you a little help with finding your desired products and dropshipping suppliers.

Here are some sites where you can browse among well-known and reliable dropshipping partners:

 

Top brands that use Shoplify

 

Shopify was not designed for large companies at first. However, as market needs were studied more in depth and the software was developed further, the company came out with Shopify Plus in February 2017, their enterprise level ecommerce platform.

Nowadays there are some big names that either use the “normal” platform for their products or one of their sub-divisions, or use Shopify Plus to be able to offer high a quality customer experience and enjoy a wide range of features.

Here are some well-known brands using Shopify:

  • Budweiser (beverages)
  • The Economist (media)
  • Tesla Motors (automotive & energy)
  • Red Bull (beverages)
  • Kylie Cosmetics
  • The New York Stock Exchange (finances)
  • Lollapalooza (festival merchandise)

 

big brands using shopify

 

Famous brands that use Magento

 

Looking at the other side, we find that Ford Motor Co. (accessories), Olympus, Bulgari, and Monin, to name a few, have built their ecommerce sites on Magento.

 

brands magento

 

No matter whether B2C or B2B solutions are needed in different industries, Magento is capable of providing merchants all around the world with custom features, tools, and services to help them achieve their business objectives.

 

Some other popular brands having Magento ecommerce websites:

  • Sana Safinaz (Fashion)
  • Loake (Shoes)
  • Bauhaus (Home Improvement)
  • Devlyn (Eyewear)
  • Tom Dixon (Furniture)
  • Sass & Bide (Fashion)
  • Mr Price (Fashion)
  • Liebherr (Machinery)
  • Photospecialist (Photo Equipment)
  • Heidelberg (Printing)

 

Magento Commerce vs. Shopify Plus

 

There is a good number of merchants out there who started small, but now have grown remarkably to become significant players. So it seems that the enterprise segment has an increasingly important role on the market.

Therefore the major ecommerce system developers either focus more on enhancing and fine tuning their existing platforms or creating their dedicated enterprise solutions, if they don’t have one.

 

shopify plus vs magento commerce

 

Such was the case with Shopify when they launched Shopify Plus in February, 2017. Having a great success with their subscription based plans, they also turned in the direction of offering more customized services to large clients, naturally, for a much higher amount of money.

Shopify Plus is also a SaaS, but you’ll have a lot more power added to it than a standard Shopify plan.

Its main advantage is that you still don’t have to worry about hosting, bugs, updates, security, bandwidth, or file storage. You, as a company, can focus more on your sales and marketing tactics, and also on your product innovation strategy.

Predictable pricing is another advantage. Monthly plans start from approx. $2,000 and increase as you want more “extras”, like customizations (e.g. exclusive APIs), advanced infrastructure, etc. But the costs will stay the same month by month based on your initial plan.

As for support, being a Shopify Plus client, you’ll have a dedicated account manager helping you solve any issue that may arise.

You also need to know that, despite featuring blogging tools, Shopify Plus is not the best platform for content management. Therefore many Shopify stores have their blog pages on a subdomain.

Another disadvantage is backend limitations for customizations. Backend changes and integrations must be in compliance with Shopify’s API, and you do not have FTP or database access either.

On the other hand, it’s worth examining your true need for customization. Maybe it’s enough to customize the most important, rather technical or practical elements of your store? Is a totally unique storefront design that important? This article on Shopify Plus customization raises some interesting points to consider.

Finally, you must take the risk factor into consideration, which is depending on Shopify’s business health. I.e. if, for any reason, Shopify may close down, you’ll need to migrate to a new platform and all your data will have to be exported by Shopify for you. So there is some risk there.

 

magento commerce vs shopify plus

 

Now let’s talk about Magento Commerce (formerly Magento Enterprise Cloud).

At the beginning of this article, we already mentioned the pricing information for Magento Commerce, one of the most complex and specialized cloud-based ecommerce systems in the world today.

At first, we can see that it’s more expensive. The annual license fee up to $1 million revenue divided by 12 is $3,300 and it goes up as your sales grow.

However, you can still find it beneficial to implement Magento Commerce since it has a good number of advantages and features that your business truly needs.

First, you have predictable prices as well: you pay the annual license fee, which includes cloud hosting, support round the clock and also security and development services. This allows you to have a fully customized store meeting all your expectations both in terms of backend and frontend.

You also have full access to your database and you can also have additional developments and integrations carried out by your chosen and trusted Magento development team – either on an in-house or external agency level.

But what you really get with Magento Commerce is freedom. You are free to go in whatever direction you wish with your ecommerce business.

Speaking about the risk factors, should Magento as a company close down, you still have the possibility to carry on with your chosen development team providing you with the services that are needed to further manage and run your store.

And in case you would like to migrate to another platform, you’ll be easily able to transfer your data which you already have full access to.

 

Shopify’s aggressive attack against Magento

 

You may have come across several of Shopify’s ads, case studies and posts talking about the “superiority” of Shopify over Magento.

Shopify launched a frontal attack against Magento. They highlight all the benefits of their own system and all the vulnerabilities of Magento, trying to convince hesitating or “burnt before” merchants to switch to Shopify.

For example, in a series of articles at Shopify Plus, Aaron Orendorff mentions real-life cases in which some merchants got very dissatisfied with Magento and then he offers Shopify Plus as a good option to migrate to.

In addition, employing a more aggressive approach, Shopify sent out cold emails to Magento merchants making them worry about the future of their Magento 1.x store.

Kalen Jordan, a Magento enthusiast, commented on this email campaign on YouTube.

"Some of the facts in here were little bit twisted in one direction."Kalen Jordan

 

You can see his video here:

 

 

All in all, we too feel that Shopify’s marketing campaign is rather manipulative and not entirely fact-based – built on assumptions, exaggerations, and some carefully selected negative client experiences with Magento.

 

Summary

 

Shopify is a simpler choice in every respect. Simpler, because it offers less possibilities and this is not a problem for many people.

For starters, who want to sell a few products of a small enterprise, it will not be a problem that there are only a few possibilities for customization (with cheaper plans) as they will simply not need that.

Magento is the more complex system.

On one hand, it offers a lot more features: you can set every small detail yourself from the attributes of the products to the details of the appearance. You have more opportunities to enrich the system with extensions, corrections – at the same time, there is no support and no hosting, you are on your own in this regard.

If one needs more than the basic Magento system, they will have to spend on development, too, and hosting is a minuscule expenditure compared to that. On the other hand, Magento is such a system whose possibilities you can totally exploit and you may be able to do everything yourself only if you are a specialist in web programming (both in front-end and back-end development) or if you employ someone who is. In addition, you have to be aware that the operation of Magento requires that you are able to spend on it continuously.

You have to keep up with the needs of the market and the customers and you will always have to optimize your system accordingly. You will have to run A/B tests on your customer interface and adapt the purchasing process, the design, the promotions and so on according to the appropriate lessons learned. This will demand significant developments, even 40-60 hours per month in case of a major ecommerce store.

Of course, this is worth the investment even in the short run as it facilitates effective sales. Magento is a great system for growing medium-sized enterprises wishing to develop and for big companies already in the game, especially because they either have the funds for the infrastructure and the expertise or the conditions are already given. However, for the starters Shopify offers a really simple, out-of-the-box solution for which no deeper knowledge or longer learning process is needed and it is not even necessary that you acquire a hosting service yourself.

As we laid it down at the beginning, it is not the abilities of the two systems that determine which is the better – since they do not play in the same league or at least the overlap is small. It is simply the target audience which is different and the choice depends mainly on you defining which category you belong to.

 


10 useful ways to harness correctly the possibilities of Magento

In the following paragraphs I will write about the errors that we may encounter in blocks, layout xmls, installer scripts and template files (.phtml) as well as code parts that still lack some structural or other improvements even though the code has already been delivered. The examples to be shown later are not the only ways for tackling these issues, they represent only one approach to each to solve a given problem. I will detail the following in this article:

  • Array key value pairs in Magento
  • Examining object values in a condition statement (informative values)
  • Using block types in Magento
  • Code repetition in phtml
  • Unavoidable queries (how to handle them)
  • Collection separation at display
  • Exceptions (erroneous runs) of Installer Scripts and how to handle them
  • Interrelated and sub collections
  • Preparation of Module for multi-language use
  • Using Helpers

 

Array key value pairs in Magento

Even if you are sure that an array needs a specific key, this may change over time, so it is better not to have such a defined reference in the code:

$value = $data['key'];

One of the most deeply set parent class of nearly all Magento objects is Varien_Object. Through its magic-methods you can easily check these values. The array values passed over in the constructor of this class can be obtained by calling the $obj->getData(‘key’) method or, staying with this example, calling the $obj->getKey() method, which returns with NULL if the value assigned to the key is missing.

$objData = new Varien_Object($data);
$value = $objData->getKey(); //same as $objData->getData('key');

Then you can enter the required fork with an if(!is_null($value)){…} or with an if(!empty($value)){…} analysis in which the value is not NULL.

Examining object values in a condition statement (informative value)

If ($objData->getFlag() == 1) {/*...*/}

The value is easily identified any time by the developer, but after a few months or when involving a new developer, it becomes just a number without meaning. In contrast to this, in the example below, it is clear what the informative variable/value and constant values refer to and you also see which module they are linked to.

If ($objData->getFlag() == Module_Helper_Data::FLAG_STATUS_ENABLED) {/*...*/}

It is even better if in such a case you store these elements, statuses in the example, in the Model and in the table that belongs to it. During the assessment/evaluation process you check these by the Module_Helper_Data::getEnabledStatusId() call using the helper. Both solutions are correct, the point is to get the source and meaning of the analysed value.

How to utilize Block types in Magento

Magento comprises far fewer Block types than html elements, but it is still worth utilizing them. It happens quite often that some code parts that were originally “meant to be present in one place only”, are placed at least in 3-4 locations in the end, and “locked” in a phtml, like this:

<select name="my_select" id="mySelect">
    <?php foreach ($items as $item): ?>
        <option value="<?php echo $item->getId() ?>"><?php echo $item->getName() ?></option>
    <?php endforeach; ?>
</select>

For example, such a Block is Select, to be found at app\code\core\Mage\Core\Block\Html\Select.php – With the help of its methods, a list can be parameterized, which can be displayed in several locations and shows better in the source:

<module_controller_action>
    <reference name="content">
        <block type="aion_module/block_type" name="aion_module_block_type" as="blockalias">
            <block type="core/html_select" name="selectchild" />
        </block>
    </reference>
</module_controller_action>

You also have the possibility to set the parameters within the layout and also through the method call using the reference Block, within the method itself. We are looking at this option now. Create a getSomeSelectHtml method within the Block that you refer to as reference where you prepare Select for rendering/output:

public function getSomeSelectHtml()
{
    $select = $this->getChild('selectchild');
    $select->setData(
        array(
            'id' => 'frontend-id',
            'class' => 'frontend-class-one frontend-class-two',
        )
    );
    //select upload with options $select->setOptions() || $select->addOption()
    return $select->toHtml();
}

when finished, you only need to get the list displayed in the phtml file by calling echo $this->getSomeSelectHtml();

Code repetition in phtml

Sometimes you need to extend an existing function, which already has a template file. It is recommended to create a new template file, even if there is already an if-else, a switch-case or another template file.

Switch ($mode):
    Case 'list':
        Foreach ($entities as $entity): ?>
            <div class="dsadsa"><a href="..."></a><!--...--></div>
        <?php Endforeach;
    Break;
    Case 'grid':
        Foreach ($entities as $entity): ?>
            <div class="dsadsa"><a href="..."></a><!--...--></div>
        <?php Endforeach;
    Break;
Endswitch;

These codes should be put in a higher-level/parent Block where you call the appropriate type based on the “if” or “switch” element. It is a simpler method because many times the same html elements are present at these forks, containing additional forks. Organizing these into lower-level Blocks, you get a nice structure where a display modification can be done in one location, but affects every related part of the page. Additionally, it is also useful for front-end developers and the code is clearer this way too.

<block type="something/list" name="something.list">
    <block type="list/grid" name="gridList">
        <block type="list/item" name="gridListItem"/>
    </block>
    <block type="list/row" name="rowList">
        <block type="list/item" name="rowListItem"/>
    </block>
</block>
If ($mode == Module_Helper_Data::MODE_LIST) {
    $block->getChildHtml('rowList'); //amin belül még az item-et is getChildHtml()-el kérjük le
} else if ($mode == Module_Helper_Data::MODE_GRID) {
    $block->getChildHtml('gridList');
}

 

Unavoidable queries (how to handle them)

In some non-ideal cases, it may happen that due to performance or other issues, under heavy pressure, you must run direct (not collection related) database queries. This is a “necessary crime” that has its own required form. Magento provides the possibility to modify an existing Collection Select and also to create a new, custom query. In both cases, the class to be returned will be Varien_Db_Select by default, which you can continue working on with further method calls.

[code]$results = $conn->fetchAll("SELECT *, DATE_ADD( tn.`created_at` , INTERVAL tn.`duration_days` * 0.9 * 24 * 60 MINUTE ) as end_date FROM `tablename` as tn INNER JOIN `anothertablename` as atn ON (tn.atn_id = atn.id) WHERE tn.`somecolumn` = 1 GROUP BY atn.`groupcolumn`");[/code]

The above example is a very short and simple query, still it is not really clear and thus needs more time to comprehend for a developer who sees it for the first time. So let’s change its form:

[code]//in the installer you can get the connection object like this $this>getConnection();
$conn = $collection->getConnection();
$select = $conn->select()
    ->from(
        array('tn' => 'tablename'),
        array(
            '*',
            'end_date' => new Zend_Db_Expr('DATE_ADD( tn.`created_at` , INTERVAL tn.`duration_days` * 0.9 * 24 * 60 MINUTE )')
        )
    )->joinInner(
        array('atn' => 'anothertablename'),'tn.atn_id = atn.id','*'
    )->where(
        'tn.`somecolumn` = ?',1
    )->group('atn.`groupcolumn`');[/code]

It is now much clearer. Now you have Select, it is time to call the necessary records. The simplest way to do that is $results = $conn->fetchAll($select); which only needs to be iterated.

Collection separation at display

There can be elements with different statuses in a single table. This is nothing new, and it is also known that there are cases where either A-status elements or B-status elements are displayed only on a page. However, these should be filtered on a collection basis, and not in a cycle in the Block or in the template file.

$entities = Mage::getResourceModel('module/some_collection');
$typesA = array();
$typesB = array();
foreach ($entities as $entity):
    if ($entity->getStatus() == 1 || $entity->getStatus() == 2):
        $typesA[] = $entity;
    else:
        $typesB[] = $entity;
    endif;
endforeach;

If you divide a collection in a cycle into different parts, the result (allocated to different pages) of the things that you display on a page, can be a first page where you tell the user that the B-status element is not available, and then there is a 2nd or 3rd page where you see N number of B-status elements. Additionally, the limit is calculated for the whole collection and not for statuses, so the distribution of the elements within the groups will not be even.

//filtered for status, both collections limited to 10
$A = $this->getItemsToStatusA(10); 
$B = $this->getItemsToStatusB(10); 

foreach ($A as $item) {/*...*/}
foreach ($B as $item) {/*...*/}

 

Exceptions (erroneous runs) of Installer Scripts and how to handle them

In the case of installers, you should always prepare the script for handling errors that may arise. There can only be a version upgrade if everything is solved which is defined in the present version. This is an important point because sometimes it is not possible with all the installers to check every single attribute or element that were added by the previous installer. And it is not your task to check the work of others.

$installer->startSetup();
try{
    //do what you have to do
} catch(Exception $e){
    Mage::logException($e);
}
$installer->endSetup(); //this method will upgrade the version number

In my opinion, the simplest way to inspect the run of the installer script presented above is to check the version number of the module. This naturally entails that the script upgrades the version of the module only after a totally successful run.

if(Mage::getConfig()->getModuleConfig("Package_MyModule")->version == '1.5.3'){
    $installer->startSetup();
    try{
        //do what you have to do
        $installer->endSetup(); //this method will upgrade the version number
    } catch(Exception $e){
        Mage::logException($e);
    }
}

This method, namely letting the present version be upgraded only if there has been a flawless run, also helps you avoid upgrading the version unnecessarily if our installer has faults. Consequently, other installers, e.g. data installers, which do not inspect if a given cms/page or cms/block exists already or not, are not run repeatedly.

Interrelated and sub collections

In the case of sub collection (parent-child) relations, the database queries inside the cycle are much slower. If possible, try to use the resources with fewer queries and more targeted filtering.

$mainCollection = Mage::getModel('module/main')->getCollection()
    ->addFieldToFilter('field', array('in', array('value1', 'value2', 'valueN')));

foreach ($mainCollection as $mainCollectionItem) {
    $subCollection = Mage::getModel('module/sub')->getCollection()
        ->addFieldToFilter('parent', $mainCollectionItem->getSomeField());
    foreach ($subCollection as $subItem) {
        /*...*/
    }
    $subCollection->save();
}

The above example is more demanding in terms of time and performance, it is better to call the collection beforehand and iterating through the items. The collections offer the possibility to return such elements (they already hold) that are attached to a given field. It is also possible to get all the values of the given fields of a collection, with which you can get the second collection and so on, without using a cycle.

$mainCollection = Mage::getResourceModel('module/main_collection')
    ->addFieldToFilter('field', array('in', array('value1', 'value2', 'valueN')));

$subCollection = Mage::getResourceModel('module/sub_collection')
    ->addFieldToFilter('parent', array('in'=>$mainCollection->getColumnValues('some_field')));

foreach ($mainCollection as $mainCollectionItem) {
    $mainSubCollection = $subCollection->getItemsByColumnValue(
        'parent', $mainCollectionItem->getColumnValues('some_field')
    );
    foreach ($mainSubCollection as $subItem) {
        /*...*/
        $subItem->save();
    }
}

As you can see in this example, you should also pay attention to the fact that while in the first case you can save all the item changes with a $subCollection->save(); call at the end, in the second case you cannot call a method since $subCollection->getItemsByColumnValue(‘parent’, …) returns an array. So you need to call it in the cycle with the items one by one. $subItem->save();

Preparation of Module for multi-language use

There is no need for the module to handle all languages by default, it is enough to have the default language plus English if it is not your default language.

<span>
    <label class="main label" for="next_input">This is the label of the input</label>
        <input type="text" name="next_input" id="next_input" placeholder="Next input" />
</span>

It is just a minor extra effort to prepare your module for displaying texts in other languages, even if they are not yet available.

<span>
    <label class="main label" for="next_input"><?php echo $this->__('This is the label of the input'); ?></label>
    <input type="text" name="next_input" id="next_input" placeholder="<?php echo $this->__('Next input'); ?>" />
</span>

Besides, it is a plus that the texts linked to the module are prepared for additional languages, it is just a little work to make it possible for the users to rewrite the texts in their preferred language, so they can easily find the appropriate foreign expressions in the newly downloaded module.

Using Helpers

Helper calls can be included in Blocks, phtmls, Controllers or Models. The point is to put such data, constant values or methods in the Helper that are used frequently or do not belong to any specific category. Obtaining a config value can be such a call Mage::getStoreConfig(‘module_config_path’); or config flag Mage::getStoreConfigFlag(‘module_config_path’); Defining a value CONSTANT MODULE_ENABLED_STATUS = 2; (can also be placed in a module linked to it), or other minor modules to be used in several places can also be included here.

Summary

All in all, it can be said that if you thoughtfully make code developments, then you will get a fast, stable and clear code in which all other experts can find what they look for. Even if it is a more complex solution, it is still worth investing in in the long run. When the quality of the code is in question, just think about what you would say when you ask yourself the following questions like “What does the code look like at first sight?” or “Have I exploited all the possibilities that I knew about?” Thus you can make sure you will deliver a state-of-the-art code.