That Software Guy! eCommerce Starts Here!
better together

OpenCart Better Together Admin

Better Together Admin simplifies the process of adding discounts to Better Together.

Relevance: OpenCart (but should run on all 2.x versions), along with Better Together for OpenCart.

Current Version: 1.1a
Occasionally, new features are documented prior to being publicly available; please check the version history to ensure the feature you want is available in your version.

Support Thread: Better Together Admin Support Thread

Cost: $30 (Note: this low price covers software only for self-installation.)

Buy Now

Would you like to ask me questions before buying? I'm happy to help likely purchasers make the right decision. Just email your inquiry to . Please be sure to include your cart type and version (e.g. Zen Cart 1.5.1, OpenCart 2.3.02, osCommerce 2.4, etc.) and the mod you want to buy.

Installation Difficulty: Easy

Installation Instructions: click here

Common Installation Issues: click here

Buy: Buy Better Together Admin! Or email your pre-purchase question to .

FAQ: click here

Video: You can see how easy it is to create a discount like "Buy product 30, get product 31 for free" using Better Together Admin in this video:

I will use the same discounts I created in the first OpenCart Better Together video, but this time, I just use the admin panel.
        // Samsung Galaxy Tablet - BOGO 
        $this->add_prod_to_prod(49, 49, "%", 100);
        // Phones - buy one, get one half off 
        $this->add_cat_to_cat(24, 24, "%", 50);
        // Cameras - buy the Canon, get the Nikon $40 off 
        $this->add_prod_to_prod(30, 31, "$", 40);


This page assumes a basic familiarity with OpenCart Better Together.

Better Together is a very popular module, but many people have told me they dislike need to edit a file in order to add "linkages" (the term I used to describe associating one product with another for the purpose of discounting). So I created an admin panel which allows you to add linkages in a way which will be familiar to users of the OpenCart admin system.

Better Together Admin Initial Screen

Better Together Admin Panel

The page is broken into two areas: on the top, a list of existing discounts, and on the bottom, a form to allow you to add new linkages to create new discounts.

Discounts are sorted by sort order, then the order they were created in descending order. Discounts can currently be deactivated or deleted but not edited directly. To edit a discount, delete the existing one and create a new one.

To add a discount, press the "+" button at the top right hand side of the screen.

The first step in creating a Better Together discount is to select the linkage type. When the screen comes up, the default linkage type is "a product and a product." The following linkage types are available:
  • Two for One - Products
  • Two for One - Category
  • A Product and a Product
  • A Product and a Category
  • A Category and a Category
  • A Category and a Product

Better Together Admin - Screen for creating a new linkage

Better Together Admin - Add a new linkage

If you switch the linkage type, fields which are not required will not be shown. For example, in "Two for One - Category" mode, the discount amount and units default to "100%', and the second category is the same as the first, so the screen is abbreviated as shown below:

Better Together Admin - Screen for creating a new linkage

Better Together Admin - Add a new linkage

As noted above, once you select a linkage type, the appropriate fields are shown in for the first product or category and the second product or category. For instance, in this example, the Linkage Type "a product and a category" (add_prod_to_cat) is selected. The category and product selection fields are initially blank. You fill in the category field by typing into it, and selecting one of the values that is presented for autcomplete. (Note: You must mouse over and click the item; you can't simply press carriage return.)

Better Together Admin - Add a new linkage - selecting the first category

Better Together Admin - Add a new linkage

Once you fill in a category, assuming a product must be selected, the product dropdown is filled in as shown below:

Better Together Admin - Add a new linkage - after selecting the first category

Better Together Admin - Add a new linkage

Select the product, then move on to the discounted item.

Better Together Admin - Add a new linkage - initial screen

Better Together Admin - Add a new linkage

You then select the discount units (% or $ off), fill in the amount, and click the "Save" button at the top right (the floppy disk icon).

The page refreshes, and you see your new linkage:

Better Together Admin - Add a new linkage - step 3

Better Together Admin - Add a new linkage

Note that the third offer has strikethrough on the offer text and the "N" in the Active column. This means it is disabled. You can temporarily disable a discount using the power button at the right, or completely remove it using the trash can button. (There is no edit capability yet.)

Checkout Process displaying Better Together Discount

Shopping Cart page showing Better Together discount

Checkout page showing Better Together discount

Above you can see the shopping cart page and the checkout page with the Better Together discount. Better Together is an order total module, so it is shown as a line item in the checkout; the prices of individual items are not reduced.

Linkage Types

Better Together has four linkage types, plus two two-for-one types, as described in the Better Together help.
Better Together Admin Linkage Types

To review briefly, they are:
  • add_prod_to_prod()
  • add_prod_to_cat()
  • add_cat_to_cat()
  • add_cat_to_prod()
  • add_twoforone_prod()
  • add_twoforone_cat()

In this video, you can see how Better Together Admin handles the different linkage types by adjusting the screen to capture only the necessary data:

Category Handling

Note that the "category" in add_cat_to_cat(), add_prod_to_cat(), add_cat_to_prod() and add_twoforone_cat() is defined as "any ancestor category" in OpenCart Discount Chooser. Ancestors are determined using the product_to_category table.

Men's Clothing  (Category 7)
     ---->  Shirts (Category 12)
            -------> shirt A 
                     shirt B
                     shirt C 
     ---->  Discounted Shirts (Category 13)
            -------> shirt A 
                     shirt D
                     shirt E 
In this example, the parent category of "shirt A" can be category 12 (Shirts) or category 13 (Discounted Shirts), but not category 7 (Men's Clothing). (This is different from Discount Chooser, which uses all ancestors when matching to categories.)

Installation Instructions:

Upgrading Instructions:

If you are upgrading from a prior version of Better Together Admin, follow these instructions rather than the installation instructions below:
  1. Go to Extensions->Extensions->Order Totals->Better Together, and press the "Uninstall" button. You must remove the old copy so the new tables can be created .


  1. Back up everything! Try this in a test environment prior to installing it on a live shop, and please be sure to upgrade to the latest Better Together first.
  2. First, download and install the latest version of OpenCart Better Together. Note: You must install the basic Better Together first before installing this mod.
  3. Unzip the file provided, and copy the contents of the unzipped folder to the root directory of your shop.
  4. Go to Extensions->Extensions->Order Totals->Better Together, and click the Install button. Then click the Edit button, and set the Status to Enabled. Note: If the module was already installed, do an Uninstall, and then an Install so that the new database tables are created.
  5. Better Together Admin will now be available under the Catalog menu on the left hand side of the Admin screen.

Installation Problems:

The most common installation problems for this module are as follows:
  1. A misunderstanding of "category." A category in Better Together is "the parent category of a product." See Category Handling for a discussion of the treatment of categories in Better Together.
  2. Neglecting to install Better Together, which is a separate mod. This includes doing Extensions->Extensions->Order Totals->Better Together->Install (uninstall first if it's already there), and then doing an Edit and setting Status to Enabled.

Major Versions

  • 1.1a 07/16/2017 - Bugfix for currency discount
  • 1.1 07/01/2017 - Internal restructuring
  • 1.0 06/13/2017 - First release


Q: What's the difference between Better Together and Discount Chooser?
A: Better Together only permits pairs of items to be discounted together, such as two products, or one product and one item from a specific category. Discount Chooser permits the creation of "Buy 2, get 1", "Buy 3 get 1," or "Buy some number, get a choice of some number." So Better Together can be thought of as a subset of Discount Chooser.

Q: I am doing a category based discount (e.g. add_prod_to_cat), and it doesn't work.
A: The definition of a "category" in Better Together is "the parent category of a product." See Category Handling for a discussion of the treatment of categories in Better Together.

I charge a fee of $30 for the OpenCart Better Together Admin Panel. Buy Better Together Admin!
The fee covers software only; installation is extra if you require help.

If you prefer, you may Buy Better Together Admin on the OpenCart Marketplace.