Webasyst Store product requirements

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. The version number of a software product must consists of 3 numbers separated by a dot; e.g., 1.0.0.
  4. All text files (PHP, HTML, JavaScript, CSS, SQL, etc.) must be saved using UTF-8 charset. Other charsets are not supported by Webasyst.
  5. 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.
  6. 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.
  7. System requirements for installation and operation of the product (see guidelines on specifying system requirements) must correspond to those applicable to Webasyst framework.
  8. 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 server-side PHP source code will not be accepted. Minimization, compillation and/or obfuscation of the client-side HTML / CSS / JavaScript code is allowed and is up to the product developer.

    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.
  9. Apps’ and plugins’ directories lib/, templates/, locale/ must contain file .htaccess with the following contents:

    Deny from all

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

    <FilesMatch "\.(php\d?|html?|xml)$">
        Deny from all
    </FilesMatch>
  10. 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.

  11. 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.
  12. 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;
    }
  13. 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.
  14. 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.
  15. A product must not store passwords and other sensitive data in an unprotected form or request any users’ contact or authorization details, or use their contact information for sending them advertising material without their prior consent.
  16. 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.
  17. 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.
  18. 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.
  19. Plugins must be developed as standalone products which should not require installation of other plugins.
  20. Widgets must be equally usable both on personal dashboard with light background and on TV panels with dark background.
  21. Software products integrated with Shop-Script, including plugins, apps, and design themes, must declare support, or lack of support, for PREMIUM license’s extended functionality. This requirement is applicable to the following products and their updates:
    • all plugins for Shop-Script,
    • all design themes for Shop-Script,
    • a fixed list of apps determined by the Webasyst administration and published in the documentation.

    For other products interacting with Shop-Script declaring support for extended functionality is optional but it will help users more precisely determine whether they can fully use all the PREMIUM license’s features.

  22. All new apps, plugins and widgets must support the Webasyst 2 interface.
  23. Any update of an app, plugin or widget must support the Webasyst 2 interface.
  24. A product must be thoroughly tested in accordance with the basic recommendations and the self-check list.
  25. A product’s descriptions and screenshots published in Webasyst Store must reflect its actual functionality. Product title must not contain its brief or full descriptions as there are other fields in product properties available for this purpose.
  26. Icons & logos

    • Apps: upload 96х96 and 48х48 pixels large images. Format: PNG with transparent background and with no animation. 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. Format: PNG with transparent background and with no animation. 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. Format: PNG with transparent background and with no animation. 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.
  27. 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
  28. 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.
  29. 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.
  30. 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 implemented, please see the source code of standard design theme "Default 3.0".
  31. A product developer is allowed to advertize their own or their partners’ products and services, if such advertising does not interfere with a product’s declared functionality, and does not force a user to make additional payments or perform non-relevant actions such as mandatory registration in third-party services directly not related to the submitted product.

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.