This is the documentation for LemonStand V1, which has been discontinued. You can learn more and upgrade your store here.

LemonStand Version 1 Has Been Discontinued

This documentation is for LemonStand Version 1. LemonStand is now offered as a cloud-based eCommerce platform.
You can try the new LemonStand and learn about upgrading here.

Creating Modules for LemonStand Marketplace

Developing modules for the Marketplace applies several requirements to the module code. The requirements are described below. Before you begin developing a new module for the Marketplace, we suggest that you become an author and check the module code availability.

Checking module code availability

As per the module development documentation, module codes (also called module identifiers) should match module directory names. The naming convention requires the module code to be used as a prefix in module class names. That is why it is a good idea to check module code availability before you begin working on a public module. 

Module codes can contain only Latin symbols and digits. Underscores and spaces are not allowed. Module codes should begin with a Latin symbol. 

To avoid conflicts, module codes are required be prefixed with the author name or company name, or part of it. Examples: acmeblog, acmeimages.

Log into the My Account section, and click the Author link in the menu. Fill the Author form if you have not done it yet. After filling the form click the Manage Modules link and then click the Check module code availability button. Enter the module code you would like to check and click the Check button. If the code is available, you can reserve it for one month to complete the development. If you need more time, you can reserve the code again.

Marketplace module coding requirements

In order to satisfy LemonStand quality standards, public modules should follow the following guides:

  • Module PHP code should be clean and contain comments.
  • Module should not require any hacks in LemonStand core.
  • Modules should not use any store-specific URLs. For example, it is would be wrong to redirect to the /checkout page inside a module because such page could be missing in some LemonStand stores or it could have another URL. To manage redirections use hidden fields to allow store developers to provide correct URL, valid for a specific store. For example see redirect supported hidden field in the shop:change_password action.
  • To make the module compatible with LemonStand system requirements do not use PHP features which are not supported in PHP 5.2.6.
  • Do not use MySQL features which are not supported in version 4.1.
  • If your module has settings pages, define links to them on the Settings or My Settings pages. Do not add links to settings pages to the main menu.
  • Modules should be usable with PHP and Twig themes.

Adding a module to the Marketplace

To add a module to the Marketplace, log into the My Account area, click the Author link. If you are not an author yet, you will need to fill the form on the Author page. On the Author page click the Manage Modules link. On the My Modules page click the Create new module button. Choose whether you want to create a marketplace-hosted or a self-hosted module.

Both marketplace-hosted and self-hosted modules can be paid and sold through the Marketplace. If your module is paid, you will be getting the regular payouts (however, we will withhold a commission fee from every sale). For marketplace-hosted modules the process of purchasing is completely automated by Marketplace. When a customer buys a marketplace-hosted module, he can bind it to any of his LemonStand licenses from the MyAccount area immediately after paying an order. Delivering of self-hosted module products is not automated. You, as a developer, will be receiving notifications from Marketplace, when somebody purchases your theme. The notification contains the order details and the buyer contact information. You're responsible to contact the buyer and to deliver the product.

Hosting modules on the Marketplace has the following benefits:

  • Automatically supported updates. When you publish a module update, customers can update their copies using the LemonStand one-click update feature.
  • Automatically supported licensing. When customers purchase modules on Marketplace, they can bind them to a single LemonStand core license. If a customer needs the same module for another license, they will need to purchase another copy.
  • Automated purchasing. Marketplace-hosted modules are delivered to a customer automatically, without any participation from your side.

For self-hosted modules you will need to take care about module updating and licensing.

Marketplace Icon

An attractive icon is important in the Marketplace. It will attract buyers and provide credibility for your product. We have a icon template you can download here. There is an accompanying blog post which includes some additional information on it here.

Updating the module information

You can update any parameter of an existing module. Click the Edit link on the Module Details page and update the module information. You can also delete or add new module screenshots and update the module icon. 

Managing modules updates

This section applies only to marketplace-hosted modules. To upload the first module version, or update an existing module, click the Module updates link on the Module Details page. Upload the module ZIP archive using the form on the page. The module archive should contain the entire module directory, including the directory itself. The module should have the updates directory with the version.dat file. When you update something in your module, you should also add a version information string to the version.dat file, otherwise the module update will not be recognized by the system.

After uploading a module archive, the published updates updates become pending. This means that the updates are not available for LemonStand customers until you publish them. The pending updates status is needed for testing updates before making them public.

Important. Never change version numbers (in version.dat file) for versions which have already been published. Failure to follow this rule can confuse LemonStand update manager and result in inability to update the application.

Testing module updates

To test updates you can bind a module to any of your existing LemonStand licenses. To do that, click the Bind test licenses link on the module information page. Mark the licenses which you would like to bind the module to with the Bind checkbox. Alternatively you can allow installing pending updates for any LemonStand license. This approach allows you to test pending module updates and make sure that they work correctly. If you are not satisfied with results, you can Cancel pending updates on the Manage updates page, fix the module and upload the updated file.

When you are satisfied with the testing Publish pending updates on the Manage updates page. This will make the updates available for customers.

Important. Before publishing new updates always test them with an existing and new LemonStand installations. Some updates could work in existing LemonStand copies, but fail during the installation.

Publishing a module

In order for a module to appear in the Marketplace directory, you should publish it. To publish a module, click the Publish link on the Module Details page. If you are publishing the module for the first time, you will be offered to fill the Test form and wait until we test your module. We test all products before they are published on Marketplace in order to make sure that they satisfy LemonStand quality standards. After receiving a positive response from Limewheel Inc., you can publish the module. To hide a published module from Marketplace, you can unpublish it by clicking the Unpublish link on the Module Details page.


Previous: Creating Themes for LemonStand Marketplace
Return to Authoring for LemonStand Marketplace