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. |