Перейти к содержанию
Официальный форум поддержки Simpla

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


Рекомендуемые сообщения

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

Ссылка на сообщение
Поделиться на другие сайты

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

Ссылка на сообщение
Поделиться на другие сайты

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

Ссылка на сообщение
Поделиться на другие сайты

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

Ссылка на сообщение
Поделиться на другие сайты

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

Ссылка на сообщение
Поделиться на другие сайты
  • 3 недели спустя...

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

Ссылка на сообщение
Поделиться на другие сайты

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

Ссылка на сообщение
Поделиться на другие сайты

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

Ссылка на сообщение
Поделиться на другие сайты

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

{if $product->sklad==0}......... {else}..........{/if}
ну и от сюда можно плясать как хочешь)))
Ссылка на сообщение
Поделиться на другие сайты

РЕШЕНО

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

 

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

Ссылка на сообщение
Поделиться на другие сайты
  • 5 месяцев спустя...

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...