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

Как настроить нужное отображение характеристики влияющей на цену?

  • 12 февраля 2017 г.
  • Вопрос вот в чем. Изначально в карточке, если есть характеристики влияющие на цену, показывает самую дешевую цену. Как выбрать что бы отображался другой товар? В фото показал как надо.
    • 12 февраля 2017 г.
    • Способов множество, например, в файле shop.view.buy_form.php (если используете дефолтный вывод) пересортируйте массив $result["row"]["price_arr"] так, как Вам нужно. Тот элемент, что будет первым, тот и будет отображаться первоначально.
      Успехов.
  • 27 февраля 2017 г. , редакция: 27 февраля 2017 г.
  • Только сейчас добрался.
    Нашёл этот файл, но так и не понял, что куда сортировать надо
    Код
    // у товара несколько цен
    if ($result["row"]["price_arr"])
    {
    foreach ($result["row"]["price_arr"] as $price)
    {
    $param_code = '';
    foreach ($price["param"] as $p)
    {
    if($p["value"])
    {
    $param_code .= ' param'.$p["id"].'="'.$p["value"].'"';
    }
    }
    if(! empty($price["image_rel"]))
    {
    $param_code .= ' image_id="'.$price["image_rel"].'"';
    }
    echo '<div class="js_shop_param_price shop_param_price shop-item-price"'.$param_code.'>';
    echo '<span class="title">'.$this->diafan->_('Цена').':</span><span class="price"><span class="js_shop_price" summ="'.$price["price_no_format"].'" format_price_1="'.$this->diafan->configmodules("format_price_1", "shop").'" format_price_2="'.$this->diafan->configmodules("format_price_2", "shop").'" format_price_3="'.$this->diafan->configmodules("format_price_3", "shop").'">'.$price["price"].'</span> '.$result["result"]["currency"];
    if (!empty($price["old_price"]))
    {
    echo '<span class="shop_old_price price-old"><span class="shop_price_value strike">'.$price["old_price"].' '.$result["result"]["currency"].'</span></span>';
    }
    if (! $price["count"] && empty($hide_submit) || empty($price["price_no_format"]) && ! $result['result']["buy_empty_price"])
    {
    echo '<span class="js_shop_no_buy shop_no_buy">'.$this->diafan->_('Товар временно отсутствует').'</span>';
    $waitlist = true;
    }
    echo '</span>';
    echo '</div>';
    }

    echo '<div class="addict-field">';
    echo '<div class="js_shop_form_param shop_form_param">';
    foreach ($result["result"]["depends_param"] as $param)
    {
    if(! empty($result["row"]["param_multiple"][$param["id"]]))
    {
    if(count($result["row"]["param_multiple"][$param["id"]]) == 1)
    {
    foreach ($result["row"]["param_multiple"][$param["id"]] as $value => $depend)
    {
    echo '<input type="hidden" name="param'.$param["id"].'" value="'.$value.'"'.($depend == 'depend' ? ' class="depend_param js_shop_depend_param"' : '').'>';
    }
    }
    else
    {
    $select = '';
    foreach ($param["values"] as $value)
    {
    if(! empty($result["row"]["param_multiple"][$param["id"]][$value["id"]]))
    {
    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' : '').'">';
    }

    $select .= '<option value="'.$value["id"].'"'
    .(! empty($value["selected"]) ? ' selected' : '')
    .' class="js_form_option_selected">'.$value["name"].'</option>
    ';
    }
    }
    if($select)
    {
    echo $select.'</select> ';
    }
    }
    }
    }
    echo '</div>';
    echo '</div>';
    }

    if(! empty($result["row"]["additional_cost"]))
    {
    $rand = rand(0, 9999);
    echo '<div class="js_shop_additional_cost shop_additional_cost">';
    foreach($result["row"]["additional_cost"] as $r)
    {
    echo '<div class="shop_additional_cost_block"><input type="checkbox" name="additional_cost[]" value="'.$r["id"].'" id="shop_additional_cost_'.$result["row"]["id"].'_'.$r["id"].'_'.$rand.'" summ="';
    if(! $r["percent"] && $r["summ"])
    {
    echo $r["summ"];
    }
    echo '"';
    if($r["required"])
    {
    echo ' checked disabled';
    }
    echo '> <label for="shop_additional_cost_'.$result["row"]["id"].'_'.$r["id"].'_'.$rand.'">'.$r["name"];
    if($r["percent"])
    {
    foreach ($result["row"]["price_arr"] as $price)
    {
    $param_code = '';
    foreach ($price["param"] as $p)
    {
    if($p["value"])
    {
    $param_code .= ' param'.$p["id"].'="'.$p["value"].'"';
    }
    }
    echo '<div class="js_shop_additional_cost_price" summ="'.$r["price_summ"][$price["price_id"]].'"'.$param_code.'>';
    echo ' <b>+'.$r["format_price_summ"][$price["price_id"]].' '.$result["result"]["currency"].'</b></div>';
    }
    }
    elseif($r["summ"])
    {
    echo ' <div class="js_shop_additional_cost" summ="'.$r["summ"].'"><b>+'.$r["format_summ"].' '.$result["result"]["currency"].'</b></div>';
    }
    echo '</label></div>';
    }
    echo '</div>';
    }

    if(! empty($waitlist))
    {
    echo '
    <div class="js_shop_waitlist shop_waitlist">
    '.$this->diafan->_('Сообщить когда появится на e-mail').'
    <input type="email" name="mail" value="'.$this->diafan->_users->mail.'">
    <input type="button" value="'.$this->diafan->_('Ок', false).'" action="wait">
    <div class="errors error_waitlist" style="display:none"></div>
    </div>';
    }

    echo '<div class="js_shop_buy shop_buy to-cart">';
    if (empty($result["row"]['is_file']) && empty($hide_submit))
    {
    echo '<input type="text" value="1" name="count" class="number" pattern="[0-9]+([\.|,][0-9]+)?" step="any">';
    if(! empty($result["row"]["measure_unit"]))
    {
    echo ' '.$result["row"]["measure_unit"].' ';
    }
    }
    if(empty($hide_submit))
    {
    echo '<input type="button" class="button solid" value="'.$this->diafan->_('Купить', false).'" action="buy">';
    }
    echo '</div>';

    if(empty($hide_submit) && ! empty($result["result"]["one_click"]))
    {
    echo '<span class="js_shop_one_click shop_one_click"><input type="button" value="'.$this->diafan->_('Купить в один клик', false).'" action="one_click"></span>';
    }
    echo '<div class="error"';
    if (! empty($result["row"]["count_in_cart"]))
    {
    $measure_unit = ! empty($result["row"]["measure_unit"]) ? $result["row"]["measure_unit"] : $this->diafan->_('шт.');
    echo '>'.$this->diafan->_('В <a href="%s">корзине</a> %s %s', true, BASE_PATH_HREF.$result["result"]["cart_link"], $result["row"]["count_in_cart"], $measure_unit);
    }
    else
    {
    echo ' style="display:none;">';
    }
    echo '</div>';
    echo '</form>';
    //форма быстрого заказа
    if(! empty($result["result"]["one_click"]))
    {
    $result["result"]["one_click"]["good_id"] = $result["row"]["id"];
    echo $this->get('one_click', 'cart', $result["result"]["one_click"]);
    }
    • 27 февраля 2017 г.
    • А вам по каком критерию надо сортирнуть? По скриншоту как-то не понятно.
      • 28 февраля 2017 г.
      • Сейчас по умолчанию показывается самая низкая цена. Мне надо, чтобы подступенки (они с самой низкой ценой) не учитывались. Показывалась самая низкая цена, без учета подступенков.
        В идеале- в админке сделать галочку напротив каждой позиции, чтобы я сам выбирал основной товар к показу.
  • 28 февраля 2017 г.
  • У меня схожая проблема. Нужно, чтобы характеристики выводились по id. В порядке возрастания.
    Т.е. в админке я их заносила по порядку, вот в том же порядке нужно и в пользовательской части.
    Не понимаю, что где добавить или переставить.

    Может быть кто-то уже делал? Подскажите, пожалуйста.
  • 28 февраля 2017 г. , редакция: 28 февраля 2017 г.
  • Есть функции для сортировки массивов (в самом php)
    - массив перед выводом отсортировать как надо и вывести кто то побывал ?
    в BUY_FORM.php
    http://php.net/array.sorting
    • 28 февраля 2017 г.
    • Я так понимаю, в модельку нужно влезть?

      Влезла, поломала все, удалила нафиг сайт
      • 28 февраля 2017 г.
      • в файле вывода цен - модельку не трогайте
        в каком файле и я писал и Виталий и даже какой массив сортировать
        • 28 февраля 2017 г.
        • SELECT выбрать столбцы FROM из таблицы Order by title ASC по названию в алфавитном порядке.
          Такую форму написания я понимаю, а вышеупомянутый файл перекопала. Ну никак не вижу, по какому принципу и где это выводится и как это изменить.

          П.С. Вы весь такой загадочный. Не хотите помогать, так и напишите "Иди, дорогая в ТП".
          • 28 февраля 2017 г.
          • shop.view.buy_form.php в нем $result["row"]["price_arr"] -- (у товара несколько цен)
            сделайте его print_r, изучите и пересортируйте по ID

            Если не осилите - пишите. Поможем.
  • 28 февраля 2017 г.
  • Спасибо, конечно, но это для меня китайская грамота))))

Новости

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

Форум