Задать скидку для нескольких товаров в Simpla

Интернет-магазинам требуется часто работать со скидками, делать распродажи на все товары или какой-то конкретный сегмент. В simpla можно работать с этим через csv файл, но это долго и неудобно.

Реализация скидки в админке.

В файле /simpla/ProductsAdmin.php добавим пару кейсов в switch($this->request->post(’action’)):


case 'add_discount':
{
    $discount = $this->request->post('discount', 'integer');
    
    if(!$discount) {
        break;
    }
    
    $discount = (100 - $discount) / 100;
    $query = $this->db->placehold("UPDATE __variants SET compare_price = price, price = (price * ?) WHERE product_id IN (?@) AND (compare_price IS NULL OR compare_price = 0)", $discount, $ids);
    $this->db->query($query);
    break;
}
case 'remove_discount':
{
    $query = $this->db->placehold("UPDATE __variants SET price = compare_price, compare_price = NULL WHERE product_id IN (?@) AND compare_price IS NOT NULL", $ids);
    $this->db->query($query);
    break;
}

В файле /simpla/design/html/products.tpl добавим:

<select name="action">
...
    <option value="add_discount">Задать скидку</option>
    <option value="remove_discount">Убрать скидку</option>
</select>

И поправим стили /simpla/design/css/style.css:


div#action span#move_to_page, div#action span#move_to_category, div#action span#move_to_brand, div#action span#add_discount{
    display:none;
}

2017   simpla   скидки
Популярное