Getting started with OXID eShop

If you are new to OXID eShop development you are most likely intrigued to know how basic principles work in order to keep your system updatetable and consistent. Please read through the points of your interest to get an overview. Please don’t hesitate to contact the forums if you have questions about some specific topics that shall be added here.

Installing OXID eShop

OXID eShop is web software, mostly written in PHP. The installation should be as easy as a charm on any web server as long as the system requirements are fitting. Please also see this document for detailed settings.

In general, OXID can guaranty that the installation and running an OXID eShop will work perfectly at one of their hosting partners. Please follow the installation instructions for a proper setup.

Quick guide:

  1. Download OXID eShop, upload the downloaded file to the web server of your choosing and unpack the files
  2. Create a database
  3. Point your browser to the location you uploaded OXID eShop and follow the setup routine

For the installation of an update, please see the tutorial OXID eShop update installation.

Changing functionality with modules

Whenever you want to extend the default functionality of an OXID eShop installation, you should look for existing modules (AKA plugins or extensions), this may save you a lot of time. In case no module meets your demands, the OXID API allows you to code your own module. The module system allows you to write them in a way that the core functionality of OXID eShop has never to be touched, hence your system will stay updatable if you work properly.

Please follow these links for decent tutorials teaching you on how to write an OXID eShop extension:

Working with themes

Themes consist of a set of interlaced template files (*.tpl) and control the layout and design of your OXID eShop. As a template engine, SMARTY2 is used.

Your installation comes with the standard themes “Azure”. In general, there are two different ways to get your own, custom template: cloning the Azure theme or creating your own template set from scratch.

It´s strongly recommended to choose one of these options. Do not ever modify the original template set!

The override system works really simple: it uses all template files from the father theme in the original directory, except of those, which are in your custom directory. So you just have place the modified files into the child theme directory, further updates will not overwrite your changes.

The other possibility is to develop a completely own template set and integrate it into the shop. The override functionality will work with this new one as well.

Check out this blog post about theme management in OXID eShop.

Template debugging
Starting with OXID eShop Version 4.6.0, there is an easy way to find out which template file is responsible for what output in the frontend, just set

$this->iDebug=8

in config.inc.php and template name and path will be displayed at the store front.

Release policies

For OXID eShop, major releases (e.g. x.9.0), minor releases (e.g. 4.x.0) and patches (e.g. 4.9.x) are provided. All of this releases belong to a series (e.g. 4.9 or 4.8).

Please note that presently the series are separated: OXID eShop Enterprise Edition is using series 5.x while Professional and Community Edition are series 4.x.

Major and minor releases may contain changes in architecture, database, core and language files as well as in templates (store front and admin). Update scripts and a beta version will be provided, releases to expect roundabout once a year. No matter which edition you run.

However, patch releases are usually published in order to fix bugs. There will definitely be no changes in architecture nor database, and in the most cases not even changes in store front templates and language files. Just core files and maybe admin templates plus language files might be altered. There will be no beta version; update scripts will be provided. Releases happen quarterly. No matter which edition you run.

Supported versions and cumulative update packages
Supported and maintained versions are always the latest patch releases of a series and the one before.
For example, if version 4.9.5 is the present version in 4.9 series and 4.8.7 is the latest patch in 4.8 series, the next patch would definitely be 4.9.6, but 4.8.8 only if a serious or security related bug was fixed. The series 4.7 with it’s latest patch release 4.7.14 will definitely not be supported and maintained any longer to patch release 4.7.15.
In case there will be released a new minor version 4.10, it will start with 4.10.0. From this point on, the 4.8 series will reach end of life status and will not get any patches no more.Please note that cumulative patches will only include the latest patch release within one series like 4.8.6 to 4.8.7 or of the one series to a newer series, for example 4.8.7 to 4.9.5. Also 4.8.7 to 4.9.6 would be provided, but never 4.8.5 to 4.9.6.

Stay informed
New releases will at least be officially announced via the forums, dev-general mailing list, Twitter, Facebook, and Google+. However, clients with a support contract, official partners and NDA owners will additionally be informed via email.

Please see an overview of the release plan or read even more about it in the post Development process.

Continuous integration and automated testing

In core development, we use Jenkins for our continuous integration and continuous distribution process as well as for package building. With Jenkins, it is possible to integrate any tests like PhpUnit and Selenium and check in nightly builds what has been developed over the day on several environments, for example PHP-versions. Unfortunately, this server is not publicly available.

If you provide pull requests via GitHub, your code will also be checked with the publicly available Travis service. In case the build turns red, please check if you’d have to provide or adapt unit tests for your contribution.

The OXID eShop testing library is intended to be used by developers to test their OXID eShop developments and/or extensions with existing or new PhpUnit, Integration, Mink (Selenium) or QUnit tests.

Security

OXID eSales is an Open Source software vendor and naturally takes security issues serious. Please use the following page to find information on how to report security-related issues to us and how we process such issues:
https://oxidforge.org/en/security

User help & merchant documentation

If you’re an online merchant or a user looking for help, please consult these pages:
https://www.oxid-esales.com/en/support-services/documentation-and-help/welcome/about-documentation-and-help.html

Source code & DB documentation

With OXID eShop, you’ll find a very fine grained source code documentation, automatically extracted from annotated PHP sources with doxygen. Please find an overview on this page:
https://oxidforge.org/en/source-code-documentation-overview.

Another very important source for you might be the database documentation for the different series:
https://oxidforge.org/en/database-documentation-overview