Extension Developer Help

AbanteCart Extension Submit Format Manual


Who this document for:

This is a quick reference for AbanteCart extension developer or individual submitting extension to AbanteCart Marketplace.
Document covers basics of standards and requirements for extension archive to be uploaded and included to marketplace.

Why follow standards:

It is important to follow set standards and keep extensions organized to deliver best quality extensions and experience to AbanteCart users.
In addition, standards help developers and open source community quickly adjust to future improvements in the system.
Our team continuously works on improving standards and making process of developing extensions easier and more fun. Check extension developer tool to help you generating standard extension framework.

Archive Naming Convention

You can name submitted zip archive with any name you prefer. After archive is uploaded to marketplace server, it will be renamed to standard name constructed with extension unique text ID and extension version. Example: product_features_v101.tar.gz

Check that your extension text ID is unique by using search in the Marketplace. Do not start extension ID with the word "default". This is restricted for AbanteCart default extensions.


Extension Archive Content

It is important to keep all the files and directories organized as described in extension development manual. Some required files and directories are listed below:

Package Level (main archive directory):
Required:
/[archive]/code/extensions/[extension_text_id]
/[archive]/license.txt
/[archive]/package.xml

Optional:
/[archive]/copyright.txt
/[archive]/code/extensions/[other_ext_id]
/[archive]/manuals/
/[archive]/code/extensions/[extension_text_id]
Directory with extension code added to AbanteCart.

Note: Multiple extensions can be included if needed, but only one (main) extension is used for installation.

/[archive]/license.txt
File to contain extension licensing information. This will be shown to the user at extension installation time. Make sure to set file UTF-8 encoding!

/[archive]/package.xml
Package details in XML format. See more details
Extension Level (/[archive]/code/extensions/[extension_text_id] ):

Required:

[extension_text_id]/config.xml
Extension setting and details in XML format. See more details

[extension_text_id]/main.php
Main extension driver containing details about extension files

[extension_text_id]/image
Images directory for extension icon

[extension_text_id]/admin/language/english/[extension_text_id]/[extension_text_id].xml
Main language file to support extension configuration in admin

Images:

To add extension to marketplace, important images must be included.
[extension_text_id]/mage/icon.png (57px*57px)
NOTE: Archive size is limited to 6mb, so do not include files that are not used or not optimized in size. If you need large files to support your extension, you can include them in separate archive, not inside extension itself. Keep extension size to minimum to allow fast download and installation experience for customers.

Following images must be uploaded manually using our image uploader. You will be able to upload them after initial package upload
icon-hi-resolution.png (114px*114px) - icon shown in marketplace listing gives your buyers a more idea of what to expect
main.jpg (1500px*800px) - Main preview image is an accurate representation of your extension. Png file extension also allowed.
Additional images can be added with any name and '.jpg, .png' extensions. These images will be picked up and added to extension details page with preview image slider


Glossary:
Extension Unique Text ID (Extension Text ID)
Unique text ID to identify extension on the marketplace and inside AbanteCart. Extension Text ID is based on low case alphanumeric characters. Words can be separated by underscore (_). No spaces or other special characters are allowed. Example: product_features

Extension Version:
It is important to manage versions for your extension. Marketplace tracks extension versioning to identify updates and upgrades in the extension.
Versions are based on Software versioning standard

AbanteCart Versions:
Extension needs to identify what AbanteCart version it will work on. Here some assumptions about AbanteCart version that needs to be mentioned.
AbanteCart Version specified in extension will represent minimum AbanteCart version supported. Newer AbanteCarts in same minor version range (example: 1.1.x) will be installed without warning. If AbanteCart minor version is changed, extension installer will display error.

Basically, extension core is supporting backwards compatibility from given version up to minor version change.

Continue