Пакетное изменение цен в 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;
                }
Указываем телефон в настройках Simpla... Намного удобнее указывать телефон только в одном месте, ведь если номер поменяется — удобнее поменять только в настройках в админке, че...
CSS Styling Radio Button and Checkboxes The idea is simple. We want to change the look and feel of existing radio buttons into more of a push button. The above image pretty much t...
Несколько полезностей для Simpla 2.x... Переносим выбор варианта оплаты на первую страницу оформления заказа Автоматически создаваемый артикул как ID товара Выбор количества товара перед п...
Добавление поле бренд и артикул в файл экспорта ya... Данный вид выгрузки позволяет лучше ассоциировать карточки товаров в Яндекс.Маркете. Находим в файле yandex.php строки $simpla->db...
Читайте также  Скидка всем зарегистрированным пользователям

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