Перейти к содержимому


Фото
* * * * * 1 голосов

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

Дилерская закупочная ррц товар карточка в админке

Best Answer mishanya , 28.05.2015 - 19:55

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

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

 

 затем в api/variants.php в функции get_variants() и get_variant() в запрос добавить поле v.purchase_price примерно так:
$query = $this->db->placehold("SELECT v.id, v.product_id , v.price, v.compare_price, v.purchase_price, ...

в /simpla/design/html/product.tpl после (строка ~572):

<li class="variant_discount">Старая, {$currency->sign}</li>

добавим в названия закупочную цену:

<li class="variant_price">Закупочная, {$currency->sign}</li>	

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

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

добавим нашу закупочную цену для существующего варианта товара:

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

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

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

добавим закупочную цену для нового варианта (когда нажимаем на добавить вариант):

 

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

чтобы вывести закупочную цену на общую страницу товаров нужно в /simpla/design/html/products.tpl после (~81 строка):

<input class="price {if $variant->compare_price>0}compare_price{/if}" type="text" name="price[{$variant->id}]" value="{$variant->price}" {if $variant->compare_price>0}title="Старая цена &mdash; {$variant->compare_price} {$currency->sign}"{/if} />{$currency->sign}  

вывести поле для закупочной цены каждого варианта:

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

дальше в обработчик /simpla/ProductsAdmin.php после (~строка 65):

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

добавить:

$purchase_prices = $this->request->post('purchase_price');

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

            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_price = $purchase_prices[$id];
	if($stock == '∞' || $stock == '')
		$stock = null;
	$this->variants->update_variant($id, array('price'=>$price, 'purchase_price'=>$p_price, 'stock'=>$stock));
}
Перейти к посту


  • Чтобы отвечать, сперва войдите на форум
30 ответов в теме

#1 trainracing

trainracing
  • Пользователь
  • 175 сообщений
  • Дизайн, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 27.05.2015 - 14:16

Видно только админу, вводим цену закупки, можно с текстом, сохраняем, и все ок. Иногда полезно, чтоб не искать в 1с постоянно

 

Приступим:

Выполняем запрос в БД

ALTER TABLE `s_products` ADD `zakupka` varchar(50) DEFAULT NULL

в /simpla/ProductAdmin.php ищем строчку 

$product->featured = $this->request->post('featured') 

и вставляете после нее 

$product->zakupka = $this->request->post('zakupka');

в /simpla/design/html/product.tpl ищите строка 610:

<!-- Левая колонка свойств товара -->
        <div id="column_left">

И ниже вставляете:

<!-- закупочная цена -->
        <div class="block layer">
                
                <ul>
                <li><div class="page_url" style="width: 83px;">ЗАКУПКА, {$currency->sign}</div><input class="name simpla_inp" name=zakupka type="text" value="{$product->zakupka|escape}" style="width: 100px;"/> </li>
                </ul>
        </div>
<!-- закупочная цена (The End)-->

 

в /api/products.php добавляем в функцию get_product (строка 112) ищем:

$query = "SELECT  
                                        p.id,
                                        p.url,

и после p.url, ниже вставляем:

 

p.zakupka,

 

Аналогично в этом же файле после строки 238. Готово

 

f13788.png



#2 mishanya

mishanya
  • Фрилансер
  • 2 434 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 27.05.2015 - 19:12

круто, только вы сделали просто дополнительное поле для товара, в которое можно вписать что угодно.

 

только если у вас 2 и больше вариантов товара с разными ценами? цены лучше прикреплять к вариантам как это сделано в симпла с ценой и скидочной ценой



#3 trainracing

trainracing
  • Пользователь
  • 175 сообщений
  • Дизайн, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 28.05.2015 - 13:25

круто, только вы сделали просто дополнительное поле для товара, в которое можно вписать что угодно.

 

только если у вас 2 и больше вариантов товара с разными ценами? цены лучше прикреплять к вариантам как это сделано в симпла с ценой и скидочной ценой

 Я не программист, и не разбираюсь в php/mysql  как вы. Знаю только слегка примерно что куда.



#4 aleksoid

aleksoid
  • Пользователь
  • 1 сообщений
  • Пользователь

Опубликовано 28.05.2015 - 18:19

А есть мысли, как это реализовать для вариантов товаров? и чтобы на общей странице продуктов редактировалось?



#5 mishanya

mishanya
  • Фрилансер
  • 2 434 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 28.05.2015 - 19:55   Best Answer

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

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

 

 затем в api/variants.php в функции get_variants() и get_variant() в запрос добавить поле v.purchase_price примерно так:
$query = $this->db->placehold("SELECT v.id, v.product_id , v.price, v.compare_price, v.purchase_price, ...

в /simpla/design/html/product.tpl после (строка ~572):

<li class="variant_discount">Старая, {$currency->sign}</li>

добавим в названия закупочную цену:

<li class="variant_price">Закупочная, {$currency->sign}</li>	

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

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

добавим нашу закупочную цену для существующего варианта товара:

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

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

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

добавим закупочную цену для нового варианта (когда нажимаем на добавить вариант):

 

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

чтобы вывести закупочную цену на общую страницу товаров нужно в /simpla/design/html/products.tpl после (~81 строка):

<input class="price {if $variant->compare_price>0}compare_price{/if}" type="text" name="price[{$variant->id}]" value="{$variant->price}" {if $variant->compare_price>0}title="Старая цена &mdash; {$variant->compare_price} {$currency->sign}"{/if} />{$currency->sign}  

вывести поле для закупочной цены каждого варианта:

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

дальше в обработчик /simpla/ProductsAdmin.php после (~строка 65):

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

добавить:

$purchase_prices = $this->request->post('purchase_price');

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

            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_price = $purchase_prices[$id];
	if($stock == '∞' || $stock == '')
		$stock = null;
	$this->variants->update_variant($id, array('price'=>$price, 'purchase_price'=>$p_price, 'stock'=>$stock));
}

Изменено: mishanya, 04.07.2015 - 09:39


#6 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 28.05.2015 - 21:50

И хорошо бы новые поля обрабатывать в экспорте-импорте...



#7 mishanya

mishanya
  • Фрилансер
  • 2 434 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 29.05.2015 - 14:05

И хорошо бы новые поля обрабатывать в экспорте-импорте...

 

 

для експорта открыть файл simpla/ajax/export.php и после (строка 16)

'compare_price'=>    'Старая цена',

добавить:

'purchase_price'=>    'Закупочная цена',

далее после (строка 128):

$v['compare_price']   = $variant->compare_price;

добавить

$v['purchase_price']   = $variant->purchase_price;

 

 

для импорта открыть файл simpla/ajax/import.php и после (строка 18)

'compare_price'=>    array('compare price', 'старая цена'),

добавить

'purchase_price'=>    array('purchase price', 'закупочная цена'),

после (строка 189)

		if(isset($item['compare_price']))
			$variant['compare_price'] = trim($item['compare_price']);

добавить

		if(isset($item['purchase_price']))
			$variant['purchase_price'] = trim($item['purchase_price']);

все.


Изменено: mishanya, 04.07.2015 - 09:34


#8 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 29.05.2015 - 14:12

все.

Несколько самоуверенно.

Еще можно было бы в комментарий на странице импорта вывести новое поле...

#9 chubr

chubr
  • Пользователь
  • 73 сообщений
  • Заказчик
  • Версия CMS:2.x
  • Откуда:Псков

Опубликовано 16.06.2015 - 22:21

подскажите, это с 1С будет выгружаться?



#10 shooroop

shooroop
  • Фрилансер
  • 547 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x
  • Откуда:Antarktida

Опубликовано 16.06.2015 - 23:15

подскажите, это с 1С будет выгружаться?

 

выгружаться будет если вы настроите и добавите в обработчик 1c_exchange.php  а так нет



#11 Tshcheglov

Tshcheglov
  • Пользователь
  • 14 сообщений
  • Дизайн, Заказчик
  • Версия CMS:2.x

Опубликовано 03.07.2015 - 19:16

Приветствую mishanya  !

 

делал все по написанному  - но есть проблема

 

если на общей странице товаров  поменять закупочную цену , то товар сохраняется , но закупочная цена при этом просто удаляется

 причем из всех товаров сразу

 



#12 Tshcheglov

Tshcheglov
  • Пользователь
  • 14 сообщений
  • Дизайн, Заказчик
  • Версия CMS:2.x

Опубликовано 03.07.2015 - 19:28

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

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

 

 затем в api/variants.php в функции get_variants() и get_variant() в запрос добавить поле v.purchase_price примерно так:
$query = $this->db->placehold("SELECT v.id, v.product_id , v.price, v.compare_price, v.purchase_price, ...

в /simpla/design/html/product.tpl после (строка ~572):

<li class="variant_discount">Старая, {$currency->sign}</li>

добавим в названия закупочную цену:

<li class="variant_price">Закупочная, {$currency->sign}</li>	

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

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

добавим нашу закупочную цену для существующего варианта товара:

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

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

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

добавим закупочную цену для нового варианта (когда нажимаем на добавить вариант):

 

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

чтобы вывести закупочную цену на общую страницу товаров нужно в /simpla/design/html/products.tpl после (~81 строка):

<input class="price {if $variant->compare_price>0}compare_price{/if}" type="text" name="price[{$variant->id}]" value="{$variant->price}" {if $variant->compare_price>0}title="Старая цена &mdash; {$variant->compare_price} {$currency->sign}"{/if} />{$currency->sign}  

вывести поле для закупочной цены каждого варианта:

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

дальше в обработчик /simpla/ProductsAdmin.php после (~строка 65):

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

добавить:

$purchase_prices = $this->request->post('purchase_price');

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

            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_price = $purchase_price[$id];
	if($stock == '∞' || $stock == '')
		$stock = null;
	$this->variants->update_variant($id, array('price'=>$price, 'purchase_price'=>$p_price, 'stock'=>$stock));
}

Приветствую mishanya  !

посмотрите?   я проблемку выше описал 



#13 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 03.07.2015 - 19:34

Проблемка возникает из-за того, что в предпоследней инструкции используется переменная $purchase_prices, а в последней - ДРУГАЯ переменная $purchase_price.  А должны быть одинаковые имена...



#14 LUN

LUN
  • Пользователь
  • 156 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Екатеринбург

Опубликовано 03.07.2015 - 20:58

Круто, а можно сделать еще дополнительное поле, для поставщика? чтобы там отображалось название например ООО "Козявка"



#15 mishanya

mishanya
  • Фрилансер
  • 2 434 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 04.07.2015 - 09:41

Круто, а можно сделать еще дополнительное поле, для поставщика? чтобы там отображалось название например ООО "Козявка"

это нужно делать для товара, как выбор бренда, как по мне.

 

Проблемка возникает из-за того, что в предпоследней инструкции используется переменная $purchase_prices, а в последней - ДРУГАЯ переменная $purchase_price.  А должны быть одинаковые имена...

обновил, спасибо!



#16 Tshcheglov

Tshcheglov
  • Пользователь
  • 14 сообщений
  • Дизайн, Заказчик
  • Версия CMS:2.x

Опубликовано 06.07.2015 - 12:13

Вот спасибо !

теперь всё отлично 



#17 Sharfik

Sharfik
  • Пользователь
  • 51 сообщений

Опубликовано 12.12.2016 - 19:36

для експорта открыть файл simpla/ajax/export.php и после (строка 16)

'compare_price'=>    'Старая цена',

добавить:

'purchase_price'=>    'Закупочная цена',

далее после (строка 128):

$v['compare_price']   = $variant->compare_price;

добавить

$v['purchase_price']   = $variant->purchase_price;

 

 

для импорта открыть файл simpla/ajax/import.php и после (строка 18)

'compare_price'=>    array('compare price', 'старая цена'),

добавить

'purchase_price'=>    array('purchase price', 'закупочная цена'),

после (строка 189)

		if(isset($item['compare_price']))
			$variant['compare_price'] = trim($item['compare_price']);

добавить

		if(isset($item['purchase_price']))
			$variant['purchase_price'] = trim($item['purchase_price']);

все.

 

Мишаня, большое спасибо за вашу работу! Отличное исполнение



#18 Sharfik

Sharfik
  • Пользователь
  • 51 сообщений

Опубликовано 24.12.2016 - 14:36

А можно ли добавить закупочную цену в таблицу s_purchases при выгрузке базы данных?



#19 mishanya

mishanya
  • Фрилансер
  • 2 434 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 24.12.2016 - 20:47

А можно ли добавить закупочную цену в таблицу s_purchases при выгрузке базы данных?

 

что значит добавить при выгрузке бызы? можно передавать закупочную цену при оформлении заказа в покупки.



#20 Sharfik

Sharfik
  • Пользователь
  • 51 сообщений

Опубликовано 24.12.2016 - 23:38

я веду статистику в экселе путем выгрузки базы phpmyadmin таблицы purchases. В этой таблице есть номера заказов, товары, цены, шт и артикул. Было бы очень здорово в эту таблицу добавить закупочную цену







Также с меткой «Дилерская, закупочная, ррц, товар, карточка в админке»

0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых