Перейти к содержанию
sys

[Запрос] Сделать кол-во товара списком ?

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

Как сделать,что бы кол-во товара указывалось не текстовым полем, а выпадающим списком?А также иметь возможность, регулировать шаг кол-ва в заказе в каждой товарной позиции, при чем шаг, как четный, таки не четный (т.е 2,4,6 или 2,3,4,6,8, 12+)

Поделиться сообщением


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

Открыть,

catalogviewthemedefaulttemplateproductproduct.tpl

Найти:

<input type="text" name="quantity" size="3" value="1" />

Заменить на:

<select name="quantity"><? $limit = 10; // лимит списка$step = 1; // шаг - через сколько$first = 0; // первоначальное значениеfor ($i = $first; $i < $limit; $i++, $i=$i+$step ) { ?>    <option value="<?=$i?>"><?=$i?></option><? } ?></select>

Поделиться сообщением


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

Спасибо, вот что значит человек рубит :(Но, если я хочу создать более универсальное решение.К примеру менять для каждого товара шаг в кол-ве?С простым приращением понятно 2,3,4А если сначала идет 2,3,4, а потом 6,8,10, к примеру ?

Поделиться сообщением


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

Но, если я хочу создать более универсальное решение.К примеру менять для каждого товара шаг в кол-ве?

Это можно сделать, но нужно уже более глубокое вмешательство в код движка.С простым приращением понятно 2,3,4

А если сначала идет 2,3,4, а потом 6,8,10, к примеру ?

Можно сделать несколько циклов - и в каждом из них менять шаг

Поделиться сообщением


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

Открыть, catalogviewthemedefaulttemplateproductproduct.tplНайти:

<input type="text" name="quantity" size="3" value="1" />
Заменить на:
<select name="quantity"><? $limit = 10; // лимит списка$step = 1; // шаг - через сколько$first = 0; // первоначальное значениеfor ($i = $first; $i < $limit; $i++, $i=$i+$step ) { ?>    <option value="<?=$i?>"><?=$i?></option><? } ?></select>
а как сделат штобы скрипт сам определял длину списка ? тоэст определял по количеству товара на складе ?

Поделиться сообщением


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

catalog/model/product/product.tpl - сдесь сделать выгрузку необходимой ячейки в переменную которую надо считать с БД данного товара (в данном случае Колличество на складе)!catalog/controller/product/product.php сдесь получить эту переменную из model и перенаправить в viewcatalog/view/theme/default/template/product/product.tpl - отображени страницы? просто вывести переменную!Понимаю что это может сложно, но внимательнее просмотрев все эти три страници с кодом, можно всё понять как работает, на примере другой ячейки которая уже реализована и отображается!!!Потом просто этой переменной(количество товаров) присвоить $limit.

Поделиться сообщением


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

а поподробниэ можна ? Или пишы в ЛС эсли можыш сделат за определоную оплату

Поделиться сообщением


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

Кароче попробуй так!!!

Зайди в админ панель, Система--Настройки вкладка Атрибуты, в поле Показывать остаток на складе: выбери да!!!

затем на странице catalog/view/theme/default/template/product/product.tpl после 30 строки вставь вот это!

<?php $limit = $stock; ?>
а из кода что тебе давали выше удали:

$limit = 10;
если что пиши!

Поделиться сообщением


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

Спосиба заработалоМой код

<select name="quantity"><? $first = $minimum; // первоначальное значениеfor ($i = $first; $i < $limit; $i++, $i=$i+$minimum ) { ?>    <option value="<?=$i?>"><?=$i?></option><? } ?></select>
Но интересна он отображаэт не 1,2,3,4,5,6а 1,3,5,7,9,11интересно где нужна изменит алгоритм и удалит ету эдиничку А эсли ставиш "Minimum Quantity" 3 то отображаэт 3,7,11,15,19,23

Поделиться сообщением


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

вот так должно работать

<select name="quantity"><? $first = $minimum; // первоначальное значениеfor ($i = $first; $i < $limit; $i++) { ?>    <option value="<?=$i?>"><?=$i?></option><? } ?></select>

Поделиться сообщением


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

Уже почти у цели , но сэдайит одну эдиницу эсли товара максимум 100 то показываэт 99 эсли 8 то 7

Поделиться сообщением


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

а вот появилас идея а дла груп можна както исползоват , $discount['quantity']; ?

Поделиться сообщением


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

а вот появилас идея а дла груп можна както исползоват , $discount['quantity']; ?

что то не понял, поподробнее опиши что должно быть!А насчёт съедает!попробуй лимит на 1 прибавить или минимум на 1 убавить!поэкспериментируй!так:
<select name="quantity"><? $first = $minimum; // первоначальное значение$first = $first + 1;for ($i = $first; $i < $limit; $i++) { ?>    <option value="<?=$i?>"><?=$i?></option><? } ?></select>
или так:
<select name="quantity"><? $first = $minimum; // первоначальное значение$limit = $limit + 1;for ($i = $first; $i < $limit; $i++) { ?>    <option value="<?=$i?>"><?=$i?></option><? } ?></select>
попробуй как правильно будет присваивать количество товаров то так и оставляй!

Поделиться сообщением


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

Ок. Эксперементировал по разному, всем спасибо.

Но, интересует такой вариант, когда шаг разный.

К примеру, мне нужно задать в списке следующий шаг.

1,2,3, 4, 6, 8

т.е часть с нулевым шагом, часть через 1, часть через 2 и тп?

Как это можно реализовть по простому?

Поделиться сообщением


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

Ура... Доперло, всем Спасибо! :)))

sys сказал:

А если сначала идет 2,3,4, а потом 6,8,10, к примеру ?

Можно сделать несколько циклов - и в каждом из них менять шаг

Все оказалось рядом!!! Надо сделать на каждый шаг, отдельный цикл!

Поделиться сообщением


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

Все оказалось рядом!!! Надо сделать на каждый шаг, отдельный цикл!

это может жестоко сказаться на производительности...

ихмо - проще в каждый товар добавить поле "шаг" и потом с ним работать.

Поделиться сообщением


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

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

Поделиться сообщением


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

это может жестоко сказаться на производительности...

ихмо - проще в каждый товар добавить поле "шаг" и потом с ним работать.

Почему?

Модификацию произвел прямо в шаблоне, добавив два отдельных цикла для каждого шага.

Максимально, думаю три цикла, больше не понадобится.

Так где, нагрузка то?

P.S.

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

  • +1 1

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.