Страница 1 из 1

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

Добавлено: 18.05.2017, 15:57
trainracing
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));
            }


Изображение

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

Добавлено: 13.09.2019, 14:33
trainracing
для версии 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>

Добавлено: 22.12.2020, 21:41
kvorum
А как вывести закупочную цену в заказе? для версии 2.3.4

UP. Сам спросил, сам сразу и разобрался:

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

$purchase->variant->rrc_ye