[Помощь] VM2 - Редактирование фреймового всплывающего окна купленного товара

может скрипт неправильно обрабатывает событие на закрытие окна ?
на jQuery вроде как так это событие описать можно.
$(объект окна).hide()

вот нашел что:
<script type="text/javascript"> setTimeout(function(){$('.box').fadeOut('fast')},3000); //3000 = 3 секунды </script>
 
Последнее редактирование модератором:
Для просмотра ссылки Войди или Зарегистрируйся

Картинки в наборе не присутствуют, поэтому придется их доставать вручную:
PHP:
if (!class_exists('VmImage')) require(JPATH_VM_ADMINISTRATOR . DS . 'helpers' . DS . 'image.php');
$productModel = VmModel::getModel('product');
$productModel->addImages($this->products,1);
и дальше в вашем цикле перебора продуктов по аналогии с оригинальным файлом делаем примерно следующее:
PHP:
$img=$product->images[0]->file_url_thumb;
if ($img) echo "<img src='/$img' />"; // картинка
echo $product->quantity; // кол-во
Извини, не могу догнать. Где Мы должны вставить код, с помощью которого Мы будем доставать картинку вручную? В том-же файле padded.php?
 
Всем привет! Может кто подскажет, как во всплывающем окне выводить цену добаляемых товаров с учетом выбранного параметра товара. Например: В карточке товара выбираю размер товара отличный от первого, соответственно у товара меняется динамически цена, затем добавляю его в корзину, но товар отображается в окне с той ценой, которая подтягивается с первого размера (который выбран по умолчанию), соответственно в окне одна сумма а в корзине другая(. Вот строка стандартная <div class="prices" style="float: right;"><?php echo $currency->priceDisplay($product->product_price) ?></div>, попробовал поменять на <div class="prices" style="float: right;"><?php echo $currency->priceDisplay($product->prices['salesPrice']) ?></div> вроде заработало, но не корректно, после первого добавления товара в корзину показывает цену 0, а если еще раз открыть окно всплывающее, то показывает уже корректную цену, причин этому может быть много, никак не могу решить данный вопрос, если кому не сложно подскажите пожалуйста. Сайт kamni-furnitura.ru
 
<script type="text/javascript"> setTimeout(function(){$('.box').fadeOut('fast')},3000); //3000 = 3 секунды </script>
Пробовал на сайте делать скрытие таким образом. Не понимаю почему, но все всплывающие окна начили затухать через определенное время. Даже модуль входа на сайт во всплывающем окне.
 
Пробовал на сайте делать скрытие таким образом. Не понимаю почему, но все всплывающие окна начили затухать через определенное время. Даже модуль входа на сайт во всплывающем окне.
на самом деле давно сделаны затухания.. все зависит от скрипта модального окна.
Рецепт поиска выбираете скрипт заходите на Для просмотра ссылки Войди или Зарегистрируйся вводите название скрипта + modal delay close
я затухания встраивал в скрипт вызова в vmprices.js
 
Пробовал на сайте делать скрытие таким образом. Не понимаю почему, но все всплывающие окна начили затухать через определенное время. Даже модуль входа на сайт во всплывающем окне.
Видимо, потому что все эти всплывающие окна у Вас с классом .box Попробуйте другой класс в этом случае использовать.
 
Хорошо, я спрошу по-другому. Все знают в Virtuemart 2 когда указываешь количество перед нажатием кнопки купить (или добавить в корзину) происходит какое-то ajax-обновление, то есть пересчёт без перезагрузки страницы. Так вот куда записывается это значение. Я указал количество товара, но ещё не нажал кнопку купить. Но Virtuemart уже знает ту цифру, которую я указал и когда я нажму купить, во всплывающем окне он её покажет. Где хранится эта цифра пока я не нажму кнопку купить(добавить в корзину)?
Количество товара записывается в
Код:
<input name="quantity" type="hidden" value="1" />
Где value="1" меняется за счет работы скрипта и эта информация уходит вместе с формой отправки товара в корзину. Формирует эти значения макет default_addtocart.php
Код:
<input name="quantity" type="hidden" value="<?php echo $step ?>" />

При работе с плагином Контроля остатков на складе + Он же отвечает за взаимодействие Родительского товара с Дочерними - Возникает проблема "Нулевого остатка" - Это Баг в макете Кнопки default_addtocart.php.
Решение Для просмотра ссылки Войди или Зарегистрируйся // Нулевая не определенность (Решение от пользователя OpenGlobal)
Автор передвинул инпуты с именами "pname", "view" и "virtuemart_product_id[]" в тег </form> // Они по недоразумению оказались за его пределами и как следствие форма передает в корзину не полные данные о выбранной Дочке - Мол у неё не выбрано количество и добавить в корзину нельзя

Уверен, что для вас решить эту проблему в два счёт, просто уделите несколько минут, пожалуйста. Я уже неделю пытаюсь решить эту задачу, весь интернет перерыл, сам ковырялся, на форумах писал. Так и не удалось.. Помогите..
Задача: вывести во всплывающем окне VirtueMart 2 (которое появляется при добавлении товара в корзину) значение, выбранное из списка (настраиваемые поля). Например, у нас есть футболка. Есть три цвета у неё. Покупатель выбрал цвет жёлтый и нажал добавить в корзину. Появляется всплывающее окно(туда я уже добавил название этого товара, артикул и фото). Как добавить ещё и тот самый выбранный цвет жёлтый?
Подобную задачу решил на VirtueMart 2.6.22 + Плагин VM Stockable (Контроль дочерних товаров на складе)
Результат приведен на скрине
Данное решение будет логично функционировать в случае выполнения условий:
01) Все товары, кроме родителей должны быть заполнены с полем product_override_price
02) В случае если product_override_price Вам не нужен - Все равно его заполнить и сделать равным product_price
03) P.S. есть пару расхождений в логике настройки цены - Это сделано осознано т.к. все цены регулируются не на сайте а на внешней CRM системе - на сайт грузим только сухие цифры product_price и product_override_price, которые заранее мы посчитали с учетом наценки, налогов, акций и прочее
Код:
<?php // Макет фреймового окна добавления товара в корзину
// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die('Restricted access');
$mediaModel = VmModel::getModel ('media'); // Подключаете модель медиа (Если не подключен)
$image = $mediaModel->createMediaByIds($this->product->virtuemart_media_id[0]); // Получаем массив данных о медиа файле
$productCurrency = CurrencyDisplay::getInstance($this->products[0]->product_currency, $this->products[0]->virtuemart_vendor_id); // Доступ к объекту с цена товара, передаем id валюты, id продавца
echo "<pre>";
//print_r($this); // Объект
//print_r($this->cart); // Объект корзины
//print_r($this->products); // Объект товара
//print_r($this->products[0]); // Объект товара
//print_r($this->product->customfieldscart); // Поля с атрибутом корзины
//print_r($image);
//print_r($productCurrency); // Работа с валютой
echo "</pre>";
if(empty($image[0]->file_url_thumb)){$imgpath = 'components/com_virtuemart/assets/images/vmgeneral/noimage.gif';}else{$imgpath = $image[0]->file_url_thumb;} // Определяем наличее картинки у товара
?>
<div class="b-iframe-cart-padded__wrap">
    <h1 class="b-iframe-cart-padded-wrap__title text__h2">Вы добавили в корзину</h1>
    <div class="b-iframe-cart-padded-wrap__product">
        <img class="b-iframe-cart-padded-wrap__product-img" src="/<?echo $imgpath;?>">
        <?php
            $product = $this->products[0];
            $productid = $this->products[0]->virtuemart_product_id; // Получаем текущий id товара
            krsort($this->cart->products, SORT_NATURAL | SORT_FLAG_CASE); // Сортируем массив корзины по ключам Натуральный режим по убыванию
            foreach ($this->cart->products as $key => $cartproduct) { // Цикл для вылавливания Названия и цены товара (Что б работало с дочерними товарами Фрейм окно правильно)
                if ($cartproduct->virtuemart_product_id == $productid) {
                    $productname = $cartproduct->product_name; // Отловили имя товара в массиве корзины
                    $productprice = $cartproduct->product_override_price; // Отловили цену товара в массиве корзины product_override_price // Важно что б у всех товаров была override_price (Кроме родителя)
                    break;
                }
            }
        ?>
        <?php
            echo '<h2 class="b-iframe-cart-padded-wrap__product-name text__h3">' . $productname. ' x ' . $product->quantity . ' (шт.)</h2>';
            echo '<div class="b-iframe-cart-padded-wrap__product-price text__h3 text__bold-600">' . $productCurrency->createPriceDiv('discountedPriceWithoutTax', 'COM_VIRTUEMART_PRODUCT_SALESPRICE_WITHOUT_TAX', $productprice, TRUE) . '</div>'; // discountedPriceWithoutTax - Содержит конечную цену по товару (1 способ)
        ?>
    </div>
</div>
<br style="clear:both">
 

Вложения

  • 12.jpg
    12.jpg
    51,9 KB · Просмотры: 22
Последнее редактирование модератором:
Все привет
Подскажите пожалуйста, может кто уже решил, в связи с тем, что добавляется товар не заходя в карточку, а с каталога, где не выведено количество добавляемого товара, соответственно хотелось бы во всплывашке иметь возможность менять количество добавляемого товара.
Но пока писал, чет меня осенило))) мы же уже нажали кнопку купить, все переменная то ушла в корзину))) соответственно во всплывашке уже не поменяешь, значит нужно добавить в карточку товара возможность изменять количество)))
не знаю кто так сделал, что бы в каталоге не было в карточке этой возможности(((
 
Здравствуйте! Вообщем история такая. Нужно было сделать как обсуждали выше, чтобы когда ложишь покупки они отображались во вслыв окне и шел их подсчет, проделав все что написано на форуме не вышло правда. Подаскажите и окажите пожалуйста помощь, в особенности прошу Вас @d0ublezer0 так как видно, что хорошо разбираетесь, виртуемарт у меня 3.4.2, всплывающее окно только с положенным товаром в корзину, а нужен подсчет всех! Спасибо!
После добавления файла padded есть такое окно, но он ничего не считает и не отображает. Для просмотра ссылки Войди или Зарегистрируйся
 
Последнее редактирование:
Назад
Сверху