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


Фото
* * * * - 4 голосов

Товары под заказ


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

#41 eXtatic

eXtatic
  • Пользователь
  • 60 сообщений
  • Откуда:Архангельск

Опубликовано 05.02.2014 - 08:45

Проблему решил самостоятельно!



#42 m0nster

m0nster
  • Пользователь
  • 1 сообщений
  • Версия CMS:2.x

Опубликовано 02.08.2014 - 19:01

Поделись как...



#43 tsybart

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

Опубликовано 01.10.2014 - 21:32

кто подскажет как сделать сортировку "в наличии", что бы все что с галочкой предзаказ, опускались вниз или просто убирались?



#44 tsybart

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

Опубликовано 01.10.2014 - 22:13

Сделал так:

 

case 'stock':
$order = '(SELECT pv.pod_zakaz FROM __variants pv WHERE (pv.pod_zakaz IS NULL OR pv.pod_zakaz>0) AND p.id = pv.product_id AND pv.position=(SELECT MIN(position) FROM __variants WHERE (pod_zakaz>0 OR pod_zakaz IS NULL) AND product_id=p.id LIMIT 1) LIMIT 1)';
break;

 

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



#45 tsybart

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

Опубликовано 19.10.2014 - 15:02

кто-то разобрался с вариантами под заказ?



#46 SELECONICS

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

Опубликовано 30.03.2015 - 11:52

а кто подскажет, с какого то времени, начался минус переделки, при добавлении нового товара, либо редактировании старого, автоматом ставится галочка "Под заказ", приходится через редактирование БД ставить параметр "pod_zakaz" с 1 на 0.
В БД вот такие параметры:

pod_zakaz    tinyint(1)            Да    NULL 

Как переделать возможность на ручную установку параметра.



#47 AlexanderKi

AlexanderKi
  • Пользователь
  • 103 сообщений
  • Пользователь
  • Версия CMS:2.x

Опубликовано 26.05.2015 - 15:03

Тема заглохла?



#48 Rash

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

Опубликовано 26.05.2015 - 15:59

а кто подскажет, с какого то времени, начался минус переделки, при добавлении нового товара, либо редактировании старого, автоматом ставится галочка "Под заказ", приходится через редактирование БД ставить параметр "pod_zakaz" с 1 на 0.
В БД вот такие параметры:

pod_zakaz    tinyint(1)            Да    NULL 

Как переделать возможность на ручную установку параметра.

 

Установить в строке "pod_zakaz" параметр "По умолчанию: Нет"



#49 ooeirtj

ooeirtj
  • Пользователь
  • 2 сообщений
  • Пользователь
  • Откуда:уфа

Опубликовано 12.07.2016 - 12:08

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

Помогла данная тема, поэтому и решил сюда написать, так как многие читающие эту тему ищут способ реализации функции покупки товара которого нет на складе, т.е. количество = 0.

 

первое нужно удалить проверку на наличие на складе ('in_stock'=>true), чтобы мы могли видеть стоимость при нулевом количестве

 

 

меняем в файле   ~/view/ProductView.php (у меня строка 25)

//меняем
   foreach($this->variants->get_variants(array('product_id'=>$product->id, 'in_stock'=>true)) as $v)

//на
    foreach($this->variants->get_variants(array('product_id'=>$product->id)) as $v)

 

далее по аналогии меняем в файле   ~/view/ProductsView.php  (у меня строка 150)

 

// меняем
$variants = $this->variants->get_variants(array('product_id'=>$products_ids,   'in_stock'=>true));

//на
$variants = $this->variants->get_variants(array('product_id'=>$products_ids));

 

 файл view/View.php

 

в трех местах строки у меня : 188, 234, 279

// Выбираем варианты товаров
$variants = $this->variants->get_variants(array('product_id'=>$products_ids, 'in_stock'=>true));

//на 
$variants = $this->variants->get_variants(array('product_id'=>$products_ids));

 

Далее нам нужно подредактировать взаимодействие с корзиной ~/api/Cart.php

 

функция add_item  у меня срока 110

функция update_item у меня строка 135

 

в обоих случаем меняем условие

if(!empty($variant && ($variant->stock>0) )
{
	$amount = min($amount, $variant->stock);	     
	$_SESSION['shopping_cart'][$variant_id] = intval($amount); 
}

на

if(!empty($variant))
{
	$_SESSION['shopping_cart'][$variant_id] = intval($amount); 
}

 

Далее необходимо подредактировать ваши файлы шаблонов  product.tpl, products.tpl,  cart.tpl и при необходимости главную страницу main.tpl. далее покажу как это реализовал я.

 

product.tpl, products.tpl

 

было:

 <!-- Выбор варианта товара -->
{if $product->variants|count > 0}
    
  {foreach $product->variants as $v}
    <form class="variants" action="/cart">        
   
    {if $v->name}<label class="variant_name">{$v->name}</label>{/if}
    <
    <input type="submit" class="button" value="ЗАКАЗАТЬ" data-result-text="В КОРЗИНЕ"/>  
    </form>
 
{else}
        нет в наличии     
   {/foreach}
{/if}
<!-- Выбор варианта товара (The End) -->

 

стало:

 <!-- Выбор варианта товара -->
{if $product->variants|count > 0}
	
        {foreach $product->variants as $v}
	<form class="variants" action="/cart">
		
		
	{if $v->name}<label class="variant_name">{$v->name}</label>{/if}
	
        {if $v->stock == 0}
	<input type="submit" class="button" value="ЗАКАЗАТЬ" data-result-text="В КОРЗИНЕ"/>
	{else}
	<input type="submit" class="button" value="КУПИТЬ" data-result-text="В КОРЗИНЕ"/>
	{/if}	
	</form>
	
        
	{if $v->stock < 4 && $v->stock > 0}
	Осталость  {$v->stock} шт.
        {else if $v->stock > 3}
        В наличии
        {else}
        под заказ
 	{/if}
	{/foreach}
{/if}
<!-- Выбор варианта товара (The End) -->

 

 

Теперь файл Cart.tpl

 

вывод количества

было:


{* Количество *}

	<table class="pokupka">
	<tr>
		<td>
		<select name="amounts[{$purchase->variant->id}]" onchange="document.cart.submit();">
			{section name=amounts start=1 loop=$purchase->variant->stock+1 step=1}
<option value="{$smarty.section.amounts.index}" {if $purchase->amount==$smarty.section.amounts.index}selected{/if}>{$smarty.section.amounts.index} {$settings->units}</option>
			{/section}
		</select>
		</td>
	</tr>
	</table>        

стало:


{* Количество *}
{if $purchase->variant->stock != 0}
	<table class="pokupka">
	<tr>
		<td>
		<select name="amounts[{$purchase->variant->id}]" onchange="document.cart.submit();">
			{section name=amounts start=1 loop=$purchase->variant->stock+1 step=1}
<option value="{$smarty.section.amounts.index}" {if $purchase->amount==$smarty.section.amounts.index}selected{/if}>{$smarty.section.amounts.index} {$settings->units}</option>
			{/section}
		</select>
		</td>
	</tr>
	</table> 
       
{else}
<table class="pokupka">
	<tr>

<td>  
<input placeholder='{$purchase->amount}' type="text" name="amounts[{$purchase->variant->id}]" 
value="{$purchase->amount}" class="input_name" onchange="document.cart.submit();">
       
 </td>
</tr>
</table> 

{/if} 

 

и еще поменял отображение название продукта

 

было:


<a href="products/{$purchase->product->url}">{$purchase->product->name|escape}</a> 

стало:

{if $purchase->variant->stock != 0}
    <a href="products/{$purchase->product->url}">  {$purchase->product->name|escape}</a> 
{else}
    <a href="products/{$purchase->product->url}">{$purchase->product->name|escape}</a> <font color="#dd3f20">[ ПОД ЗАКАЗ ]</font>
{/if}

ВОТ НАВЕРНОЕ ПОЖАЛУЙ И ВСЕ

если есть вопросы пишите

http://viaeco.ru/

вот мой сайт где эта функция реализована.

при заказа товара которого нет на складе, в админке стоит уведомление, что товара нет на складе.

если нужны будут пояснения, пишити либо тут либо на сайте в разделе контакты в форме обратная связь.

версия симплы 2.1.4 вроде



#50 Breedzel

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

Опубликовано 13.09.2018 - 10:04

Добрый день.

Помогите опустить все товары под заказ вниз списка в каталоге.

Разница лишь в том, что я использую привязку не к варианту, а к продукту, т.е. product->pod_zakaz






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

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