Once AbanteCart page/response load starts (init.php), all enabled extensions are loaded. At this time system has created instances of all extensions classes that responsible for hooks processing.
Control passed to Action class which is trying to define controller and method based on route variable. It checks if first part of route is an extension name and if it is, tries to load it.
Controller is loaded, it's method is executed and it is ready to render template. System is looking for template file.
How to develop Extensions: Let us show how to develop extension based on the example that will apply discount on all products
Extension unique id name will be - discount
At minimum we need to add following settings
<?xml version="1.0"?> <extension> <id>discount</id> <version>0.1.0</version> <cartversions> <item>0.9</item> <item>1.0</item> </cartversions> <dependencies></dependencies> <phpmodules></phpmodules> <layout></layout> <priority>10</priority> <type>extensions</type> < category>discount</ category> <settings> <item id="discount_status"> <type>checkbox</type> <default_value>0</default_value> </item> <item id="discount_percent"> <type>input</type> <default_value>10</default_value> </item> <item id="discount_message"> <type>input</type> <default_value>We are pleased to annouce september discounts</default_value> </item> <item id="discount_product_message"> <type>input</type> <default_value>Old price: %s, You save: %s</default_value> </item> </settings> </extension> |