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

[Решено?..] Как добавить вес на странице товара?

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

Подскажите, пожалуйста, как добавить вес, чтоб отображался на странице товара (версия OpenCart 2.0.1.1)? Причем есть товар, у которого вес, а которого объем, соответственно и единицы измерения разные, г. и мл.

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


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

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


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

Погуглить я и без вас уже погуглила, это не то что надо, не работает! Там дан код для версий 1.5, 2.0, похоже, сильно отличается, т.к. в шаблонах даже нет тех строк, что нужно найти и заменить. Единственное, что я смогла сделать — это вывести объем и миллилитры, там же где надо граммы, опять же объем только и можно указать. В админке же можно выбрать меры веса, значит есть возможность на разных страницах показывать разные значения. Но как это сделать, вот вопрос?

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


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

Принцип!!! А не копипаст!

 

 

В админке же можно выбрать меры веса, значит есть возможность на разных страницах показывать разные значения. Но как это сделать, вот вопрос?

 

Есть. А вот вывод только для тех кому это нужно.

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


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

Принцип!!! А не копипаст!

 

 

Есть. А вот вывод только для тех кому это нужно.

Я понимаю, что тут вы тут соревнуетесь кто круче, только мне это мало интересно. Скажите, просто, какая переменная отвечает за вывод единицы веса или вы сами не знаете?

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


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

Мне на мою крутость - как с высоты..., впрочем и вам тоже.

 

По ссылкам - все есть, в том числе и переменные.

 

Принцип тот же

 

Вот я вам скажу какую переменную взять куда вставить, а у вас совсем не то, что есть - и я же буду виноват?

 

Поэтому - есть аналогичные решения, вы хотите это сделать самостоятельно. Делайте. все исходные данные есть.

 

1. Данные о весе есть в модели

2. Этих данных нет в контроллере - их нужно добавить

2 Этих данных нет в шаблоне - их нужно добавить в нужное место

 

Вес по английски - weight

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


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

тоже мучаюсь с выводом единицы измерения веса.

 

Сделала по двум описаниям:

 

http://www.cleverscript.ru/snippets/edinitsyi-izmereniya-tovara-v-opencart.html#.VUkwVvntlBc

 

и http://cartopen.ru/index.php?route=product/product&product_id=21

 

Первый вариант аккуратнее. Выводятся размеры, но вот вес не выводится ни в 1м ни во 2м варианте. Функции getUnit из файлов библиотеки сравнила, они идентичны, но при этом размеры есть, а веса нет.

Тему обсуждали уже неоднократно и похоже, что кроме "костылей", решения найдено не было. Если кто нашел решение, напишите, пожалуйста.

 

из контроллера:

$this->data['weight'] = round($product_info['weight'], 3).' '.$this->weight->getUnit($product_info['weight_class_id']);
$this->data['length'] = round($product_info['length'], 3).' '.$this->length->getUnit($product_info['length_class_id']);
$this->data['width'] = round($product_info['width'], 3).' '.$this->length->getUnit($product_info['length_class_id']);
$this->data['height'] = round($product_info['height'], 3).' '.$this->length->getUnit($product_info['length_class_id']);

а в tpl вот:

 

<?php if ($weight > 0) { ?>
        <span><?php echo $text_weight; ?></span> <?php echo $weight; ?><br />
        <?php } ?>


<?php if ($length > 0) { ?>
        <span><?php echo $text_dimension; ?></span> <?php echo $length; if(!empty($length)) echo " x "; echo $width; if(!empty($width)) echo " x "; echo $height; ?><br />
        <?php } ?>

все перепробовала, кроме этого "костылька":

 

 

<?php if ($weight_class_id==2) {?>
<?php echo " гр<br />"; ?>
<?php } ?>
<?php if ($weight_class_id==1) {?>
<?php echo ' кг'; ?>
<?php } ?><?php } ?>
 

 

но это же не правильно...

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


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

Замените

 

$this->data

на $data

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


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

Заменила. Тоже не помогло :( и кэш почистила.

 

и "костылек" не прикрутился...  :?

 

 

и этот вариант не срабатывает:

<?php if ($weight) { ?><span>Вес:</span> <?php printf ("%.02f",$weight); echo " ".$weight_class; ?><?php } ?>

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


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

изменила последнюю строчку на $weight_class_id  и тоже ругается Undefined variable: weigh_class_id

....

 

уже какой-то прогресс... добавила в контроллер:

$this->data['weight_class_id'] = $product_info['weight_class_id'];

и изменила в tpl:

<?php if ($weight > 0) { ?>
        <span><?php echo $text_weight; ?></span> <?php echo $weight; if(!empty($weight)) echo $weight_class_id; ?><br />
        <?php } ?>
 

 

напечатался просто вес+сам номер ID вместо его содержимого.

 

 

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

 

в модуле проверяла, там есть weight_class_id

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


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

не понимаю, речь идет о 2-ой версии?

 

нет там такого

 

$this->data['weight_class_id'] =

 

в шаблон передается

$data['weight_class_id']

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


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

вывела значение вот так:

 

 
 <?php if ($weight > 0) { ?>
        <span><?php echo $text_weight; ?></span> <?php echo $weight; ?>


<?php if ($weight_class_id==4) {?>
 <?php echo " т. "; ?>
 <?php } ?> 
<?php if ($weight_class_id==3) {?>
 <?php echo " ц. "; ?>
 <?php } ?>
<?php if ($weight_class_id==2) {?>
 <?php echo " гр. "; ?>
 <?php } ?>
 <?php if ($weight_class_id==1) {?>
 <?php echo ' кг.'; ?>
 <?php } ?>




        <?php } ?>

только еще немножко help! Вывелись только граммы и кг, а в локализации добавленные центнер и тонна не отображаются, когда их выбираешь в карточке товара. Почему? Где их id проверить?

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


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

не понимаю, речь идет о 2-ой версии?

 

нет там такого

 

$this->data['weight_class_id'] =

 

в шаблон передается

$data['weight_class_id']

 

 

ocStore 1.5.5.1.2

 

если я $this-> меняю на $data, то ошибки выдает

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


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

Все! УРА! НАШЛА!

 

Id у меня у центнера 5, а у тонны 6

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


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

а как теперь его в счет админки  и в корзину запихать... ?

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


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

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

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

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

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

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

Войти

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

Войти

  • Похожий контент

    • От sergiussv
      Скачать/Купить дополнение


      Автоматическое добавление размеров и веса товара в характеристики товара
      Описание
      Проверено на ocStore 1.5.3.1 - 1.5.5.1
      Автоматически добавляет вес и размеры товара в характеристики (атрибуты) товара.
      auto_ws_attribute_sv - добавляет размеры если у товара есть атрибуты если их нет, то добавление размеров и веса не происходит
      auto_ws_attribute_sv_all - добаляет размеры и вес в любом случае даже если у товара нет атрибутов.
      Внимание!!! Вместе дополнения не использовать.
      На создание этого дополнения навела лень, устал добавлять в характеристики товара вес и размеры, когда в описании товара уже есть эти данные.
      Проблема заключалась в том, как сделать, что бы дополнение работало и со старыми товарами у которых эти атрибуты уже добавлены.
      Решение нашлось, если в языковом файле "catalog/language/[ваш язык]/product/product.php" у переменной $_['group_name_ws'] сделать название, как у группы атрибутов, которые отвечают за размеры, то повторного добавления не происходит, таким образом новые товары уже можно добавлять без этих атрибутов и не нужно исправлять старые товары удаляя атрибуты, как-то так ))))
      В файл шаблона товара не вносятся изменения, будет работать с любой темой, которая выводит атрибуты (характеристики) товара.
      В фале xml содержаться изменения для языковых файлов для русского и английского языков (не нужное удалить или добавить свой язык).
      Установка
      1. Требуется vQmod
      2. Скопировать содержимое из папки upload
      Изменение форматирования вывода размеров и веса
      Сейчас в формировании вывода размеров и веса установлено, что вес вещественное число, а размеры целое. Для изменения форматирования вывода нужно изменить вот эти строчки:
      $_['attribute_size_value'] = '%d x %d x %d %s'; - эта строка формат вывода размера
      $_['attribute_weight_value']= '%01.2f %s'; - эта строка формат вывода веса
      %d - выводит целое число
      %f - выводит вещественное число, для примера:
      %01.1f - выведет 0.5
      %01.2f - выведет 0.51
      Добавил sergiussv Добавлено 03.02.2014 Категория Прочее  
    • От AlexDW
      350.00 руб
      Скачать/Купить дополнение


      ProductField+ универсальный модуль показа дополнительных полей товара
      ProductField Plus - универсальный модуль для показа дополнительных полей на странице товара.
       
      Стандартно Opencart выводит на странице товара лишь одно дополнительное поле model.
      Нередко возникает необходимость показать и другие дополнительные поля - например sku, ean, jan, mpn и тд
       
      Модуль ProductField+ позволяет вывести любое поле из таблицы product на странице товара, сразу за стандартным полем model.
       
      DEMO
      ADMIN
       
      Примеры использования полей:
      SKU, UPC, EAN, JAN, ISBN, MPN и Location вряд ли нуждаются в описании, вы можете использовать их по назначению либо на свое усмотрение
      date_available - дата поступления, можно использовать как дату выхода товара
      date_modified - дата последнего изменения товара, можно использовать для актуальности в качестве last modified
      date_added - дата создания товара
      viewed - число просмотров страницы товара, на нем основан отчет о просмотренных товарах в админке
      weight - вес товара
      length, width, height - длина, ширина и высота товара
      и тд
       
      Особенности:
      Универсальность
      - модуль автоматически определяет все существующие поля в таблице product и позволяет вывести любое из них в виде обычного текста либо в формате веса или размера
       
      Гибкие настройки
      - возможность включения/отключения выбранных полей
      - показ полей в нужном порядке
             сортировка простым перетаскиванием (с поддержкой мобильных устройств)
      - поддержка мультиязычности
      - если содержимое поля не задано - оно не будет показано
      - если название поля для какого-либо языка не указано - при просмотре страницы на этом языке поле не показывается
       
      Форматирование
      - при выборе вывода типа text поле будет показано в именно том виде как хранится в БД
      - тип date форматирует и выводит поле поле в виде даты (Y-m-d)
      - тип weight форматирует и выводит выбранное поле как вес *
      - тип length форматирует и выводит выбранное поле как размер *
      * в зависимости от настроек локализации и самого товара
       
      Простота использования
      - добавление показа нужного поля в несколько кликов
      - задание порядка показа полей простым перетаскиванием
       
      Совместимость
      - работает с ocStore / OCSHOP - Opencart.cms|pro / Opencart 2.0.0.x - 2.3.0.2
      - не создает дополнительных таблиц или полей в БД
      - не меняет оригинальные файлы движка, использует OCMOD
       
      Обратите внимание:
      - модуль НЕ добавляет новые поля, а лишь выводит существующие
      - работает только с полями таблицы product
      - не влияет на поля, выводимые используемым шаблоном
       
       
      Системные требования:
      PHP 5.3 или выше;  CURL;
      являются базовыми требованиями для работы Opencart 2.x
      расширение mbstring
      библиотека для работы с многобайтовыми кодировками, обычно подключается в панели управления хостингом (как правило уже подключена по умолчанию)
       
      проверить совместимость можно здесь
       
      Установка:
      1. Загрузить архив ocmod.zip из папки для вашей версии движка в Дополнения > Установщик дополнений *
      2. Обновить кеш модификаторов в Дополнения > Модификаторы (Менеджер дополнений)
      3. Добавить права на module/productfieldplus в Система > Пользователи > Группы пользователей
      4. Установить модуль ProductField Plus в Дополнения > Модули
      5. Настроить модуль, ввести ключ лицензии и сохранить настройки
       
      Не забудьте обновить кэш модификаций после установки!
      * Если у вас не настроен FTP для загрузки архивов ocmod.zip в Установщике дополнений - используйте этот патч
       
      Условия использования:
      Модуль распространяется по принципу 1 покупка = 1 домен и его поддомены
      Для использования модуля на другом домене нужно приобрести еще одну копию модуля
      Запрещается несанкционированное использование, копирование, перепродажа, передача модуля третьим лицам, а также иные способы распространения, в том числе в ознакомительных целях.
       
      В целях защиты дополнения от нелегального использования часть управляющих файлов модуля обфусцирована(закодирована), при этом контроллер, модель и шаблон имеют открытый код.
      Автор гарантирует отсутствие вредоносного кода, бекдоров и сбора какой-либо информации в закодированных частях модуля.

      Лицензия:
      Для работы модуля на внешнем сервере требуется код активации (лицензия)
      (не требует активации на локальном сервере при использовании ip 127.0.0.1)
      Для получения кода отправьте запрос автору в ЛС с использованием учетной записи на которую производилась покупка модуля, указав номер покупки и скопировав данные о сервере/хосте из настроек модуля.
      Лицензия выдается с привязкой к домену из расчета "одна покупка = один домен". Лицензия бессрочна, без ограничений по времени, действует на основной домен и его поддомены.
       
      Также предусмотрена возможность переноса лицензии на новый домен в случае переезда/смены доменного имени.
      При смене лицензии будет выслан новый ключ, старый ключ аннулируется (становится недействительным)
      Для смены лицензии отправьте запрос о переносе автору в ЛС с использованием учетной записи на которую производилась покупка модуля, указав номер покупки и скопировав данные о сервере/хосте из настроек модуля со старого домена и аналогичные данные нового домена, на который будет осуществлен перенос.
       
      Максимальное время получения ключа не превышает 36 часов с момента запроса
      обычно ключ выдается значительно раньше
       
      Другие дополнения:
      ---------------------------
      AutoField - заполнение полей товаров по шаблону
      AutoSearch 2x - поиск на лету для Opencart 2x
      OrderField - дополнительные поля товаров в заказах
      Autocomplete Plus 2X - улучшенный поиск в админке
      Добавил AlexDW Добавлено 08.10.2016 Категория Модули Системные требования PHP 5.3 или выше; CURL; mbstring Сайт разработчика Старая цена Метод активации По запросу в ЛС Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1
      2.0 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х  
    • От PavelMi
      Дорогие форумчане! 
      Помоготие пожалуйста найти модуль который позволит выбирать вес товара не заходя в карточку товара. 
      Что-то типо такого. Спасибо за ответы !!! 

    • От AlexDW
      ProductField Plus - универсальный модуль для показа дополнительных полей на странице товара.
       
      Стандартно Opencart выводит на странице товара лишь одно дополнительное поле model.
      Нередко возникает необходимость показать и другие дополнительные поля - например sku, ean, jan, mpn и тд
       
      Модуль ProductField+ позволяет вывести любое поле из таблицы product на странице товара, сразу за стандартным полем model.
       
      DEMO
      ADMIN
       
      Примеры использования полей:
      SKU, UPC, EAN, JAN, ISBN, MPN и Location вряд ли нуждаются в описании, вы можете использовать их по назначению либо на свое усмотрение
      date_available - дата поступления, можно использовать как дату выхода товара
      date_modified - дата последнего изменения товара, можно использовать для актуальности в качестве last modified
      date_added - дата создания товара
      viewed - число просмотров страницы товара, на нем основан отчет о просмотренных товарах в админке
      weight - вес товара
      length, width, height - длина, ширина и высота товара
      и тд
       
      Особенности:
      Универсальность
      - модуль автоматически определяет все существующие поля в таблице product и позволяет вывести любое из них в виде обычного текста либо в формате веса или размера
       
      Гибкие настройки
      - возможность включения/отключения выбранных полей
      - показ полей в нужном порядке
             сортировка простым перетаскиванием (с поддержкой мобильных устройств)
      - поддержка мультиязычности
      - если содержимое поля не задано - оно не будет показано
      - если название поля для какого-либо языка не указано - при просмотре страницы на этом языке поле не показывается
       
      Форматирование
      - при выборе вывода типа text поле будет показано в именно том виде как хранится в БД
      - тип date форматирует и выводит поле поле в виде даты (Y-m-d)
      - тип weight форматирует и выводит выбранное поле как вес *
      - тип length форматирует и выводит выбранное поле как размер *
      * в зависимости от настроек локализации и самого товара
       
      Простота использования
      - добавление показа нужного поля в несколько кликов
      - задание порядка показа полей простым перетаскиванием
       
      Совместимость
      - работает с ocStore / OCSHOP - Opencart.cms|pro / Opencart 2.0.0.x - 2.3.0.2
      - не создает дополнительных таблиц или полей в БД
      - не меняет оригинальные файлы движка, использует OCMOD
       
      Обратите внимание:
      - модуль НЕ добавляет новые поля, а лишь выводит существующие
      - работает только с полями таблицы product
      - не влияет на поля, выводимые используемым шаблоном
       
       
      Системные требования:
      PHP 5.3 или выше;  CURL;
      являются базовыми требованиями для работы Opencart 2.x
      расширение mbstring
      библиотека для работы с многобайтовыми кодировками, обычно подключается в панели управления хостингом (как правило уже подключена по умолчанию)
       
      проверить совместимость можно здесь
       
      Установка:
      1. Загрузить архив ocmod.zip из папки для вашей версии движка в Дополнения > Установщик дополнений *
      2. Обновить кеш модификаторов в Дополнения > Модификаторы (Менеджер дополнений)
      3. Добавить права на module/productfieldplus в Система > Пользователи > Группы пользователей
      4. Установить модуль ProductField Plus в Дополнения > Модули
      5. Настроить модуль, ввести ключ лицензии и сохранить настройки
       
      Не забудьте обновить кэш модификаций после установки!
      * Если у вас не настроен FTP для загрузки архивов ocmod.zip в Установщике дополнений - используйте этот патч
       
      Условия использования:
      Модуль распространяется по принципу 1 покупка = 1 домен и его поддомены
      Для использования модуля на другом домене нужно приобрести еще одну копию модуля
      Запрещается несанкционированное использование, копирование, перепродажа, передача модуля третьим лицам, а также иные способы распространения, в том числе в ознакомительных целях.
       
      В целях защиты дополнения от нелегального использования часть управляющих файлов модуля обфусцирована(закодирована), при этом контроллер, модель и шаблон имеют открытый код.
      Автор гарантирует отсутствие вредоносного кода, бекдоров и сбора какой-либо информации в закодированных частях модуля.

      Лицензия:
      Для работы модуля на внешнем сервере требуется код активации (лицензия)
      (не требует активации на локальном сервере при использовании ip 127.0.0.1)
      Для получения кода отправьте запрос автору в ЛС с использованием учетной записи на которую производилась покупка модуля, указав номер покупки и скопировав данные о сервере/хосте из настроек модуля.
      Лицензия выдается с привязкой к домену из расчета "одна покупка = один домен". Лицензия бессрочна, без ограничений по времени, действует на основной домен и его поддомены.
       
      Также предусмотрена возможность переноса лицензии на новый домен в случае переезда/смены доменного имени.
      При смене лицензии будет выслан новый ключ, старый ключ аннулируется (становится недействительным)
      Для смены лицензии отправьте запрос о переносе автору в ЛС с использованием учетной записи на которую производилась покупка модуля, указав номер покупки и скопировав данные о сервере/хосте из настроек модуля со старого домена и аналогичные данные нового домена, на который будет осуществлен перенос.
       
      Максимальное время получения ключа не превышает 36 часов с момента запроса
      обычно ключ выдается значительно раньше
       
      Другие дополнения:
      ---------------------------
      AutoField - заполнение полей товаров по шаблону
      AutoSearch 2x - поиск на лету для Opencart 2x
      OrderField - дополнительные поля товаров в заказах
      Autocomplete Plus 2X - улучшенный поиск в админке
    • От Dimal88
      Доброе время суток!
       
      Ребята подскажите пожалуйста как вывести значение поля в header.tpl из карточки товара?
      Есть поле sellunit в админке забивается, сохраняется, и выводится. В product.tpl выводится хорошо. А в header.tpl выдаёт ошибку  Notice: Undefined variable: sellunit in C:\OPSERV\domains\opencart.loc\catalog\view\theme\default\template\common\header.tpl on line 44 ...
       
      Где нужно определить эту переменную чтобы если открыта карточка товара то поле этого товара выводилось в header?
       
      Шаблон дефолтный, opencart 2.0.1.1 чистый. Поставил для знакомства с системой.
  • Последние посетители   0 пользователей онлайн

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

×

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

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