This month, we are reviewing some of the free extensions that were released in April for Magento 1, including an extension to limit the number of products a customer can buy as well as a second that adds a color attribute type. We also look at Magento 2 extensions that allow custom maintenance pages to be used, let customers login with one of their existing social accounts and customise the order numbers that Magento generates.

Magento 1 Extensions

Manugg_LimitPerUser by galaek

One piece of functionality that may be useful when running an online store is the ability to restrict the number of products that a particular customer can buy. For example, during an online sale, you might want to limit a particular product to one per customer.

This extension allows you to enforce such a limit. This is accomplished through the use of a new attribute added to products that allows you to set the maximum allowed quantity. Then, when the customer attempts to add a product to their cart or update the quantity of a product already in their cart, a check will be performed to ensure that the quantity does not exceed the maximum allowed.

There is also functionality that allows you to prevent guests from using the shopping cart. This is slightly different to the "Allow Guest Checkout" option that Magento provides, in that customers are prevented from adding products to their cart in the first place.

There is a user manual available, which could certainly be useful when installing and configuring the extension.

View on GitHub

Color Picker Product Attribute by leytech

By default, Magento provides a number of different backend attribute input types. For example, you can choose to show a text input, select, multiselect or date input. Examples of all of these can be seen on the standard edit product page in the admin panel. Of course, these standard types may not be able to cater to all situations, in which case you would need to add your own input types.

This color picker extension does exactly that. As its name suggests, it adds a color picker attribute type to Magento. You can then create new product attributes with that type.

This could be very useful in certain situations. Having the ability to easily see a visual representation of a color you've chosen could be helpful and mean that you don't have to use an external tool. The extension allows you to choose from a few different color pickers, but is otherwise quite simple, with no other configuration required.

View on GitHub

Magento 2 Extensions

Creatuity Custom Maintenance by Creatuity

Magento 2 allows you to put a site into maintenance mode, which is useful if you need to do work on the site. The Creatuity Custom Maintenance extension allows you to customise the maintenance page that is shown when you do this.

The page template included with the extension contains a number of different elements that you can choose to show. For instance, you can show a title, phone number, social media links and copyright notice, among other things. You can also show a countdown timer, which could be useful if you know exactly how long the maintenance will take. Additionally, you can customise some of the colors used on the page.

One potential downside to this general approach is that since the format of the page is fixed, you won't be able to display completely custom content. However, the options provided should be enough to get a simple maintenance page working.

View on GitHub

Social Login by feelinc

One option that many sites now support is the ability to login with an external account. Rather than enter a username and password when registering, customers instead register using one of their existing social accounts, such as Google or Facebook. This has a few benefits: it's one less username/password combination for the customer to remember and the sign up and login processes can be simplified.

The Social Login extension for Magento 2 adds the ability to login using four different services: Facebook, Google, Steam, and PayPal. For services that support it, the admin user can choose which permissions will be requested when the user goes through the setup process. This allows sites to easily request only the permissions they need.

While the extension itself doesn't have much configuration, note that you will need to do some setup for each service you want to support. This involves setting up an app on the service, then entering the relevant configuration details on the extension's setting page.

Overall, the extension has a single well-defined purpose. If you're looking to add social login to Magento, it could be a good option. If you need to support additional providers, you'll either need to choose another extension, or extend this one. While that's certainly a possibility, it does require development experience.

View on GitHub

Custom Order Number by augustash

By default, Magento will generate order increment IDs using a simple counter. There may be situations, however, in which you want to prepend order numbers with a specific value, or perhaps start them at a specific point.

The Customer Order Number extension provides this functionality. You can choose a prefix, suffix, start point, increment step and number length. The extension allows you to customise order, invoice, shipment and credit memo numbers in this way and this can be done on a per-website basis.

If you do need to modify order numbers, this extension could just be what you need. Keep in mind that an extension like this is best installed early, preferably before the site is ever made operational. That way, the order numbers that are generated will be consistent. If you install the extension after orders have already been placed, any new orders will use the scheme you choose, while old orders will be left unchanged (i.e. using the old values). A similar point also applies to uninstallation. If you remove the extension, then new orders will use a different format (i.e. the default), while old orders will be left unchanged. The best advice, then, might be to carefully consider what you need before installing the extension.

View on GitHub