Site Menu

Miva Merchant API: How to Test if a Product is in a Category

The Miva Merchant API is a list of functions that you can use in store pages.

Have you ever wanted to find out if a product is in a particular category? Here's how you can do that using the ever so nifty Miva Merchant API.

by Scot Ranney

The Miva Merchant API has a set of functions that start with CategoryXProduct that deal with handling what categories products are assigned to.

If you want to quickly find out if a product is assigned to a category, use the

<mvt:do file="g.Module_Library_DB" name="l.success" value="CategoryXProduct_Load(cat_id, product_id, categoryxproduct var)" />

function.

The cat_id is the category id, product_id is the product id, and categoryxproduct is the structure the data will be loaded into if the product exists in the category.

For example, if you've loaded some product data into l.settings:product and some category data into l.settings:category, you could check to see if the product is in the category this way:

<mvt:do file="g.Module_Library_DB" name="l.success" value="CategoryXProduct_Load(l.settings:category:id, l.settings:product:id, l.settings:_catproduct)" />

Once you call this, you can check l.settings:_catproduct to see if the product was found in the category.

<mvt:if expr="l.settings:_catproduct:cat_id">
    do something here because the product was found in the category
<mvt:else>
    do something here because the product was not found in the category
</mvt:if>

If the product is found in the category, the l.settings:_catproduct structure will contain:

l._catproduct:cat_id
l._catproduct:product_id
l._catproduct:disp_order

What if you don't know the product or category id?

If you know the product code and the category code then use these category and product lookup via code functions. Put them above the CategoryXProduct_Load(...) function so the product and category data is available.

<mvt:assign name="l.product_code" value="'my_product_code'" />
<mvt:do file="g.Module_Library_DB" name="l.success" value="Product_Load_Code(l.product_code, l.settings:product)" />

<mvt:assign name="l.category_code" value="'my_category_code'" /> <mvt:do file="g.Module_Library_DB" name="l.success" value="Category_Load_Code(l.category_code, l.settings:category)" />

If you used a product code that exists in your store the product data will be in l.settings:product and the product id would be l.settings:product:id

Same thing goes for the category lookup.

Related Articles

These articles might be interesting for you as well:

This page might use cookies if your analytics vendor requires them.