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.
This 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 – 22.214.171.124 and EE 1.x
This module code is now pretty stable and has been implemented in many Magento stores.
Download the latest version of the 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 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 126.96.36.199
* 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 name 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.