Пакетное изменение цен в Simpla

Пакетное изменение цен в Simpla

Открываем simpla/design/html/products.tpl и ищем

<option value="delete">Удалить</option>

после добавляем

<option value="change_price">Изменить цену</option>

далее ищем

<input id="apply_action" class="button_green" type="submit" value="Применить">

перед кодом добавляем

<span id="change_price" style="display: none;">
<select name="op_type"><option value="0">прибавить/отнять</option><option value="1">коэффициент</option></select> <input type="text" name="value" size="3" /> <label><input type="checkbox" name="save_old" value="1" title="сохранить старую цену" checked="checked" />сохранить старую цену</label>
</span>

ищем, перед

// Если есть варианты, отображать ссылку на их разворачивание

добавим

// Изменение цены
        $("#action select[name=action]").change(function() {
                if($(this).val() == 'change_price')
                        $("span#change_price").show();
                else
                        $("span#change_price").hide();
        });

далее ищем и перед

if($('select[name="action"]').val()=='delete' && !confirm('Подтвердите удаление'))

добавим

if($('select[name="action"]').val()=='change_price' && !confirm('Подтвердите изменение цены'))
return false;

Открываем файл simpla/ProductsAdmin.php и перед

case 'move_to_brand':

добавим

case 'change_price':
                {
                    $operation = $this->request->post('op_type', 'integer');
                    $save_old = $this->request->post('save_old', 'integer');
                    $value = floatval(str_replace(',','.',$this->request->post('value')));
 
                    foreach($this->variants->get_variants(array('product_id' => $ids)) as $variant)
                    {
                        $price = $variant->price;
                        $old_price = ($save_old == 1) ? $variant->price : $variant->compare_price;
                        if($operation == 0) $price = $price + $value;
                        elseif($operation == 1 && $value != 0) $price = $price * $value;
                        $this->variants->update_variant($variant->id, array('price'=>$price, 'compare_price'=>$old_price, 'stock'=>$stock));
                    }
                    break;
                }

Если необходимо отнять, то пишем, например, -100.
Вот и все.

                    case 'change_price':
                {
                    $operation = $this->request->post('op_type', 'integer');
                    $save_old = $this->request->post('save_old', 'integer');
                    $value = floatval(str_replace(',','.',$this->request->post('value')));
 
                    foreach($this->variants->get_variants(array('product_id' => $ids)) as $variant)
                    {
                        $price = $variant->price;
                        $base_price = $variant->base_price;
                        $stock = $variant->stock;
                        $old_price = ($save_old == 1) ? $variant->base_price : $variant->base_compare_price;
                        if($operation == 0){
                                   $new_base_price = $base_price + $value;
                                   $price = $new_base_price*($price/$base_price);
                              }elseif($operation == 1 && $value != 0){
                              $price = $price * $value;
                              $new_base_price = $base_price * $value;
                              }
                              $this->variants->update_variant($variant->id, array('price'=>$price, 'base_price'=>$new_base_price, 'base_compare_price'=>$old_price, 'stock'=>$stock));
                    }
                    break;
                }
Количество товара перед помещением в корзину. Simp... В шаблоны добавляем: шт. Для добавления Ajax обновления корзины заменяем в файле /js/ajax-cart.js data: {variant: variant}, на data: {v...
Скидка всем зарегистрированным пользователям... При регистрации в магазине пользователь получает скидку установленную вами. Создайте группу для зарегистрированных пользователей. П...
Добавление поле бренд и артикул в файл экспорта ya... Данный вид выгрузки позволяет лучше ассоциировать карточки товаров в Яндекс.Маркете. Находим в файле yandex.php строки $simpla->db...
Универсальный виджет get_products. Simpla CMS... Порой есть необходимость получить список товаров по какому-то определенному критерию, будь-то товары схожего бренда в карточке товаров, или новинки ко...
Читайте также  Выгружаем в Яндекс Маркет только первый вариант товара Simpla

Сохрани, чтобы не потерять