Jump to content

Most Liked Content

#1726968 v2.4.0 Beta Roadmap Pre-Announcement

Posted by Harald Ponce de Leon on 21 April 2015 - 09:21

Hi All..


Here is a pre-announcement of a roadmap that will lead to a production ready release of osCommerce Online Merchant v2.4.0.


v2.4.0 starts off a new release series that existing users can upgrade to. v2.4.0 contains no database schema changes to allow for an easier upgrade routine. It does however contain a much more modern codebase than v2.3 - any code customizations and add-on installations will be incompatible and will need to be adapted to the new codebase.


The minimum PHP version requirement has been set to v5.5. Although the v2.4.0 codebase is still based on v2.3 and could work on an earlier PHP version (eg, PHP v5.3), it is important to note that PHP v5.4 is no longer actively supported since 14th Sept. 2014 and will only receive security fixes until 14th Sept. 2015.




Setting the minimum PHP version requirement to v5.5 allows developers optimize their add-ons for v2.4.x and later release series (eg, v2.5.x).


The current development release of v2.4.0 still contains v2.3 legacy code we would like to replace for the new release series. To help developers create new add-ons for and migrate their existing v2.3 add-ons to the new release series, the following roadmap has been defined to keep the community up to date.


This is a roadmap of beta releases to:


1) release as soon as possible

2) not delay releases with huge amounts of core code changes

3) help and guide developers who need to prepare their add-ons for v2.4.0


Beta releases are for testing and development purposes only. No upgrade path will be provided for the first beta release nor for in-between beta releases. API incompatibility changes will occur between beta releases and will be documented. The roadmap will adapt during the development of the releases.



Beta 1



- Bootstrap

- PDO Database class

- HTML class for input fields



- Bootstrap

- Use classes from Shop


Beta 2



- Move language definitions to ini style

- Migrate legacy classes to new namespace classes:

-- Breadcrumb

-- Currencies

-- Language

-- Message Stack

-- Navigation History

-- Shopping Cart




- Database Schema comparison tool



- Move language definitions to ini style


Beta 3



- Migrate remaining classes and functions to new namespace classes

- Add hook calls


Beta 4



- Bootstrap

- Adapt core namespace


Beta 5



- Use classes from Shop



- Provide a list of available language packs to download



The goal of the minimum PHP v5.5 requirement and with v2.4.0 is not to create a new object-oriented fanboy ready codebase (this is what v3.0 is for), but to create an even more modular and modern codebase that not only add-ons can easily plug into, but to also allow us to release new core features that existing store owners can easily upgrade to and use.


Development and progress can be followed at Github:




Thanks to the work of Gary and the community, v2.4.0 beta 1 will be available this month with the new responsive template design based on Bootstrap.

#1721633 2.3.4, Gold, Edge, 2.4

Posted by burt on 10 March 2015 - 09:48

First a little bit of history...

osCommerce was started back in 1999, with public release in early 2000 (v1) - it was one of the first open source ecommerce platforms, and so brought ecommerce to the masses. It was not easy to setup an ecommerce site inside a few hours and be selling the next day, until Harald, Mark, Jan and others brought osCommerce out...it changed the face of selling online.
Fast forward a few years, and osCommerce is still going strong, now on v2.2.
Fast forward a few more years, and osCommerce is in decline. It's old, it's unloved.  v2.2 is based on a tables system and has lots of old style inline javascript.  It's ancient, and outdated by the standards of a decade ago.
Five years ago a new version is brought out and named 2.3, this added lots of new features and a different layout system based on the 960 grid system.  It still has lots of older style code in it, which means that addons from the 2.2 days can still be used.

Where is osCommerce at right now?

we're at v2.3.4, still based on 960 grid (for layout), using jquery (for javascript functionality) and jqueryui (for certain design aspects).  It still has some inline javascript as well.  This version allows shopowners to use most of the older addons.
we're at v2.3.4(responsive), which is based on Bootstrap (for layout) and using jquery (for javascript functionality).  jqueryui has been removed (shop side).  It is lean and mean, and I want to make it leaner and meaner...
The Future
Plans have been in the works for around 5 years for a 2.4 version that is osCommerce built again from the ground up.  It would have had no relation to 2.2 or 2.3, and therefore no compatibility for any addon.  Mistake to release?  I think so. It would have been an orphaned build, unloved by shopowners (as it has no addons), unloved by developers (as no shopowners to build for).
The new v2.4
With the stellar work done by the community on v2.3.4[r], a decision was made to nuke the "in the works" v2.4 and instead replace it with a "new" 2.4 based on the work done (and in fact still being done) in v2.3.4[r]. 
This is a new build that destroys all compatibility with previous versions.  It has been in the works for many years, and I suspect will be for a good long while yet.  Don't bother waiting for it.
So, which should you, as a shopowner, do next ?
v2.3.4[r] is where all development is presently aimed.  
Upgrade to v2.3.4[r].

  • your shop side will become 100% responsive
  • we work almost every day to optimise the codebase
  • we are adding in aspects that all shopowners require
  • it is easily templatable
  • it is easy to add (well coded) addons (drop in, enter admin, turn on)
  • you can use the older style addons as well (ones that change core code, with mostly cosmetic changes required)
  • you are on the path to 2.4
How to get v2.3.4[r]
Download the GOLD release.
This release is a v2.3.4[r] snapshot that works, and is stable.   If you are not of a technical mind and you do not want to spend time on one by one updates when new code is released, you should choose this version.   At some point, you will update to the next released version (v2.3.5[r]) and this will be easy if you have not changed any core code in the build.   
Download the EDGE release.
This is the latest v2.3.4[r] codebase, with up to the minute you download bugfixes and code changes.   You should choose this version if you are of a technical mind and are able to copy/paste the changes made as they are made.  If you keep on top of updates, you will always have the latest code base and never need to upgrade.

#1754525 17 Years Young!

Posted by Harald Ponce de Leon on 12 March 2017 - 20:43

We're 17 today! 17 years working on Open Source. 17 years working with you. Trusting us for 17 years.


Thank you!


We're not only celebrating just today, but this whole month! New releases coming soon. New websites coming soon.




Happy Birthday osCommerce!

#1746679 2.4 Series

Posted by Harald Ponce de Leon on 17 August 2016 - 23:43

Hey Guys..

No download release yet, but...

as has been noticed, the v2.4.0 Administration Dashboard is being worked on to also bring it up to the same level of awesomeness you have all worked hard on for the shop frontend. Although we're working hard on this, it will take a little bit of time to get all of the administration pages updated.

To help test and bug fix the shop frontend and administration dashboard further, v2.4.0 will start as a beta release series for testing and development purposes only. The first set of releases will focus on new installations first and an upgrade procedure for existing v2.2/v2.3 installations will be provided in later releases.

The first v2.4.0 beta release includes a core online update feature to 1-click apply update packages. v2.4.1 will be waiting for you as soon as v2.4.0 is pushed out to help test the online update feature. There are still a lot of changes pending so the following rules will apply for the online update feature:
During the beta release phase: any file in the catalog and admin directories are applicable to be updated and will overwrite any local changes made. (Eventually all files will be updated once we move from the GPL license to the BSD license)

After the beta release phase: any file apart from the catalog root files and shop template files will be applicable to be updated and will overwrite local changes made in other files (eg, in functions, classes, modules, and admin root files).

If a manual update to a root catalog file or catalog template file is required, this will be described in the release announcement.
As soon as we're ready to leave the beta phase and push out a production ready release, the version number may end up being v2.4.32 and will be marketed as "v2.4".

To reach that goal as fast as possible, we will only be requesting feedback on testing and bugs until the first production ready release is made. Feedback for improvements and new features will be welcome after this to include either in the next v2.4.x releases or in v2.5. We have already accumulated a lot of feedback and ideas so we're now focusing on testing and bug fixes.

The online update feature is just about ready. As soon as this is pushed out to github, all the development branches will be merged together and v2.4.0beta will be pushed out with a new announcement in the forum (with information about the App framework).

Here's a screenshot of the administration dashboard online update page to tease and wet your appetite:

Attached File  240ou.PNG   64.58KB   27 downloads

#1718900 Discussion about Hard Coded Database Tables

Posted by frankl on 28 February 2015 - 00:18

What is needed is for osCommerce to become more popular. That way, it will attract more coders, who will provide more add ons and themes, which will make osCommerce more functional, which will lead to more sales for shop owners.


The only way to make osCommerce more popular is to make it easy to use for the average non technical webmaster.


In the past, and even up till now, the base code has been relatively easy to install but hard to alter - which has come at a cost. Haphazard add on development, with changes to the core code that causes conflicts, and great difficulty in theming. This results in headaches if people want to alter their osC store (and most osCommerce stores that basically all look the same).


What is the motivation for people to create and maintain add ons and themes? To make money, or contribute back to the community. For the former, it is a complete headache to provide support because if a shop owner (or developer) installs add on Y, it interferes with add on X resulting in extra coding work (plus the time it takes to find the problem!). For the latter, the amount of work involved helping out less experienced shop owners makes the whole exercise of "giving back" a tiring and thankless exercise.


Look at a program like Wordpress - easy to install, easy to maintain, easy to skin, easy to install add ons - and people are happy to code for it because they know it will just work if they adhere to the standards. osCommerce can be like that. Old time osC users need to change their thinking in this transitional process.


Where some us find it a great (and satisfying) challenge to hack the core code to get it to do what we want, we need to look at things differently. How can we add functionality without touching the core code? How can we use hooks, modules and themes to make an exciting and functional shop? We want to get to the stage where the average shop owner won't even need to know what FTP is used for! They should be able to download and install add ons and themes from an osC app store - some may be free and some may be paid. We aren't even half way there yet.


We have to let the developers get osC to that "easy" stage. We can make suggestions, test, and in general help wherever we can. The result will be a robust, easy to use eCommerce suite with many more users and stores that have a unique look and feel that will result in what we are looking for - more sales and conversions. Plus developers, add on writers and theme creators should be able to make money, adding even more creativity to the osCommerce ecosystem. 


Time to move forward!

#1751414 Happy Holidays!

Posted by Harald Ponce de Leon on 21 December 2016 - 10:37

We wish everyone a great holiday season and a fantastic start in 2017!


Special thanks to the team, our community members, and our partners - thank you for your continued support in not only helping us, but also continuing to welcoming and helping new store owners joining the community.


Our highlights during 2016 include the launch of our new Live Sites website, our new German website, and the development of a new osCommerce Online Merchant v2.4 Joli release series currently in beta.


The upcoming v2.4.3 version will include a tool that inspects the database schema to display the differences with the installed database structure compared to what is expected from the core database structure of the release. This plays an integral role in supporting upgrades and migrations from our earlier v2.3 release series, and also supporting database schema changes Apps need to perform.


Our awesome community members of the month for 2016 are:


The 10 most active Add-On developers for 2016 are:


  1. raiwa
  2. auzStar
  3. kymation
  4. Tsimi
  5. Jack_mcs
  6. Shopgate
  7. f.figue
  8. Gyakutsuki
  9. PiLLaO
  10. dp.ramone

Our plans for 2017 include the production ready releases of our v2.4 and v3.0 release series, using Crowdin to manage the osCommerce Online Merchant language definitions, launching our new Apps Marketplace website, launching a new website showcasing your community profile highlights across our websites, launching our websites in more languages, merging and supporting multilingual communities, relaunching our social media presence, and more exciting endeavors to be announced throughout the new year.


We look forward in making 2017 your best year yet!


Happy holidays!

#1749841 osCommerce Online Merchant v2.4.0 Joli Beta

Posted by Harald Ponce de Leon on 11 November 2016 - 21:18

We're extremely proud to announce the next osCommerce Online Merchant release series is rolling out now starting with the beta release of v2.4.0 Joli! This is a developers release that has a rapid weekly release schedule to finalize the framework API and to build on to the v2.x series with quality production ready releases.


v2.4.0 Joli Beta includes the community led effort by Gary Burton to modernize the frontend with a responsive Bootstrap template called Sail. This not only aims to improve the customer experience on the site frontend to encourage and improve sales, but also on the site backend with a more user intuitive interface to work with the business side of sales.


The OSC\OM framework that was introduced in the v3.0 developer series has been backported and invites developers to start migrating their add-ons to the new self-contained App infrastructure that not only allows for more secure and easier installations of third-party software, but also online installations and updates through the Administration Dashboard (coming in a later beta release). This involves a tight integration into our new App Marketplace that will be launched in the near future.


v2.4.0 will be the only public release of the v2.4 beta series - all weekly updates during the beta phase will be delivered through the online update feature to get the online update feature tested on as many server configurations as possible.


There are still a lot of changes planned during the beta phase that will break the framework API and is the reason for the beta release series. All changes between releases will be documented to keep developers up-to-date and to help them finalize their Apps for the production ready release.


We're committed to Open Source and are continuing our goal of moving from the GPL license to the MIT license. This is the first release in the v2.x series to be completely licensed under the MIT license.


osCommerce Online Merchant v2.4.0 Joli Beta can be downloaded at:




The PayPal for osCommerce Online Merchant App is bundled with this release. The Braintree for osCommerce Online Merchant App can be downloaded separately at:




It will be possible to install and upgrade Apps directly in the Administration Dashboard in an upcoming beta release.


Documentation for this release series is available at:




Discussions on this release series can be found at:




Known issues and bug fixes can be found at:




An online demonstration of v2.4.0 Joli Beta can be found at:




We’d like to thank the community for helping us out with the development of this release and for their continued dedication and support, and especially thank Joli for the good times he shared with all of us in the community. This release series is dedicated to you pal, you will always be remembered.

#1749423 2.4.0beta Pre-Package Release Status

Posted by Harald Ponce de Leon on 02 November 2016 - 08:09

Hi All..
Here's what is left to do to package and release v2.4.0beta:

  • Documentation for v2.3.x Braintree App
  • v2.3.x Braintree App tagged on Github
  • Documentation for v2.4 Braintree App
  • v2.4 Braintree App tagged on Github
  • Documentation for v2.3.x PayPal App
  • v2.3.x PayPal App tagged on Github
  • Documentation for v2.4 PayPal App
  • v2.4 PayPal App tagged on Github
  • v2.4 OSCOM Framework Documentation
  • Review and consider language definitions updates for inclusion in v2.4.0beta or to leave for v2.4.1beta
  • v2.4.0beta Package for testing
  • v2.4.0beta Release + Release Announcement
  • v2.3.5 Package for testing
  • v2.3.5 Release + Release Announcement

This list will be kept up to date.
Reply with :heart:  :D

#1747231 Search add-on Reviews

Posted by ArtcoInc on 31 August 2016 - 18:06

Search add-on Reviews

While working on a new store, I've been exploring the different Search add-ons available. I hope that others may find this useful.


I looked at four different Search add-ons:

A) Store Search (BS)

B) SiteSearch Plus v1.4

C) SmartSuggest - Self-learning Ajax Search Suggestion    v1.0.3

D) Twitter Typeahead Autocomplete Search v1.6

All of these have support pages on the forum.

I installed these individually on a clean installation of osCommerce v2.3.4bs - Edge. The tests were run on the stock database. For comparison, I used the search phrase 'mic' in each of the tests.

All of these either enhance the stock Search box in the header, or replace it. If replaced, the new Search box can have the bootstrap column width adjusted in Admin, just like the stock one.

                                                                           |      A      |         B        |        C       |      D      | 
Requires core file edits                                       |     No     |      Yes *      |     Yes      |     No     |
# of hits searching for 'mic'                                 |     6 *      |        3         |      3 *       |      5      |
(using as-installed default settings)                    |               |                   |                  |              |
When clicking on a result, are you sent to the    | Product  | Advanced  | Advanced | Product |
Product page, or to Advanced Search Results   |               |req. 2 clicks|                  |              |
Shows Product Image in Search Results            |     No      |       No        |      Yes      |    Yes    |
Shows Product Description in Search Results    |     No      |       No        |       No      |    Yes    |
Can select what pages to include in Search       |    Yes     |        No       |        No      |    No     |
Records Searched for Words                             |     No      |       No        |      Yes      |    No     |
Emails Store Owner if Search Not Found           |      No     |       Yes       |       No      |     No    |
Pretty ranking (1=best) (in my opinion)              |       3      |         4         |        2       |      1      |

Comments and thoughts:

A) Store Search (BS)

Attached File  Screen Capture - Search - A1.JPG   42.95KB   3 downloads

Plug and Play. Highly configurable. I like the 'Search Results Highlight' feature. Changing the configuration can alter the number of search hits. Using the 'out of the box' configuration, this gave the most number of search hits:

1 category
3 products
2 'other' pages

If you want your Search to be able to include searching pages other than just products, this is the one.


B) SiteSearch Plus


Attached File  Screen Capture - Search - B1.JPG   41.83KB   4 downloads

If your server has PHP in strict mode, there are additional edits needed in a file. This is mentioned on the support thread, but is not included in the downloaded package.

This is the only package that has the email option.


C) SmartSuggest - Self-learning Ajax Search Suggestion


Attached File  Screen Capture - Search - C1.JPG   31.36KB   4 downloads

This is the only package that records the Searched for words. Personally, I find this feature very useful.

Changing the configuration can alter the number of search hits.


D) Twitter Typeahead Autocomplete Search


Attached File  Screen Capture - Search - D1.JPG   54.76KB   3 downloads

Plug and Play. This is clearly the prettiest of the add-ons. There are *many* options one can adjust and configure. Using the 'out of the box' configuration, this gave the second highest number of search hits.


Final thoughts:


I like the search functions that allow the user to go directly to the product or page, without having to make a detour through Advanced_Search_Results.


If I could pick-and-choose features, I'd start with D, add the ability to select the searched pages from A, and the recording of the searched for words in C

Your results may vary. Only you can decide what is important for your shop.



#1715723 Upcoming Changes

Posted by burt on 11 February 2015 - 17:02

As most of you will know, my aim is to get osCommerce to a place where it can be seen as a competitor to other carts that have grown stronger while we have withered. To do this I need help from the WHOLE community, that means YOU.  Read on.

Upcoming Changes Planned:

1. Plug all pages into the osCtemplate class
1.1 some pages will be Content Modular "cm_"
1.2 most pages will be simpler Template Page "tp_" ((not an ideal) example right now: account.php)

2. Make index.php 100% cm_, requires content modules for - PART DONE
2.1 heading - gary
2.2 welcome guest - gary
2.3 main text - gary
2.4 new products - gary
2.5 upcoming products - gary

2.6 subcategory icons 

2.7 product lists in category pages

3. Make product_info.php 100% cm_, requires content modules for - DONE
3.1 product title - matt
3.2 product price - matt
3.3 gallery - matt
3.4 description - matt
3.5 options - matt
3.6 reviews button - matt
3.7 buy button - matt
3.8 reviews - done
3.9 also purchased - matt

4. Create a Product Class, this class to be used shop-wide to display products data
4.1 class can then be utilised elsewhere eg in addons and modules

5. Plug in SEO as core code
- obvious reasons

5.1 this will add modules to many pages

6. Microdata the hell out of every available page
- good for google


7. Move languages out of text files and into database or ini files

8.  Update Products to look like it's not the year 2000.


9. Bootstrap Installer DONE


10. Bootstrap Admin


11. Backport v3 Options/Attributes System


12. Attribute Sort Order [Priority]



It is time 

It is time for more developers to step up to the plate and start swinging, so which of you are able to volunteer some time to do any of the above ?  


It is time for more shopowners to step up to the plate and help to drive osCommerce forward by spending time to discuss their day to day operations using osCommerce, to test code that is provided and to provide feedback on that code.  
Points for Discussion
a] what other pages need to be full modular ?


b] See "It is time" and if YOU have so far done nothing, ask yourself why.

#1712891 28 Days Of Code, February 2015, Rocking osCommerce

Posted by burt on 16 January 2015 - 15:21

28 Days Of Code

This was a popup site during February where I came up with a module each day.  It's now over, but all the modules are still available individually or as a "buy all" purchase.


Some modules are for 234(normal), most for 234(bootstrap) and some for both.

#1699381 osCommerce Online Merchant v2.3.4

Posted by Harald Ponce de Leon on 05 June 2014 - 21:21

We're proud to announce the release of osCommerce Online Merchant v2.3.4! This release introduces a new Content Modules feature, secures the Administration Tool if SSL is enabled, and includes new and updated payment modules.

Content Modules

Content Modules is a new feature that builds and loads the content of a page through modules. The My Account, Login, and Checkout Success pages have been updated in this release to utilize Content Modules and can now be customized and manipulated through modules without editing source code files.
Other pages will soon be updated to utilize Content Modules in following releases and improved on with your help and feedback.

Log In with PayPal

The first featured Content Module being introduced is Log In with PayPal which can be added to the Login page. This allows customers to authenticate themselves through PayPal without needing to create a local store account.
Log In with PayPal supports a seamless checkout experience with PayPal Express Checkout where customers don't need to log in again when purchasing and starting the PayPal Express Checkout flow.

HTTPS Administration Tool

The Administration Tool now loads in HTTPS if SSL has been enabled on the store.

Payment Modules

The following payment modules have been updated to utilize the latest payment gateway APIs and to have each secured API call verified through CA public certificates.
Some payment modules have also been updated to support stored card tokens where customers can securely store their card payment information at the payment gateway and to reference their cards in later purchases without needed to retype their card information again. These include:
  • Sage Pay Direct
  • Stripe
  • Braintree

The following modules have been updated:
  • PayPal Express Checkout v3.0
  • PayPal Payments Standard v3.1
  • PayPal Payments Pro (Direct Payment) v3.0
  • PayPal Express Checkout (Payflow Edition) v3.0
  • PayPal Payments Pro (Payflow Edition) v3.0
The following modules are being introduced:
  • PayPal Payments Pro (Hosted Solution) v1.0
The modules can be downloaded separately for existing stores at:


Sage Pay

The following modules have been updated:
  • Sage Pay Direct v3.0
  • Sage Pay Form v2.0
  • Sage Pay Server v2.0
The following modules are being introduced:
  • Sage Pay Cards Management Page (content module)
The modules can be downloaded separately for existing stores at:



The following modules have been updated:
  • Authorize.net Server Integrated Method (SIM) v2.0
  • Authorize.net Advanced Integration Method (AIM) v2.0
The following modules are being introduced:
  • Authorize.net Direct Post Method (DPM) v1.0
The modules can be downloaded separately for existing stores at:



The following modules are being introduced:
  • Stripe.js v1.0 (payment module)
  • Stripe Cards Management Page (content module)
The modules can be downloaded separately for existing stores at:



The following modules are being introduced:
  • Braintree v1.0 (payment module)
  • Braintree Cards Management Page (content module)
The modules can be downloaded separately for existing stores at:



The following modules have been updated:
  • WorldPay Hosted Payment Pages v2.0
The modules can be downloaded separately for existing stores at:


General Updates

This release also includes the following general updates:
  • Orders can now be blocked when no defined shipping rate is available for the destination
  • Session management improvements
  • Payment Acceptance box introduced
  • jQuery libraries updated
  • and minor bug fixes and improvements

osCommerce Online Merchant v2.3.4 can be downloaded in full and update packages from:


Thank You!

We'd like to thank the community for their feedback on our releases. In addition, we thank the following people who participated in the development of this release.Reference

The osCommerce Online Merchant release notes and upgrade guides can be found at:


#1749808 2.4.0beta Pre-Package Release Status

Posted by Harald Ponce de Leon on 11 November 2016 - 07:24

v2.4.0beta has been tagged at Github! Release will be pushed out today!

#1748169 Addons

Posted by azpro on 04 October 2016 - 19:23

Hi All!


As we all know .. the simple well-coded add-ons Gary @burt makes are worth lots-and-lots more than £3.50! Even if you don't use them - they are great learning stuff for coding standards.


So I strongly ask - especially shopowners who benefit from Gary's oSC BS work (like I do) - to step up and pledge at least 10-folds of £3.50.


Move the project Forward and spend a few dollars/pounds/euros!





#1747049 2.4 Series

Posted by Harald Ponce de Leon on 26 August 2016 - 12:37

Well it says nothing on what happens to BS
Why keep it so much a secret?... 2.4 is on github and so it 2.3... but the last updated times does not make much sense

The v2.4.0 series is built from 2.3.4BS EDGE. It is taking the work you have all done and making it an official release. The major difference is the addition of the framework and App implementations, and an updated Administration Dashboard interface (also based on Bootstrap).

If you are running on 2.3.4 BS then you are expected to upgrade to v2.4.0 once it is production ready. A compatibility module will exist to help with the upgrade.

If you are on v2.3.4 (official release) then you have the option of staying on that version until the to-be-announced end-of-life date is met, before upgrading to a newer v2.x or v3.x release.

Don't panic.

#1702157 Categories Menu with multiple subs in the header navbar

Posted by De Dokta on 18 July 2014 - 13:04

I have long been looking for a way to integrate the categories menu with multiple sub categories into  the header navbar, but I always failed to embed the appropriate code into the category_tree.php.  :(  With the help of the code gadlol has recently posted, some JS and CSS I have now found a way without changing the category_tree.php.
Looks like this:
Attached File  collapsed.jpg   30.39KB   56 downloadsAttached File  desktop.jpg   50.25KB   56 downloads
How it works:

 In includes/functions/html_output.php add a new function:

function tep_show_tree($root_id = 0,$mainUlClass='dropdown-menu',$submenuUlClass='dropdown-menu sub-menu'){
    global $languages_id,$cPath_array;
    $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = cd.categories_id and cd.language_id='" . (int)$languages_id ."' order by sort_order, cd.categories_name");
    $items = array();
    while ($categories = tep_db_fetch_array($categories_query))  {
        $items[$categories['categories_id']] = array('name' => $categories['categories_name'], 'parent_id' => $categories['parent_id'], 'id' => $categories['categories_id']);
    if($citems<=0) return '';
    elseif($citems==1) $children[] = $items; //in case we have one category item without subcategories, rare but possible
    else foreach( $items as $item ) $children[$item['parent_id']][] = $item;
        $loop = !empty( $children[$root_id] );
        $parent = $root_id;
        $parent_stack = array();
    $html=array();//store html code
        $stack=array();//helper array so to know the current level
    $pic=''; //products_in_category string
        $html[]='<ul class="'.$mainUlClass.'">';
        while ( $loop && ( ( $option = each( $children[$parent] ) ) || ( $parent > $root_id ) ) ){
            if ( $option === false ){
                $parent = array_pop( $parent_stack );
                $html[] = '</ul>';
                $html[] = '</li>';
                array_pop( $stack );
            }elseif ( !empty( $children[$option['value']['id']] ) ){
                  $rt=$root_id>0 ? $root_id.'_' : '';
                  $cpath_new=count($stack)<=0 ? 'cPath='.$rt.$option['value']['id'] : 'cPath='.$rt.implode('_',$stack);
                $html[]= '<li><a class="trigger right-caret" href="'.tep_href_link(FILENAME_DEFAULT, $cpath_new).'">';
          if (SHOW_COUNTS == 'true') {
            $products_in_category = tep_count_products_in_category($option['value']['id']);
            if ($products_in_category > 0) {
              $pic='&nbsp;(' . $products_in_category . ')';
          if((isset($cPath_array) && in_array($option['value']['id'], $cPath_array))){
            $html[]=stripslashes($option['value']['name']) . $pic;
            $html[] = '<ul class="'.$submenuUlClass.'">';
                $parent = $option['value']['id'];
        $rt=$root_id>0 ? $root_id.'_' : '';
                $cpath_new= count($stack)<=0 ? 'cPath='.$rt.$option['value']['id'] : 'cPath='.$rt.implode('_',$stack).'_'.$option['value']['id'];
                $html[]= '<li><a href="'.tep_href_link(FILENAME_DEFAULT, $cpath_new).'" >';
        if (SHOW_COUNTS == 'true') {
          $products_in_category = tep_count_products_in_category($option['value']['id']);
          if ($products_in_category > 0) {
            $pic='&nbsp;(' . $products_in_category . ')';
                if (isset($cPath_array) && in_array($option['value']['id'], $cPath_array)) {
     $data = '<li class="dropdown">' .
             '<a class="dropdown-toggle" data-toggle="dropdown">' . HEADER_CATS . '</a>' .
               implode($html) .
      return $data;

includes/footer.php add:

<script type="text/javascript">
    $(".dropdown-menu > li > a.trigger").one("click",function(e){
        var current=$(this).next();
        var grandparent=$(this).parent().parent();
            $(this).toggleClass('right-caret left-caret');
        grandparent.find('.left-caret').not(this).toggleClass('right-caret left-caret');
    $(".dropdown-menu > li > a:not(.trigger)").one("click",function(){
        var root=$(this).closest('.dropdown');
        root.find('.left-caret').toggleClass('right-caret left-caret');

user.css add:

.dropdown-menu>li /* To prevent selection of text */
{   position:relative;
    padding-left: 5px;
    -webkit-user-select: none; /* Chrome/Safari */        
    -moz-user-select: none; /* Firefox */
    -ms-user-select: none; /* IE10+ */
    /* Rules below not implemented in browsers yet */
    -o-user-select: none;
    user-select: none;
.dropdown-menu .sub-menu
    left: 100%;
    position: absolute;
    top: 0;
    margin-top: -1px;
 {  content:"";
    border: 5px solid transparent;
    border-top: 5px solid transparent;
    display: inline-block;
    height: 0;
    vertical-align: middle;
    width: 0;
.right-caret:after {   
    border-left: 5px solid #ffaf46;
.left-caret:after {
    border-right: 5px solid #ffaf46;

in includes/header.php after:

<?php echo '<li><a class="store-brand" href="' . tep_href_link(FILENAME_DEFAULT) . '">' . HEADER_HOME . '</a></li>'; ?>


<?php echo '<li>' . tep_show_tree() . '</li>'; ?>

or somewhere else where you like it!

includes/languages/english.php add:

define('HEADER_CATS', '<i class="glyphicon glyphicon-cog"></i><span class="hidden-sm"> Categories</span> <span class="caret"></span>');

or any other glyphicon.


I tested it with Mozilla 30. IE 8, Chrome and Opera - seems to work properly in full and collapsed size. 


Hope you enjoy it!



#1754634 How to make a 2.4 App

Posted by frankl on 14 March 2017 - 23:58

I'm going to attempt to make an app, and I'm going to post my methods here so that others can follow along and hopefully join in. With a bit of luck @Harald Ponce de Leon and others better at PHP coding will see this and make any corrections or give some help where needed.


Of course, all this is speculative as we don't know what the final form of oSC 2.4 will be, but as the Paypal App is in there and presumably is more or less complete we can use that as a template.


I am going to make a Related Products App, for two reasons. It is fairly simple, but also involves configuration, admin pages, and at least one content module.


OK, here goes:


First, let's get make the most basic module possible, one that put some static content on the product_info page.

Create a new directory in catalog\includes\OSC\Apps named Test

Then create a directory structure off that, so that you have




    |_ OSC
        |_ Apps
            |_ Test
                |_ Test
                    |_ Module
                        |_ Content
                            |_ templates




In OSC\Apps\Test\Test, create a file named oscommerce.json

This will tell osCommerce where to find the app, who wrote it, and where the modules and routes can be found.

In the oscommerce.json file we will be giving our app the name of Test, and the content module, which shall be called APPTEST, will belong to the product_info group.

Put the following in this file and save it

    "title":     "Test App",
    "app":       "Test",
    "vendor":    "Test",
    "version":    "0.0.1",
    "req_core_version":    "2.4",
    "license":    "MIT",
    "authors": [
            "name":        "Author",
            "company":    "Company",
            "email":    "email@Example.com",
            "website":    "http://www.example.com"
    "modules": {
        "Content": {
            "product_info": {
                "APPTEST":    "Module\\Content\\APPTEST"

Create another file in the OSC\Apps\Test\Test directory called Test.php. This will initiate the Test class so it can be used by osCommerce. For now it won't do anything, but we'll add some functions to it later.

Put the following in this file

  * Test App for osCommerce Online Merchant
  * @copyright (c) 2016 osCommerce; https://www.oscommerce.com
  * @licensed2kill MIT; https://www.oscommerce.com/license/mit.txt

namespace OSC\Apps\Test\Test;

class Test extends \OSC\OM\AppAbstract

    protected function init()


Now we will create the APPTEST module in OSC/Apps/Test/Test/Module/Content. This app will add some static (for now) content to the product info page. Create a file in this directory called APPTEST.php. I'm not sure if capitalization of the filename is important but as that's what the Paypal app does I'm going to do it too.

Add to this file:

  * Test App for osCommerce Online Merchant
  * @copyright (c) 2016 osCommerce; https://www.oscommerce.com
  * @licensed2kill MIT; https://www.oscommerce.com/license/mit.txt

  namespace OSC\Apps\FrankL\Test\Module\Content;

  class APPTEST implements \OSC\OM\Modules\ContentInterface {
    public $code, $group, $title, $description, $sort_order, $enabled, $app;

    function __construct() {

      $this->app = 'Test';
      $this->code = 'APPTEST';
      $this->group = 'product_info';

      $this->title = 'Test App';
      $this->description = 'Just a test.';
      $this->sort_order = '10';
      $this->enabled = true;

    function execute() {
      global $oscTemplate;

      include(__DIR__ . '/templates/APPTEST.php');
      $template = ob_get_clean();

      $oscTemplate->addContent($template, $this->group);
    function isEnabled() {
      return $this->enabled;

    function check() {

    function install() {

    function remove() {

    function keys() {

We also need a template to display the actual content, so create a file in OSC/Apps/Test/Test/Module/Content/templates also called APPTEST.php and put the following content in it. This is just placeholder content, we'll change that to dynamically generated content later.

  <br />
  <div itemscope itemtype="http://schema.org/ItemList">
    <meta itemprop="itemListOrder" content="http://schema.org/ItemListUnordered" />
    <meta itemprop="numberOfItems" content="6" />

    <h3 itemprop="name">Test Content for Test App</h3>

    <div class="row">
      <div class="col-sm-6 col-md-4">  
        <div class="thumbnail"><a href="product_info.php?products_id=23"><img src="images/gt_interactive/wheel_of_time.gif" alt="The Wheel Of Time" title="The Wheel Of Time" width="100" height="80" /></a>
             <div class="caption"><h5 class="text-center" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a itemprop="url" href="product_info.php?products_id=23"><span itemprop="name">The Wheel Of Time</span></a><meta itemprop="position" content="1" /></h5>    
      <div class="col-sm-6 col-md-4">  
        <div class="thumbnail"><a href="product_info.php?products_id=1"><img src="images/matrox/mg200mms.gif" alt="Matrox G200 MMS" title="Matrox G200 MMS" width="100" height="80" /></a>    
          <div class="caption"><h5 class="text-center" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a itemprop="url" href="product_info.php?products_id=1"><span itemprop="name">Matrox G200 MMS</span></a><meta itemprop="position" content="2" /></h5>    
      <div class="col-sm-6 col-md-4">  
        <div class="thumbnail"><a href="product_info.php?products_id=2"><img src="images/matrox/mg400-32mb.gif" alt="Matrox G400 32MB" title="Matrox G400 32MB" width="100" height="80" /></a>    
          <div class="caption"><h5 class="text-center" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a itemprop="url" href="product_info.php?products_id=2"><span itemprop="name">Matrox G400 32MB</span></a><meta itemprop="position" content="3" /></h5>    
      <div class="col-sm-6 col-md-4">  
        <div class="thumbnail"><a href="product_info.php?products_id=25"><img src="images/microsoft/intkeyboardps2.gif" alt="Microsoft Internet Keyboard PS/2" title="Microsoft Internet Keyboard PS/2" width="100" height="80" /></a>    
          <div class="caption"><h5 class="text-center" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a itemprop="url" href="product_info.php?products_id=25"><span itemprop="name">Microsoft Internet Keyboard PS/2</span></a><meta itemprop="position" content="4" /></h5>    
      <div class="col-sm-6 col-md-4">  
        <div class="thumbnail"><a href="product_info.php?products_id=26"><img src="images/microsoft/imexplorer.gif" alt="Microsoft IntelliMouse Explorer" title="Microsoft IntelliMouse Explorer" width="100" height="80" /></a>    
          <div class="caption"><h5 class="text-center" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a itemprop="url" href="product_info.php?products_id=26"><span itemprop="name">Microsoft IntelliMouse Explorer</span></a><meta itemprop="position" content="5" /></h5>    
      <div class="col-sm-6 col-md-4">  
        <div class="thumbnail"><a href="product_info.php?products_id=27"><img src="images/hewlett_packard/lj1100xi.gif" alt="Hewlett Packard LaserJet 1100Xi" title="Hewlett Packard LaserJet 1100Xi" width="100" height="80" /></a>    
          <div class="caption"><h5 class="text-center" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a itemprop="url" href="product_info.php?products_id=27"><span itemprop="name">Hewlett Packard LaserJet 1100Xi</span></a><meta itemprop="position" content="6" /></h5>    

That's our basic content created, but it won't show on the product info page until it gets installed.

The app is not yet installed, but if you want to see if the module works so far go to phpMyAdmin and search for the MODULE_CONTENT_INSTALLED configuration_key in the configuration table. Add at the end of the list of modules installed


then navigate to product_info.php where you should see the Test App's contents.


Next I'm going to attempt to create an admin menu and installation and app configuration pages.

#1736993 LetsEncrypt Free SSL/HTTPS Certificates

Posted by Harald Ponce de Leon on 06 December 2015 - 06:32

Hi All..

If you're interested in a free SSL/HTTPS certificate for your site, the LetsEncrypt initiative have just entered beta and are now providing the certificates publicly.

Information about LetsEncrypt is available at:


Setup documentation:


Our online demonstration site is now completely running through a supplied certificate - if you'd like to test it for browser compatibility please take a look at:


All of our websites will eventually be updated to be served over a secure https connection.

Kind regards,

#1718207 modding up a 2.3.4BS Gold

Posted by greasemonkey on 23 February 2015 - 00:36

Hi All, I thought I would start up a new thread a la @Mort-lemur.


I've recently started modding up a new 2.3.4BS Gold install to replace my current 2.3.4 - with iOSC installed. I have a TON of addons in this store... and it has a "few quirks".


I have no particular timeline on this project (I was hoping for mid 2015) and will be working on this only in my spare time. I do have some goals... some of which will be hard to achieve.


My plan is to post here as I go along (as was done with the previous modding up thread).


Some of my goals;


1) leave core code as un-touched as possible... completely un-touched will be impossible for me as SPPC is an important part of our business

2) design myself - previously use a purchased template (yes.... OMG a template) - and yes, I've learned my lesson...


Here is where I'm at in the past week working on the store. I purchased the 28daysofcoding bundle from @burt.... this is going to be a great help.


 I've so far installed;

SEO Header Tags - Reloaded (I installed this first.... drop on top). I've previously used Header Tags SEO... so need to be careful when I get to the database update/merge.

Bootstrap Carousel - no core changes

Bootstrap Featured Products - 1 line to index

Bootstrap Buttons Content mod - no core changes

Created a new catalog/manufacturers.php page - no core changes

Added Categories dropdown to the navbar from thisthread - 1 addition to output_html & 1 line to application_top


I'm LOVING the user.css.... I'm using firebug to inspect each element and change colors etc... then adding the changes to user.css...




1) I'm going to install a URL re-writer - sorry for the core code changes @burt.... but I believe human readable URL's are critical

2) I need to figure out when I'm going to install SPPC - right now I'm thinking to leave this to last. There are too many core changes - but it has to be done. Love to here others thoughts on this.







#1707915 Windows and PHP Email Catcher (for Developers)

Posted by Harald Ponce de Leon on 05 November 2014 - 17:47

Hi All..


If you're developing under Windows and would like to see the emails PHP attempts to send out, the following program catches the emails and displays them without actually sending them out. It's not a SMTP server, it's more a SMTP email catcher.




The following settings need to be set in your php.ini:


SMTP = localhost

smtp_port = 25


(the smtp_port needs to be the same port defined in Papercut)

and in your OSCOM Administration:


Admin -> Configuration -> E-Mail Options -> E-Mail Transport Method: smtp

Admin -> Configuration -> E-Mail Options -> Send E-mails: true


You then get notified each time an email is caught and can view the actual email.