OXID eshop routing

If you wonder about routing in OXID eshops or how the URL structure is here are some hints:

OXIDs MVC, well thats some kind of different naming and you have to get used to:

the M (Model) you find in /core
the V you find in in your templates in /out, there the main view is called the same as your controller, given the controller has a render() method.
/views/details => /out/[templatename]/page/details.tpl
the C (Controller) you find in /views (what? oyerywell!)
like /views/details.php

The routing itself is like so:

?cl = controller

in /views

?anid = productID 

(that means the hash from the OXID field) or uid if you busy with users or any other relevant id

?fnc = myfunction

the method in the controller in /views

So this ends up in something like this:

<br />
theshop.de?cl=details&amp;anid=05848170643ab0deb9914566391c0c63&amp;fnc=myfunction<br />

This is unmasked routing, normally OXID has this covered in SEO URLs with prettier slugs.

To use custom methods in the controller you have to extend it, the OXID module way, check this here.

Apropos OXID module way: actually its not so bad, i like the emulation of multiple overloading for the models and controllers.
The module registry in the database however is something id rather have in the code, that would be easier to maintain over environments.
Also some better cascading for templates, assets, lang files etc in the modules would be cool. That “copy here copy there” installations can be quite annoying.
But anyway: i can deal with that.

Leave a Reply

Your email address will not be published. Required fields are marked *