Jump to content

Вывод наличия и отсутствия товара


Recommended Posts

Подскажите пожалуйста как это можно сделать. Само собой если товаров больше 0 то выводится "Есть в наличии" и наоборот это можно сделать по средствам обыкновенного if и else а вот как найти переменную отвечающую за количество товаров и как ее вывести не очень понимаю помогите с кодом пожалуйста.

Link to post
Share on other sites

У товара есть варианты. Логично что "нет в наличии" стоит светить в том случае, если всех вариантов товара нет в этом самом наличии.

Link to post
Share on other sites

Тут не совсем согласен, многие торгуют товарами из Китая, например... И одно дело, если товар лежит на складе, а если его привезут в течении 3х недель - это совсем другое... Делал подобное с тремя вариантами: В наличии, Под заказ и Ожидается

Link to post
Share on other sites

В базе поле, вывод в шаблон, из админки сохранение... Это все к продукту, а не к варианту. Подробных инструкций писать не умею и не хочу)) Если есть знания - то этого хватит, если нет - то лучше не лезть никуда, а кому-то заплатить... Если есть нулленая Симпла и жедание ни за что не платить - ПХП, Мускуль, Смарти и ХТМЛ
Или ПРесташоп вам в руки))) Или Мадженто, или ОсКоммерц, они бесплатные)))

Link to post
Share on other sites

Это делается в шаблоне. Если на складе не 0 товаров, то отображается "цена 8000, добавить в корзину", если же 0, то отображается "нет в наличии, под заказ, предварительный заказ и т.д"

Link to post
Share on other sites
  • 3 weeks later...

kors гениально. А теперь попробуй не изобретая велосипед отправь запрос в симпле из твоего примера?

Link to post
Share on other sites

Тут скорее предложение нежели вопрос. Приведите пример sql запроса применительно к simpl'е, это будет куда более полезно в данном случае.

Link to post
Share on other sites

Danya У Меня получилось через чекбокс, стучись в личку.
p.s. У Тебя не получалось, потому, что через селект не так всё просто.

Link to post
Share on other sites

Может и проще. Но то что придумал Danya намного интереснее и функциональнее.
Я реализовал так:
В админке посредством чекбокса (аналогично "Активен и Рекомендуемый") добавил "На складе". Что в БД передаёт значение 1 или 0 для поля sklad в таблице s_products.
Потом в шаблоне

{if $product->sklad==0}......... {else}..........{/if}
ну и от сюда можно плясать как хочешь)))
Link to post
Share on other sites

РЕШЕНО

1. Добавляем поле sklad в таблицу s_products в базе с парамметрами: Тип - TINYINT; Длина/значения - 1; Null - галочка

ALTER TABLE `s_products` ADD `sklad` TINYINT( 1 ) NULL DEFAULT NULL AFTER `visible`
 

2. simpla/design/html/product.tpl

<div class="checkbox">
<input name=sklad value='1' type="checkbox" id="sklad_checkbox" {if $product->sklad}checked{/if}/> <label for="sklad_checkbox">Cклад</label>
</div>
 

3. simpla/ProductAdmin.php


в функции 

if($this->request->method('post') && !empty($_POST))
 

добавить:

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


4. api/Products.php в 110 строке добавить:

p.sklad,
 

 и эту же строчку ниже в коде

5. в файле simpla/design/html/products.tpl

в место:

<div id="list">
{foreach $products as $product}
<div class="{if !$product->visible}invisible{/if} {if $product->hit}hit{/if} row">
<input type="hidden" name="positions[{$product->id}]" value="{$product->position}">
<div class="move cell"><div class="move_zone"></div></div>
 

добавить:

<div id="list">
{foreach $products as $product}
<div class="{if !$product->visible}invisible{/if} {if $product->hit}hit{/if} {if $product->sklad}sklad{/if} row">
<input type="hidden" name="positions[{$product->id}]" value="{$product->position}">
<div class="move cell"><div class="move_zone"></div></div>
 

в 

<div class="icons cell">
 

добавить: 

<a class="sklad" title="На складе" href="#"></a>
 

в 

<span id="select">
 

добавить: 

<option value="set_sklad">Есть на складе</option>
<option value="unset_sklad">Нет на складе</option>
 

в самом низу в скриптах добавить:

// Наличие
$("a.sklad").click(function() {
var icon = $(this);
var line = icon.closest("div.row");
var id = line.find('input[type="checkbox"][name*="check"]').val();
var state = line.hasClass('sklad')?0:1;
icon.addClass('loading_icon');
$.ajax({
type: 'POST',
url: 'ajax/update_object.php',
data: {'object': 'product', 'id': id, 'values': {'sklad': state}, 'session_id': '{/literal}{$smarty.session.id}{literal}'},
success: function(data){
icon.removeClass('loading_icon');
if(state)
line.addClass('sklad');
else
line.removeClass('sklad');
},
dataType: 'json'
});
return false;
});

 

6. в файле simpla/ProductsAdmin.php добавить в 104 строке:

case 'set_sklad':
{
$this->products->update_product($ids, array('sklad'=>1));
break;
}
case 'unset_sklad':
{
$this->products->update_product($ids, array('sklad'=>0));
break;
}
 

7. в файле simpla/design/css

.icons a.sklad { background-image: url(../images/sklad_grey.png); } #list .sklad a.sklad { background-image: url(../images/sklad.png); }  

 

Обязательно после вставки кода, проверяйте и удаляете знак \ перед "

Link to post
Share on other sites
  • 5 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...