JSMA products


The JSMA products provides functionality for finding products.

What can JSMA products do for me?

You could easily use the JSMA products to find products



The JSMA products provides the following methods:

product[] products.find(query, [options={}])

The function signature products.find(query, [limit], [star]) is deprecated and will produce a warning in log files.

Finds an array of  products (JSMA product) by a given query with extended Sphinx syntax.


//search for products with wildcard enabled
var p = products.find(query, { limit: 1000, page: 2 });

var pOld = products.find(args[0], args[1], true); // deprecated

Parameter string query

Parameter options:object (optional)

Default for limit will be 10 if no value is provided.


Finds a product by its id.

Avoid usage of findById

Ids change whenever a package is reimported. So please avoid using ids whenever possible. Also delivering contents to users by id might make it possible for users to flip through the files (and by that see contents of others possibly) by changing the ids in requests.


var prod = products.findById(123);

Parameter int id


Finds a product by its name.


function main ()
  var path = request.path;
  //retrieve substring after last /
  var productName = path.substring(path.lastIndexOf("/") + 1);
  //retrieve product from db
  var product = products.findByName(productName);
  //check if the product was found and then store it in the request
  if (product !== null) {
    request.set("test.products.currentProduct", product);

Parameter string name

The name of the product