Не отображается цена, если товара нет в наличии Есть решение

1

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

Опубликовано: 20 марта 2018

3 ответа

  • 1
    Рыжов Гена Поддержка 20 марта 2018 22:36 # Решение

    Это является стандартным поведением плагина и всех дефолтных тем дизайна.

    Чтобы цена показывалась, необходимо в теме дизайна в файл плагина "plugin.salesku.js" добавить код:

    saleskuPluginProduct.prototype.cartButtonVisibility = function (visible) {
        if (visible) {
            this.cartButtonActive(true);
            this.getElements().Quantity().show();
            this.getElements().added2cart().hide();
        } else {
            this.cartButtonActive(false);
            this.getElements().Quantity().hide();
            this.getElements().added2cart().hide();
        }
    };
    • 1
      Виктор Соколянский Виктор Соколянский 20 марта 2018 22:47 #

      Добавил в самое начало, сохранил, очистил кэш - цены так и нет.

      • 1

        Да, старый код остался с первых версий.... надо еще добавить в тот файл:


        saleskuPluginProduct.prototype.setSku = function (sku_data) {
            var sku = false;
            var self = this;
            if(typeof sku_data=='object' && sku_data.hasOwnProperty('id')) {
                var sku = sku_data;
            } else if(typeof sku_data == 'string'){
                if(this.features.hasOwnProperty(sku_data)) {
                    sku = this.features[sku_data];
                }
            }
            if (sku) {
                self.setSkuImage(sku);
                self.updateSkuServices(sku.id);
                if (sku.available) {
                    this.cartButtonVisibility(true);
                    self.updatePrice(sku.price, sku.compare_price);
                } else {
                    self.form.find("div.stocks div").hide();
                    self.form.find(".sku-no-stock").show();
                    self.cartButtonVisibility(false);
                }
            } else {
                self.getElements().Form().find("div.stocks div").hide();
                self.getElements().Form().find(".sku-no-stock").show();
                self.cartButtonVisibility(false);
            }
        };
        • 1
          Виктор Соколянский Виктор Соколянский 20 марта 2018 23:07 #

          Вижу, что вы код в моём шаблоне поправили, но цена так и не появилась.

          • 1

            Вижу! Включено приложение Ускорение сайта и кеш не очищен!)))



            • 1
              Виктор Соколянский Виктор Соколянский 20 марта 2018 23:35 #

              :-)))) Ух уж это приложение!

              Отключил, почистил кэш и в инсталлере, и в браузере - цены появились.

              Но теперь, при загрузке страницы каталога, на какое-то время в карточке товара, который есть в наличии, появляются дополнительная надпись "В наличии" и надпись "Нет в наличии".

              В карточке того товара, которого в наличии нет, появляется дополнительная надпись "Нет в наличии".

              https://fleximarket.com.ua/category/smartfony/assi...

              После полной загрузки страницы надписи пропадают. :-)

  • 1
    Виктор Соколянский 22 марта 2018 13:43 #

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

  • 1
    Виктор Соколянский 22 марта 2018 14:56 #

    Вижу, что исправили. Спасибо большое! :-)


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

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