Ребят, подскажите что не так с кодом?

Приветствую!

Стоит задача: Что бы в карточке товара, в место Цены товара 0 руб. отображалась надпись "По запросу", и скрывалась Зачеркнутая цена при Цене товара 0 руб.

Должно быть так в карточке товара:

- Если Цена товара равна 0 руб. , то зачеркнутая цена не отображается

- Если Цена товара равна 0 руб. , то отображается надпись "По запросу"

Соответственно при нормальной цене, должна отображаться Зачеркнутая цена


Не пойму что не так, не отображается надпись "По запросу", так как на витрине.

Код с обеих страниц ниже.

Вот что еще странно, в некоторых товарах (в карточке товара) надпись "По запросу", то отображается, то нет, в разных товарх по разному, это и вводит меня в заблуждение. Пытался выяснить какой параметр и или категория мешает отображению, но концов не нашел...


Помогите поправьте код или объясните что не так!


Код со страницы - list-thumbs.html

{if $p.price != "0"}
    {if $p.compare_price != 0}<span class="compare-at-price nowrap"> {shop_currency_html($p.compare_price)}</span>
    {/if}
{/if}
                    
<span class="price nowrap">{if $p.price != "0"}{shop_currency_html($p.price)}{else}По запросу<br>{/if}</span>


Код со страницы- product.cart.html

(Код нужно поправить тут)

{if $product.compare_price == "0"}
{elseif $product.price != "0"}<span class="compare-at-price nowrap"> {shop_currency_html($product.compare_price)} </span>
{else}
{/if}
            
{if $product.price == "0"}
<span data-price="{shop_currency($product.price, null, null, 0)}" class="price nowrap">По запросу</span>
{elseif $product.price != "0"}<span data-price="{shop_currency($product.price, null, null, 0)}" class="price nowrap">{shop_currency_html($product.price)}</span>
{else}
{/if}

11 ответов

  • 1
    {if $product.compare_price == "0"}
    {elseif $product.price > "0"}<span class="compare-at-price nowrap"> {shop_currency_html($product.compare_price)} </span>
    {/if}
                
    {if $product.price == "0"}
    <span data-price="{shop_currency($product.price, null, null, 0)}" class="price nowrap">По запросу</span>
    {elseif $product.price > "0"}<span data-price="{shop_currency($product.price, null, null, 0)}" class="price nowrap">{shop_currency_html($product.price)}</span>
    {/if}

    так попробуйте

    • +1
      Админ Админ 4 сентября 2017 15:12 #

      Нет не работает, я так уже пробовал, все ровно исходное значение возвращает

      Вот тут:

      http://kolapromsnab.ru/product/1002-zakrytie-lyuka---napravlenie-s-tekstom/

  • 1

    Вот как у меня сделано:

            <div class="add2cart">
                {if $product.price == 0}<span class="price-null">Акционный товар</span>
                {else}
                <span data-price="{shop_currency($product.price, null, null, 0)}" class="price nowrap">{shop_currency_html($product.price)}</span>{/if}
                {if $product.compare_price > 0}<span class="compare-at-price nowrap"> <span class="compare-inner">{shop_currency_html($product.compare_price)}</span> </span>{/if}
                <input type="hidden" name="product_id" value="{$product.id}">
    			{if $product.price > 0}
                <span class="qty pull-right">
                    <a href="#" class="minus" onclick="return false;" rel="nofollow">
                        <i class="fa fa-minus"></i>
                    </a>
                    <input type="text" name="quantity" value="1" class="tt-input" maxlength="5">
                    <a href="#" class="plus" onclick="return false;" rel="nofollow">
                        <i class="fa fa-plus"></i>
                    </a>
                </span>
                <div>
                    <button type="submit"{if !$product_available}{elseif ($product.price == 0)} disabled="disabled"{/if} class="btn-blue">{if $wa->shop->cart->total() > 0}[`Add to cart`]{else}[`Buy now`]{/if} <i class="fa fa-angle-right fa-lg"></i></button>
                </div>
    			{/if}
    			<div style="clear:both"></div>
    • +1
      Админ Админ 4 сентября 2017 16:00 #

      С вашим кодом, так же, без успешно. Соответственно я его подровнял под себя.

      Видимо причина кроется где-то в другом месте, так как если я удаляю класс CSS c моего кода <class="price nowrap">, то надпись "По запросу" отображается вместо 0 руб., но зачеркнутая цена по прежнему подсасывается вместе с ценой, теперь зачеркнутую цену убрать не выходит

  • 1

    Может кэш шалит? 2-3 раза обновляйте и проверяйте.

  • 1

    Попробуйте тогда вообще без классов сначала...

    • +1
      Админ Админ 4 сентября 2017 17:03 #

      Смотрите, вот:

      Это зачеркнутая цена - {shop_currency_html($product.compare_price)}

      Это цена товара - {shop_currency_html($product.price)}

      Если я удаляю классы и оставляю все это без стилей, и удаляю еще до кучи строку выводящую зачеркнутую цену (это: {shop_currency_html($product.compare_price)} ), и оставляю просто цену, то опять встает проблема:

      Зачеркнутая цена не пропала :/


      Как это победить?

  • 1

    т.е. в коде нет зачеркнутой цены, а в шаблоне она появляется?

    • +1
      Админ Админ 4 сентября 2017 18:28 #

      Да!

      В поддержке сказали, смотреть $sku.price

      Там идет вывод цены с нескольких артикулов, если они присутствуют в товаре.

      Цена выводиться по дефолту, тот который отмечен точкой (в разделе Основные данные в товаре), и после переключения выпадающего списка "Материал", как у меня на скрине, так же должна меняться.

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


      Ребят кто разбирается в этом, помогите решить задачу!

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите