FREE Magento Extension Buy One Get One Free
A common requirement for an eCommerce store is the Buy X Get Y free sales promotion, where a bonus product Y is offered if the customer buys a quantity of product X or the Spend X Get Y Free scenario where a bonus product Y is offered when the customer spends X amount on a single order.
Free Magento Extension for Magento eCommerce Stores
This free magento extension provides Buy X Get Y, Spend X get Y, use Coupon X get Y and buy from Category X get Y functionality for Magento eCommerce stores.
Tested with CE 1.3 – 1.9 and EE 1.x
The module code is now pretty stable and has been implemented in many Magento stores.
Download Free Magento Extension
Download the latest version of this free magento extension / module via Github here https://github.com/gaiterjones/magento-buy-x-get-y-free
Try out the extension at my development store here http://dev.gaiterjones.com/magento/
If you use this free magento extension be sure to update to the latest version, latest source code will always be available at the github.
* 0.34 – First beta release. 05.03.2011
* 0.40 – Corrected problem rendering cart in Magento versions 1.4+
* 0.41 – Added logic to allow a maximum product X limit for product Y i.e. buy 5 get 1 free, buy 10 get 2 free etc.
* 0.42 – 01.07.2011 Added control to ensure product Y is unique across all offers to prevent a nasty cart loop
* 0.43 – 20.07.2011 Developed Coupon X get Y Free, get a free gift with a coupon.
* 0.46 – 22.07.2011 Bug fixes and coupon dev.
* 0.50 – 04.08.2011 Developed Category X get Y Free, get a free gift, bonus product when you buy a product that is a member of a specific category.
* 0.51 – 09.08.2011 Bug fixes.
* 0.53 – 15.08.2011 Developed customer group check for Spend X
* 0.53 – 25.08.2011 Tested with Magento CE 188.8.131.52
* 0.56 – 21.10.2011 Enhance coupon X function.
* 0.57 – 02.11.2011 Enhanced Spend X to function in multi currency store.
* 0.59 – 13.01.2012 Bug Fixes
* 0.61 – 08.03.2012 Fixed coupon function to ignore coupon case. Added product exclusion to Spend X function.
* 0.63 – 21.03.2012 Added minimum X quantity required for Category X
improved excluded products logic for Spend X. Admin updates.
* 0.65 – 22.03.2012 Translation improvements.
* 0.66 – 06.07.2012 Bug Fixes in Category X function
* 0.70 – 16.11.2012 0.70 – Changes to indexAction to improve functionality with other modules extending cartcontroller
* 0.71 – 18.11.2013 Added max limit to allow various Y products in SPEND X
Buy category X get Y free – done (v0.50). Many thanks to CC LLC for the development incentive.
Spend X, offer choice of product
Use a coupon for a free gift – done (v0.46).
Restrict offers to customer groups. Done for Spend X in v0.53.
Specify cart amount required for Coupon X (done v0.55)
Exclude specific products for Spend X (done v0.61)
Minimum X quantity for Category X (done v0.63)
If you have a requirement for a specific feature let me know and I will add it to the wishlist.
Works with simple and configurable products ( as product X), or categories containing product X.
Prompts customers that a bonus product is available
Multiple offers configurable
Offer details customisable in admin
Manage stock of offer products – send alert emails, low stock, errors etc.
Use coupons for free gift promotions.
Use category to define products that qualify for free/bonus product.
Restrict offers based on customer groups
Can work with AheadWorks products, Ajax Cart, Mobile Theme
Extract the extension and copy the files to the /app folder of your magento installation. Refresh your cache, log out of admin and back in again.
Configure the extension under System>Configuration>My Extensions see below for examples. There are four sections to configure, one for each type of BUYXGETYFREE promotion, BUY X, SPEND X, CATEGORY X and COUPON X.
Buy product X get, product Y free, discounted.
Spend amount X, get product Y free, discounted.
Use coupon X get product Y free, discounted.
Buy products that belong to a specific category X, get product Y free, discounted. Allows you to step product X to provide for example buy 3 get 1 free, buy 6 get 2 free etc.
You must create a new simple product to represent your free gift product (product Y), or duplicate an existing product. Product Y must have a unique ID across all configs, buy, spend and coupon. It must be saleable, should be hidden from your catalog search and have a zero price.
If you want to provide the same product Y free or discounted for various product X’s you must duplicate product Y for each offer so that each product Y has a unique ID number.
If you want to give a bonus product for multiple product X’s either use an existing category that the X products are members of, or create a dummy category, i.e. BuyXGetYFree that is not enabled/visible. Then add the X products to this category. Specify the ID number of the offer category in the extension configuration.
The extension works best for a free gift product that is a simple product without options. If you want to make your free gift product Y a configurable product i.e. a product with colours RED/BLACK/WHITE, then consider creating a simple product to represent the free gift i.e. “FREE RED/BLACK/WHITE GIFT – select colour at checkout” and then include a comments section at checkout to allow customer to specify the colour/size etc there.
To configure the extension for use with a coupon, first configure the coupon under Admin->Promotions. Configure the name of the coupon but do not apply any discount info, conditions or actions, i.e. in effect the coupon does nothing. Under the Coupon X configuration section of the extension, define product Y, the free or discounted product and the coupon code of the configured coupon. You can also configure a minimum cart total required for this coupon. Test the extension by applying the coupon to the cart, product Y should then be added.
Consider modifying your theme so that products that have a zero price have the quantity selection box disabled or removed in the cart or during the checkout process.
Test out the extension at my development store here http://dev.gaiterjones.com/magento/
Here are some examples of functionality.