Закупочная цена в админке

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

trainracing M
Аватара
trainracing M
Возраст: 27
Репутация: 11
Сообщения: 112
Зарегистрирован: 07.10.2016
С нами: 3 года 2 месяца
Сайт

Сообщение #1 trainracing » 18.05.2017, 15:57

1. выполнить запрос к базе:

Код: Выделить всё

ALTER TABLE `s_variants` ADD `rrc_ye` DECIMAL(14,2) NULL AFTER `compare_price`;


затем в api/variants.php в функции get_variants() и get_variant() в запрос добавить поле v.rrc_ye примерно так:

Код: Выделить всё

$query = $this->db->placehold("SELECT
                v.id,
                v.product_id,
                v.price,
                NULLIF(v.compare_price, 0) as compare_price,
                v.sku,
                IFNULL(v.stock, ?) as stock,
                (v.stock IS NULL) as infinity,
                v.attachment,
                v.position,
                v.currency_id,
      v.rrc_ye,
                v.yandex,
                c.rate_from,
                c.rate_to,
                $lang_sql->fields


в backend/design/html/product.tpl после 561 добавим

Код: Выделить всё

<li class="variant_price">Закупочная</li>


чуть ниже в этом же файле после (строка ~595):

Код: Выделить всё

<li class="variant_discount">
                        <input name="variants[compare_price][]" type="text" value="{$variant->compare_price|escape}"/>
                    </li>


добавим:

Код: Выделить всё

<li class="variant_price">
<input name="variants[rrc_ye][]" type="text" value="{$variant->rrc_ye|escape}" />
</li>

ниже там же после (~строка 648):

Код: Выделить всё

<li class="variant_discount">
                <input name="variants[compare_price][]" type="" value=""/>
            </li>

добавим:

Код: Выделить всё

<li class="variant_price">
         <input name="variants[rrc_ye][]" type="" value="" />
         </li>


чтобы вывести закупочную цену на общую страницу товаров нужно в /backend/design/html/products.tpl после

Код: Выделить всё

<label data-vid="{$variant->id}" class="yandex_icon {if $variant->yandex}active{/if}"></label>


добавим

Код: Выделить всё

<input class="price" type="text" name="rrc_ye[{$variant->id}]" value="{$variant->rrc_ye}" />{$currency->sign}


ну и по желанию нзвание товара и бренд поместить над <div class="variants">


дальше в обработчик /backend/ProductsAdmin.php после 77

Код: Выделить всё

// Сохранение цен и наличия
            $prices = $this->request->post('price');

добавим:

Код: Выделить всё

$rrc_ye = $this->request->post('rrc_ye');


в этом же файле ниже фукцию (строка 82):

Код: Выделить всё

 foreach($prices as $id=>$price) {
                $stock = $stocks[$id];
                if($stock == '∞' || $stock == '') {
                    $stock = null;
                }
                $this->variants->update_variant($id, array('price'=>$price, 'stock'=>$stock));
            }


заменить на :

Код: Выделить всё

foreach($prices as $id=>$price) {
                $stock = $stocks[$id];
            $p_rrc = $rrc_ye[$id];
                if($stock == '∞' || $stock == '') {
                    $stock = null;
                }
                $this->variants->update_variant($id, array('price'=>$price, 'rrc_ye'=>$p_rrc, 'stock'=>$stock));
            }


Изображение
Последний раз редактировалось trainracing 22.05.2017, 09:59, всего редактировалось 1 раз.

korshunov
korshunov
Репутация: 89
Сообщения: 1098
Зарегистрирован: 03.12.2015
С нами: 4 года
Skype

Сообщение #2 korshunov » 19.05.2017, 06:14

В первом фрагменте для замены - ошибка в строке:
v.rrc_ye,

trainracing M
Аватара
trainracing M
Возраст: 27
Репутация: 11
Сообщения: 112
Зарегистрирован: 07.10.2016
С нами: 3 года 2 месяца
Сайт

Сообщение #3 trainracing » 13.09.2019, 14:33

для версии 2.3.4 выполнить пункт 1 и 2, а в product так:

найти

Код: Выделить всё

<div class="okay_list_boding variants_item_price">
                                            <div class="heading_label">{$btr->general_price|escape}</div>
                                            <input class="variant_input" name="variants[price][]" type="text" value="{$variant->price|escape}"/>
                                        </div>


и выше вставить

Код: Выделить всё

<div class="okay_list_boding variants_item_price">
                                            <div class="heading_label">Закупка, руб</div>
                                            <input class="variant_input" name="variants[rrc_ye][]" type="text" value="{$variant->rrc_ye|escape}"/>
                                        </div>


в products.tpl
добавить где-то 133 строка:
<div class="okay_list_heading okay_list_price">Закупка, руб</div>

и ниже где-то 188 строка вставить:

Код: Выделить всё

<div class="okay_list_boding okay_list_price">
                                            <div class="input-group">
                                                <input class="form-control" type="text" name="rrc_ye[{$product->variants[0]->id}]" value="{$product->variants[0]->rrc_ye}">
                                                <span class="input-group-addon">
                                                      {if isset($currencies[$product->variants[0]->currency_id])}
                                                          {$currencies[$product->variants[0]->currency_id]->code|escape}
                                                      {/if}
                                                </span>
                                            </div>
                                        </div>


Название раздела: Полезные решения для OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Полезные решения для OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 1 гость