Вход • Регистрация

Товары с количеством 0

  • 09 октября 2016 г. , редакция: 09 октября 2016 г.
  • Всем доброго дня! Помогите решить проблему.

    В магазине есть товары (например - Обувь), у каждой модели обуви есть размеры (например - 36, 37, 38)

    Магазин синхронизируется со складом, поэтому нужно учитывать остатки.

    Так вот если купят все Сапоги 37 размера (количество станет 0), то при выборе пользователем 37 размера - он увидит надпись "Товар отсутствует".

    Как сделать так, что бы в пользователю вообще не показывались товары отсутствующего размера?
    • 09 октября 2016 г. , редакция: 09 октября 2016 г.
    • Не совсем понятен вопрос (т.е. непонятно что нужно), т.к. ответ и так на поверхности: исключать варианты комбинаций с количеством 0.
      Это можно делать еще на стадии формирования массива значений при запросе к базе данных. Можно сделать в shop.model.php после запроса к базе данных. Можно сделать и во вьюшке.
      Т.е. все зависит от фантазии. Возможно я не правильно понял обращения, поэтому приведу пример решения Вашего вопроса как я его понимаю.
      Вот демонстрационный пример (перейдя по ссылке просто нажмите кнопку Создать демо-сайт).
      • 10 октября 2016 г.
      • В настройках Магазина стоит галочка "учитывать остатки товаров на складе", для того что-бы количество минусовалось. У Вас в примере эта опция не включена. Если её включить и у любого товара с несколькими модификациями у одной из модификации поставить кол-во 0 - то, происходит тоже самое, как и у меня на сайте (Данная модификация не исчезает из выбора, а просто добавляется надпись "Товар отсутствует").
        • 10 октября 2016 г. , редакция: 10 октября 2016 г.
        • В вайле вывода цены проверять кол-во на "0" - если ноль = то не выводить.... <option></option>

          так ещё не заморачивался, но подозреваю что в этом файле (модуль shop)
          shop.view.buy_form.php
          • 10 октября 2016 г.
          • Я не шарю :(
            Как написать эту функцию и куда в файле вставлять?
            • 10 октября 2016 г.
            • Так сходу не напишешь, я на работе через телефон сижу...
              - обратись через ПРОЕКТЫ - тебе помогут....
  • 12 октября 2016 г.
  • Я тоже пытался убрать из предложения в карточке товара отсутствующие размеры, или изменить из цвет, что было понятно, что не нужно выбирать, или поменять очередность их вывода, что бы размеры с 0 были низу. Столкнулся с тем, что в shop.view.buy_form.php вывод параметров, влияющих на цену происходит в
    foreach ($param["values"] as $value)
    {

    А в этом перечислении не могу обратиться с запросом количества выводимой характеристики. $price["count"] в нем не выводится.
    $price["count"] работает в foreach ($result["row"]["price_arr"] as $price) .
    Пробовал создать массив значений количества характеристик внутри foreach ($param["values"] as $value) и выводить его последовательно в окне выбора характеристик ( например получать результат размер 36=1, размер 37=2...). Потом можно как угодно использовать эти цыфры, хоть дописать условие, если=0 не выводить - в общем не важно. Главное что задачу не решил, так как массив значений формировался в порядке очередности характеристик по id, а вывод по алфовиту. В итоге пробывал упорядочить последовательность характеристик и выстроил их по алфовиту на странице самой характеристики. Все заработало, если только у товара одна характеристика. Но у меня встречается товар с двумя характеристиками в одной карточке. Например обувь - Цвет+размер. В этом случае получается чушь.
    В итоге плюнул я на это и довольствуюсь терпением покупателя, который просто обязан догадаться, что в открывшейся странице с товаром надпись" Товар отсутствует" не означает, что он отсутстует, - это просто у первой характеристики он кончился. Нужно переключить размер и все появится - и кнопка купить и кнопка отложить.
    Код вывода значения $g для случая с одной характеристикой в товаре:


    foreach ($param["values"] as $value)
    {

    if(! empty($result["row"]["param_multiple"][$param["id"]][$value["id"]]))
    {


    //создание массва количества по характеристикам
    $g[0] = 0;
    $g = array();
    foreach ($result["row"]["price_arr"] as $price)
    {
    $g[]=$price["count"];
    }
    //Далее стандартный код


    if(! $select)
    {
    $select = ' '.$param["name"].'<select name="param'.$param["id"].'" class="shop-dropdown inpselect'.($result["row"]["param_multiple"][$param["id"]][$value["id"]] == 'depend' ? ' depend_param js_shop_depend_param' : '').'">';
    }

    // вставляем значение переменной "$g" рядом с выводимой характеристикой, для проверки
    $select .= '<option value="'.$value["id"] .'"'
    .(! empty($value["selected"]) ? 'selected' : '')
    .'>'.$value["name"].$g[$nn=$nn+1].'</option>';

    }

    }

    // Вывод окошка выбора характеристики

    if($select)
    {
    echo '<div class="shop_form_param">'.$select.'</select></div>';
    }


  • 12 октября 2016 г.
  • Когда две характеристики влияющих на ценну - это не прокатит.
    Нужно писать запрос с обходом их двух и объединять имя значения в одни select.
    • 12 октября 2016 г. , редакция: 12 октября 2016 г.
    • [характеристика 1: значение] и [характеристика 2: значение]

      <select>
      <option>характеристика 1: значение 4 | характеристика 2: значение 1 | колво 5</option>
      <option>характеристика 1: значение 6 | характеристика 2: значение 4 | колво 2</option>
      <option>характеристика 1: значение 1 | характеристика 2: значение 3 | колво 0</option>
      </select>

      видок правда не эстетичный будет =)))

      и всего то из 5ти табли данные вытащить:

      diafan_shop
      diafan_shop_param_select
      diafan_shop_price
      diafan_shop_price_param
      diafan_shop_param

Новости

  • 24 апреля, среда
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 
  • 15 декабря 2023 г.
  • Подводим итоги 2023 года. Выпустили новую сборку DIAFAN.CMS 7.1.1, вводим новые тарифы на аренду сайта и коммерческую поддержку и автообновления с января 2024 г., строим планы на будущий год.