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


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

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

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

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));
}
Перейти к посту


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

#21 Sharfik

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

Опубликовано 28.12.2016 - 15:17

У меня небольшой прогресс, я выполнил запрос

ALTER TABLE `s_purchases` ADD `purchase_price` DECIMAL(14,2) NULL AFTER `sku`;

и создал в таблице purchases столбец с закупочной ценой, но он заполнен NULL. Подскажите пожалуйста как ему теперь передать существующие значения закупочной цены?



#22 mishanya

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

Опубликовано 28.12.2016 - 22:09

У меня небольшой прогресс, я выполнил запрос

ALTER TABLE `s_purchases` ADD `purchase_price` DECIMAL(14,2) NULL AFTER `sku`;

и создал в таблице purchases столбец с закупочной ценой, но он заполнен NULL. Подскажите пожалуйста как ему теперь передать существующие значения закупочной цены?

 

вам нужно при заказе передавать в эту цену в покупку. в файле api/Orders.php для ф-и add_purchase добавьте

 

if(!isset($purchase->purchase_price) && !empty($variant)) {
   $purchase->purchase_price = $variant->purchase_price;
}

тогда это поле будет заполняться но для новых заказов.


Изменено: mishanya, 28.12.2016 - 22:10


#23 Sharfik

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

Опубликовано 29.12.2016 - 15:14

Мишаня! БОЛЬШОЕ СПАСИБО!! Куда можно благодарность направить?



#24 kislotnik

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

Опубликовано 06.12.2017 - 01:30

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

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));
}

Подскажите как вывести это поле на странице корзины?



#25 mishanya

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

Опубликовано 06.12.2017 - 01:33

Подскажите как вывести это поле на странице корзины?

видимо $purchase->variant->purchase_price



#26 kislotnik

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

Опубликовано 06.12.2017 - 01:36

видимо $purchase->variant->purchase_price

Спасибо за оперативный ответ) Не подскажете как вывести в личный кабинет?)



#27 mishanya

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

Опубликовано 07.12.2017 - 13:50

Спасибо за оперативный ответ) Не подскажете как вывести в личный кабинет?)

 

а как там выводятся покупки?



#28 kislotnik

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

Опубликовано 07.12.2017 - 14:11

а как там выводятся покупки?



а как там выводятся покупки?

Прикрепленные файлы:



#29 mukszwei

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

Опубликовано 11.12.2017 - 01:44

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

 

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

 

Делал все по инструкции закрепленной и обновленной

Все равно удаляются все закупочные цены, если удалить товар или менять цены на общей странице товаров, где товары списком идут. Подскажите где искать ошибку?


Изменено: mukszwei, 11.12.2017 - 01:47


#30 mukszwei

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

Опубликовано 11.12.2017 - 12:00

Делал все по инструкции закрепленной и обновленной

Все равно удаляются все закупочные цены, если удалить товар или менять цены на общей странице товаров, где товары списком идут. Подскажите где искать ошибку?

Готов отблагодарить, если поможете исправить ошибку



#31 mishanya

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

Опубликовано 11.12.2017 - 12:52

Готов отблагодарить, если поможете исправить ошибку

 

напишите в личку. или тут код покажите


Изменено: mishanya, 11.12.2017 - 12:53


#32 mukszwei

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

Опубликовано 13.12.2017 - 13:56

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

напишите в личку. или тут код покажите

 

/simpla/ProductsAdmin.php 

	// Обработка действий 	
		if($this->request->method('post'))
		{
			// Сохранение цен и наличия
			$prices = $this->request->post('price');
			$purchase_prices = $this->request->post('purchase_price');
			$stocks = $this->request->post('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));
}
		
			// Сортировка
			$positions = $this->request->post('positions'); 		
				$ids = array_keys($positions);
			sort($positions);
			$positions = array_reverse($positions);
			foreach($positions as $i=>$position)
				$this->products->update_product($ids[$i], array('position'=>$position)); 
		

Кусок  /simpla/design/html/products.tpl

 

			 	<div class="variants">
			 	<ul>
				{foreach $product->variants as $variant}
				<li {if !$variant@first}class="variant" style="display:none;"{/if}>
					<i title="{$variant->name|escape}">{$variant->name|escape|truncate:30:'…':true:true}</i>
					<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; 
					<input class="price" type="text" name="purchase_price[{$variant->id}]" value="{$variant->purchase_price}" />{$currency->sign}
					{$variant->compare_price} {$currency->sign}"{/if} />{$currency->sign}  
					<input class="stock" type="text" name="stock[{$variant->id}]" value="{if $variant->infinity}∞{else}{$variant->stock}{/if}" />{$settings->units}
				</li>
				{/foreach}
				</ul> 

 

 

 

 

 

 



#33 mishanya

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

Опубликовано 13.12.2017 - 14:40

а они вообще выводяться изначально, в списке товаров? когда вбиваете в товаре. и заходите в список

 

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


Изменено: mishanya, 13.12.2017 - 14:41


#34 mukszwei

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

Опубликовано 14.12.2017 - 11:04

а они вообще выводяться изначально, в списке товаров? когда вбиваете в товаре. и заходите в список

 

Извиняюсь, пропустил строчку в продуктс.тпл

 

Все заиграло, заработало!)


Изменено: mukszwei, 14.12.2017 - 11:23






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

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

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