Requirements to products published in Webasyst Store

Contents...
Self-test your product using a comprehensive check list to get your product approved on the very first submission.
  1. In Webasyst Store products of three types are accepted:

    • apps
    • plugins for apps already published in Webasyst Store and system-wide plugins for shipping cost calculation, payment processing, and SMS gateway integration
    • design themes for apps already published in Webasyst Store
    • widgets for apps already published in Webasyst Store and system-wide widgets
  2. The file structure of your product must correspond to that described in the documentation, configuration files must have the format described in the documentation, commands for creation of database tables must be specified in file db.php to ensure automated installation and uninstallation by means of the Installer app.

    In product's configuration file (app.php, plugin.php, or theme.xml) must be specified parameter vendor with a numerical value containing developer's personal ID issued on registration in the developer program in the Customer Center. Example:

    'vendor' => 12632,
    Separate testing of product installation via the Installer is not required because Installer installs products using the framework's basic functionality. To test the installation routine, use the instructions for manual app installation by means of specifying app's ID to configuration file (similar instructions apply for plugins; to test a design theme, upload it in backend using the built-in “Upload theme” feature).
  3. All text files (PHP, HTML, JavaScript, CSS, SQL, etc.) must be saved using UTF-8 charset. Other charsets are not supported by Webasyst.
  4. If a plugin utilizes its own tables in the framework's database, then such tables must be named in accordance with rule [app_id]_[plugin_id]_[table_name]; e.g.: shop_brands_brand.
  5. A product will be accepted to Webasyst Store only in the form of a tar.gz archive file. The archive must contain a directory named by your product's id. For example, if you have developed a plugin with id myplugin, then your archive must contain only one directory named myplugin, which may contain subdirectories lib, locale, templates, etc.
  6. System requirements for installation and operation of the product (see guidelines on specifying system requirements) must correspond to those applicable to Webasyst framework.
  7. In order to ensure a high level of security and transparency of the product audit, only products with open source code are accepted to Webasyst Store. Products with encrypted or obfuscated source code will not be accepted.

    Special attention is paid to security issues. Products in which vulnerabilities will be found, such as SQL injections, XSS, etc., will not be published in Webasyst Store. We may provide recommendations on improvement of product's source code at our discretion.
  8. Apps' and plugins' directories lib/, templates/, locale/ must contain file .htaccess with the following conitents:

    Deny from all

    Directories containing design themes must contain file .htaccess with the following contents:

    <FilesMatch "\.(php\d?|html?|xml)$">
        Deny from all
    </FilesMatch>
  9. To improve the debugging of apps and plugins, before they are submitted for publication in Webasyst Store, it is recommended to add the following lines at the beginning of file wa-config/SystemConfig.class.php:

    error_reporting(E_ALL);
    ini_set('display_errors',1);

    If the use of these PHP functions is not allowed on the development server, then the corresponding PHP configuration values should be set using a different method allowed on the server.

  10. Apps and plugins may save user data only in wa-data/ directory or in the database only. Saving, editing, or deleting any files in directories wa-apps/, wa-content/, wa-installer/, wa-plugins/, and wa-system/ are prohibited.
  11. Public methods of PHP classes may not allow to arbitrarily modify or delete arbitrary files, or execute arbitrary SQL queries to the database or execute model class methods, if called from within Smarty templates.

    To block such dangerous execution of public class methods, they must contain the following checking condition
    if (waConfig::get('is_template')) {
        return;
    }
  12. Products containing third parties' products, such as libraries, demo materials, images, scripts, etc., must be accompanied by a license agreement text for each such product, located in the subdirectory with the product, or with appropriate comments in its source code. Inclusion and use of third parties' products must be permitted by their respective terms of use and may not violate their authors' copyrights.
  13. Products requiring from their users obligatory registration in external resources or payment for any additional products or services (directly within the product's user interface, on the Webasyst Store, on external websites) may be rejected on Webasyst Store.
  14. A product must not store passwords and other sensitive data in an unencrypted form or request any users' contact or authorization details, or use their contact information for sending them advertising material without their prior consent.
  15. Not permitted are also deletion, copying, or export of Webasyst apps' data to external resources without a clearly visible notification displayed to user. A product may perform such actions explicitly and only if requested or set up accordingly by user.
  16. A product may extend the basic functionality including the database structure but must not delete other apps' or plugins' basic parts; e.g., source code files, database table fields or entire tables.
  17. An app's backend must not hide standard UI elements such as account name, icons and links to available apps, userpic and user name, and the logout link. If hiding these elements is essential for the app's normal operation, it should offer tools for switching to (and disabling) such a full-screen mode.
  18. A product must be thoroughly tested in accordance with the basic recommendations and the self-check list.
  19. Product's descriptions and screenshots published in Webasyst Store must reflect its actual functionality and must be related to the particular product only. Advertising external custom services and products not related to the particular product is not allowed. Product name must contain it's name only. Products describing it's functionality in the product name field may be rejected.
  20. Icons & logos

    • Apps: upload 96х96 and 48х48 pixels large images. Format: PNG with transparent background. GIF images are not accepted. A 48х48 pixels icon is displayed in Webasyst main menu, 96х96 pixels icon is displayed in Webasyst Store and also in backend main menu if viewed on high-resolution screens; e.g., Retina.

      We also recommend uploading 16х16 and 24х24 pixels large icons, they will be used in Site app in the by-app filter menu of plugins and design themes.
    • Plugins: 200x110 pixels large cover image. The cover must reflect the main purpose of the plugin and must not contain too much additional content. E.g., if a plugin implements export of data from Webasyst to an external system then its cover should display that system's logo and should not contain any arrows indicating data flow.
    • Design theme: 200х220 pixels large image created from a screenshot of the design theme. The recommended scaling ration is 20—25%, which is achieved when you create a thumbnail image of 200 pixels width from a 800—1000 pixels wide full-size image.
  21. Screenshots: Webasyst Store automatically scales down uploaded screenshots to 970 pixels in width (the height is calculated automatically).

    Recommendations on preparing screenshots

    • sample domain name displayed in screenshots: yourdomain.com
    • sample company name: “Your Company” or “Webasyst”
    • source full-size image width: max. 1300 pixels
  22. Highlighting or extra promotion of apps in Webasyst Store may be carried out only at our discretion. The main criteria in such cases will be overall product quality, attention to details, operating stability, and demand from Webasyst users.
  23. If a newly submitted product does not meet minimal quality criteria at the discretion of Webasyst administration or is very similar to one of the existing published products, then such a new product may be accepted for publication but may, however, be hidden from common product lists because of the "unlisted" tag added to the product. Unlisted products are not displayed in product listings in Webasyst Store and are only available by direct link.
  24. Widgets must be equally usable both on personal dashboard with light background and on TV panels with dark background.
  25. Powered by. A design theme, whether parent or child, must contain a link to website https://www.webasyst.com or https://www.shop-script.com, whichever is more appropriate, with a hint telling website visitors that this website is powered by Webasyst or Shop-Script. Additionally, a design theme developer may also add a link to his personal web resource, which should not replace a link to one of the platform's official websites.

    For an example of how "powered by" links can be implemeneted, please see the source code of standard design theme "Default 3.0".
  26. Plugins must be developed as standalone products which should not require installation of other plugins.
  27. A product‘s user interface should not contain any advertising links including those to its author‘s other products.

Terms

applications apps
WebAsyst webasyst WA Webasyst
Shop-script Shop-Script
Webasyst store Webasyst Store
Customer center Customer Center

URLs of Webasyst websites must begin with www:
webasyst.com www.webasyst.com
shop-script.com www.shop-script.com

Title (<title>) of product's main page in Webasyst Store:
SUMMARY – APP_NAME app – Webasyst Store
Example: “Bulk email marketing and newsletter tool & Mailer app & Webasyst store”.

The rule requiring to capitalize all (meaningful) words in a title should be ignored.