Задать скидку для нескольких товаров в 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;
}