Как изменить текущую фотографию обложки продукта с помощью javascript в PrestaShop 1.7

Как изменить текущую фотографию обложки продукта с помощью javascript в PrestaShop 1.7

10.05.2019 05:01:19 Просмотров 43 Источник

Я пытаюсь установить настроенный предварительный просмотр продукта (футболка с загруженным логотипом ) в качестве эскиза продукта . Это изображение, тип файла: jpeg-у меня есть полный url с http: NEW_PRODUCT_THUMB.

Как установить этот url-адрес в качестве изображения продукта / обложки / миниатюры?

Для тестов я попытался установить его с помощью jQuery:

// <section id="main"> , first <img> child element
$('section#main img:eq(0)').attr("src", NEW_PRODUCT_THUMB );

Проблема: каждые изменения-размер футболки, цвет запускают обновление страницы продукта, а затем - изображение по умолчанию было загружено (из базы данных, а не из моего редактора настройки JS).

Вот веб-страница, где настроенное изображение продукта установлено как миниатюра правильным образом, но я понятия не имею, как это сделать? https://products.printzware.com/home/114-faded-short-sleeves-tshirt.html#/4-size-one_size

У вопроса есть решение - Посмотреть?

Ответы - Как изменить текущую фотографию обложки продукта с помощью javascript в PrestaShop 1.7 / How to change current product cover photo with javascript in PrestaShop 1.7

Является ответом!
Bruno Leveque

10.05.2019 07:30:07

Решение №1

Почему бы не отредактировать ваш product.tplфайл шаблона TPL Smarty и добавьте условие, указывающее, что если этот продукт был настроен в рамках текущей покупки, вы отображаете определенное изображение вместо обложки?

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

getProductCustomization($id_product, $type = null, $not_in_cart = false)

И для изменений в реальном времени вы можете, конечно, сохранить свой код jQuery.

Решение №2

Та же логика, но вместо этого можно переопределить getImageLink()в классе Link.

Как только ваше переопределение будет готово, вы можете вызвать его динамически с помощью вызова ajax с помощью jQuery.

Это будет работать даже если страница перезагружается.

Закрыть X