olCommerce v2/AJAX

Author: Dipl.-Ing.(TH) Winfried Kaiser

http://www.seifenparadies.de/ajax
w.kaiser@fortune.de

© 2006 Dipl.-Ing.(TH) Winfried Kaiser, 24975 Husby


This software is based on "olCommerce v1.2.2.a", it is published under the "GNU General Public License".

No warranty whatsoever, expressed or implied, exists for olCommerce v2/AJAX!

Any usage of this software is solely in the users risk!

The user has to make sure, that he backs up his software and data before using the software,
so that he, in case of failure, can reconstruct the previous environment.


olCommerce v2/AJAX is a fully(!) "AJAX"-ified offspring of olCommerce v1.2, which is an offspring of xtCommerce v2.x, which itself is a "Smarty"-driven (template-based) offspring of osCommerce v2x.

The complete user-interface uses AJAX-technology for interaction, thus offering a completely new "feel" for online-shopping.

Including (but not at all limited to) things like:

  • fast response time because of drastically reduced data-transfer needs
  • context-based PHP-script execution (only those "boxes" are computed, which can change in the given situation)
  • no more browser-refreshs, giving a desktop-like user interface
  • message-box-based indication of error situations
  • a "sticky" shopping cart, which is displayed, if the main cart ist scrolled off-screen, so the customer still can see, what he is buying
  • local, javascript-based, shopping cart manipulation
     
  • local, javascript-based, products availabilty check
     
  • the usual browser history handling despite of AJAX
  • AJAX-activity indicator for visual feedback (if an AJAX-request is started, a "wait"-picture ist displayed at the current mouse position)

and much, much more

Also, a lot of online AJAX-based validation functions are available, like:

  • ZIP-code verification
  • bank-account verification
  • first name verification
  • phone-number verification

aso.

Which helps reduce the amount of data, a client has to manually enter, and at the same time keeps the customer database clean and consistent. (For Germany also an internet-based automated address-verification is possible, which queries several online databases of the post and telecom, in order to verify the clients' address.)

The shops admin-area can also principally be run in AJAX-mode already.

However, the lacking capability of uploading files via AJAX, precludes its use (so far!).


On top of the shops' "AJAX-ification", more then 70-odd(!) major functional improvements have been made so far (as compared to olCommerce v1/xtCommerce v2/osCommerce v2), with a lot more ideas still in the pipeline!

Including things (which are not available in any current "Open-Source"-shop "off-the-shelf" (or at all)) like:
  • Allowing use of ADODB as a database layer for broadening supported database systems on top of MySQL.
  • "chCounter"-integration (including installation and configuration), giving a huge amount of access-statistics, down to the product level
  • "Livehelp"-integration (including installation and configuration) for online chats with visitors (to be done)
  • "Google Sitemap" export capability
  • Support of the "shopxml"-standard and various export-formats for Google and price-comparison agencies via "Elm@r"  (including installation and configuration)
  • PDF-Datasheet, -Catalogue, -Order-Acknowledgement, -Packing-Slip, -Invoice
  • Support for packaging units, base prices, minimum product order quantities, minimum purchase amounts
     
  • AJAX-based products-attribute management
  • shop "down-for maintenenance"-function
  • Allowing a database-table-prefix (which allows multiple shops in one database)
  • "Multi-Shop"-function (Multiple shops can be driven by only one(!) software installation)
  • "Multi-Database"-function (A shop can use 2 different databases, which allows having a common (products based) database, and one client database)
  • Interface modules for "CAO-Factura" and "EazySales"
  • Shipment tracking capability
  • Capability to store and retrieve shopping baskets on a customer base
  • Using the WYSIWYG SPAW-Editor for formatted data entry, where appropriate
  • Using the "spiffyCalender"-module for date entries
  • Using the "Cool-Menue"-module for using a DHTML-menu instead of the xxCommerce static menu for navigation
  • "On-the-fly"-picture generation
  • Generalized data-import module to import data from other "xxCommerce"-based systems, regardless of their actual database status
  • A "product-gallery" as a very compact way to navigate thru and order products
  • "Drag-and-Drop" screen-layout definition (The placement of "boxes" can be defined visually)  (under development)
  • Comparative sales statistics
  • Dynamic "Who is online", allowing (almost realtime) visitor information (including the pages visited, cart contents, visitors entering and leaving, new orders aso.)  (under development)
  • Shop-based "Cron-job"-capability, where programs can be activated by the shop system(!) with various timing conditions.
    (No need for OS-based "Cronjobs" anymore! Useful for automated product imports, eBay-order-checking and -import aso.)   (under development)
  • Sophisticated search-engine-optimized (SEO) URLs
  • Visiting search engines are presented a special "food" they like best.
  • eBay-Connector (based on the greatly enhanced "auction.Lister" osCommerce contribution) for submitting products to eBay auctions and/or eBay Express, as well as importing successful auctions and sales (under development)
  • PayPal-IPN and Direct-checkout integration (under development)
  • Respecting all(!) currently known legal requirements for online-shops in Germany (and thus most likely those of all other countries, because this is paranoid in Germany!).
  • and much, much more


Finally, the existing codebase of olCommerce v1/xtCommerce v2/osCommerce v2 has been completely(!) restructured in some areas:
  • the 12-odd different(!) ways of entering and verifying customer-data have been reduced to just 2(!) modules (display and verification) and one (!) template (making changes in these areas manageable, and consistent)
     
  • the 10-odd different(!) ways of preparing various products lists have been reduced to just 1(!) module and one(!) template (making changes in these areas manageable, and consistent)
  • The script-structure has been streamlined, concentrating many repetitive functions now in central modules, making the scripts more readable an maintainable.
  • For (new) admin-scripts a new framework has been devised, which handles all the necessary system framework, so the programmer can concentrate on his real application job.

olCommerce v2/AJAX can, nevertheless, be run transparently(!) in conventional mode, too, if it is used from a browser with no Javascript enabled!

There is only one code-base for both modes: AJAX and conventional!

No special programming considerations have to be taken into account for using the AJAX-technologie!

AJAX-support has been implemented transparently in the central "inc"-functions.

So, as long as database-tables are referenced only by their defined constants, database-access is only made via the "olc_db_xxxxxx"-, images are only created with the "olc_image"- and form-elements are only created using the "olc_draw_xxxxx"-functions, the AJAX-, ADODB-, "Multi-Shop"-, "Multi-Database"-, "SEO-URL"- and "picture-on-the-fly"-capabilities are preserved!

In the olCommerce v2/AJAX  Programmers Guide: olCommerce_v2_programmers_guide.html you will find some guide-lines, which govern any development for olCommerce v2/AJAX!


A test-installation is available under "http://www.seifenparadies.de/ajax"

Admin access data is:

User: test@test.com

Pass: testtest

A detailed description (in german) of the changes and enhancements for olCommerce v2/AJAX can be found here.
 


olCommerce v2/AJAX has all ingredients, to become the worlds best "Open-Source"-Shop-System.

In order to achieve this, the project is looking for

testers with a solid xxCommerce- and (some) PHP-background

developers with a solid xxCommerce- and PHP-background (the source-code is available thru the "sourceforge" CVS-system)

translators (the german translation is up-to-date, the english translation is not! Other languages are not available up to now, and it would be great, to have some more!)

If you are interested, please join the project thru the projects "sourceforge" channel: Join project.
 


An "olCommerce v2/AJAX"-Programmers-Guide is available here.