Additional prices, depending on the selected number of goods.
1 464
Автор дополнения
1 464
Usually answers within a few days
Version 1.2.3-beta2
Release date 07.25.2019
Downloads 307
Views 1 673
Warning! This component requires PHP version 5.6 or higher! If your site uses PHP less than required, the installation of this package could break it.
Warning! This package requires MODX not less than 2.3 !
Additional prices, depending on the selected number of goods.

Can work with msDiscount.

To work with msOptionsPrice2 in the msSalePrice plugin, you need to turn on the msopOnAfterGetCost event.

Upgrade to v.1.2.0

There was completely rewritten JS frontend and some supplement methods.

New version of msSalePrice requires miniShop2 version no lower than 2.4 !

When updating, you need to change the classes in the product card and on the shopping cart page.

Wholesale prices

On the product page, the «Wholesale prices» tab is available. You can create / change the quantity / price of the product settings.

To generate prices for different users groups, you need to add the required groups in the mssaleprice_user_groups parameter in the system settings. New tabs will appear on the product edit page

Version 1.2.3-beta adds the ability to specify wholesale prices directly in product modifications msOptionsPrice

msSalePrice.initialize snippet

Designed for connection of scripts and styles on a site. You must run the snippet in the product template, catalog, or cart.


msSalePrice snippet

Designed to output possible wholesale product prices. Does not show prices with modifications… You need to call a snippet


The default script tracks the change in the product form and loads the relevant prices, depending on the amount selected. To run the script, add the following classes

  • Goods form — mssaleprice_form
  • Goods price — mssaleprice-cost
  • The old goods price — mssaleprice-old-cost

        <form class="form-horizontal ms2_form mssaleprice_form" method="post">
            <div class="form-group">
                <label class="col-md-2 control-label">[[%ms2_product_price]]:</label>
                <div class="col-md-10 form-control-static">
                    <span class="mssaleprice-cost"><span>[[+price]]</span></span> [[%ms2_frontend_currency]]
                    <span class="old_price mssaleprice-old-cost" [[+old_price:gt=`0`:else=`style="display:none"`]]><span>[[+old_price]]</span> [[%ms2_frontend_currency]]</span>
            <div class="form-group form-inline">
                <label class="col-md-2 control-label" for="product_price">[[%ms2_cart_count]]:</label>

To change the price in the cart, add a call to the msSalePrice.initalize snippet

<div id="msCart">
    {if !count($products)}
        {'ms2_cart_is_empty' | lexicon}
        {foreach $products as $product}
          <tr id="{$product.key}">
                        <td class="price">
                            <span class="mssaleprice-cost"><span>{$product.price}</span> {'ms2_frontend_currency' | lexicon}</span>
                            <span class="mssaleprice-old-cost old_price" {$product.old_price ? '' : 'style="display:none"'}><span>{$product.old_price}</span> {'ms2_frontend_currency' | lexicon}</span>


  • Fixed calculate msop price


  • Added prices for msOptionsPrice


  • Fixed class msSalePrice
  • Added plugin for event msOnGetStatusCart, OnDocFormSave
  • Fixed plugin msOnChangeInCart
  • Fixed /web/default.js
  • Added property 'without_options' for Product


  • Added wholesale prices for the catalog
  • Fixed class msSalePrice
  • Fixed snippet msSalePrice


  • Fixed plugin for event OnHandleRequest
  • Fixed /web/default.js


  • Fixed /web/default.js


  • Fixed class msSalePrice
  • Completely changing the file /web/default.js
  • Fixed snippet msSalePrice
  • Fixed snippet msSalePrice.initialize
  • Added plugin for event OnHandleRequest
  • Remove processors in WEB