1. Заменить содержимое файла  по пути components/com_onepage/themes/Ваше название шаблона в компоненте OPC например sandwitch/overrides/update_form.tpl.php

Было :


Стало :

2. Дописать в файл по пути components/com_onepage/themes/Ваше название шаблона в компоненте OPC например sandwitch/overrides/basket.html.php в самом конце

 $document = JFactory::getDocument();
 // Add Javascript
 $document->addScriptDeclaration("
 jQuery(function($){
 $('.quantity_i').live('blur', function(){
 var qn_id = document.getElementById($(this).attr('id'));
 if (parseInt($(this).val()) > 0) {
 Onepage.updateProduct(qn_id, parseInt($(this).val())); 
 }
 });
 $('.quantity_m').live('click', function(){
 var qn = $(this).parent().find('.quantity_i');
 var qn_id = document.getElementById(qn.attr('id'));
 if (parseInt(qn.val()) > 1) {
 Onepage.updateProduct(qn_id, parseInt(qn.val()) - 1); 
 }
 });
 $('.quantity_p').live('click', function(){
 var qn = $(this).parent().find('.quantity_i');
 var qn_id = document.getElementById(qn.attr('id'));
 Onepage.updateProduct(qn_id, parseInt(qn.val()) + 1); 
 });
 });
 ");
 

Разработчик Alekseygen scroll-to-top 
Версия расширения 1.0
Совместимость compat 30compat 30
Дата создания October 2018
Язык Русский
Демо Демо
Документация Отсутствует

Чтобы в VM3, в письмо покупателю с его заказом добавить изображение товара необходимо в файле com_virtuemart/views/invoice/tmpl/invoice_items.php  в цикле

foreach($this->orderDetails['items'] as $item) {
     
дописать код вызова картинки для товара, саму картинку можете вставлять дальше в таблице куда хотите
$productModel = VmModel::getModel('Product');
$product_images = $productModel->getProduct($item->virtuemart_product_id,true,false,true,$item->quantity);  
$productModel->addImages($product_images,1); 
if($product_images->images[0]->file_url_thumb ){
    echo '<a href="'.JURI::root () .$product_images->link.'"><img src="'.JURI::root () .$product_images->images[0]->file_url_thumb.'"></a>';    
}else if($product_images->images[0]->file_url){
    echo '<a href="'.JURI::root () .$product_images->link.'"><img src="'.JURI::root () .$product_images->images[0]->file_url.'" width="90"></a>';    
}

width="90"  укажите размер изображения,  вызывается если в массиве не найден file_url_thumb   

Чтобы добавить в письмо уведомление покупателю, о поступившем товаре (ожидаемом) изображение этого товара, для этого в файле productdetails/mail_html_notify.php необходимо

$productModel = VmModel::getModel('Product');
$product_images = $productModel->getProduct($productModel->_id,true,false,true,$product->quantity);  
$productModel->addImages($product_images,1); 
if($product_images->images[0]->file_url_thumb){
echo '<a href="'.JURI::root () .$product_images->link.'"><img src="'.JURI::root () .$product_images->images[0]->file_url_thumb.'"></a>';    
 }  
      

Если Вам нужно выполнить Ajax запрос к вашему плагину virtuemart, то для этого есть метод plgVmOnSelfCallFE ($type, $name, &$render), этот метод вызывается при использовании ajax на лицевой панели сайта, для этого разместите этот метод в php файле своего плагина, обратиться к нему можно, например вот таким js

var url = vmSiteurl + 'index.php?option=com_virtuemart&view=plugin&type=vmshipment&name=имя вашего плагина&ваши переменные для передачи=' +Element;
                    jQuery.getJSON(url, function(datas, textStatus) {
                        //alert(datas);
                        console.log(datas);
                    });

где в методе plgVmOnSelfCallFE ($type, $name, &$render)
$type это тип плагина , например vmshipment
$name  имя вашего плагина
&$render  возвращает результат, т.е. в php файле плагина можно написать вот такую функцию, к которой и обратится наш js запрос getJSON

function plgVmOnSelfCallFE($type, $name, &$render) {
 if ($name != $this->_name || $type != 'vmshipment') return false;
// ваш код здесь
$render="код или переменная для возвращения в js (function(datas, textStatus))";
}

т.е. не обязательно писать echo json_encode($times);

Для того чтобы сделать возможность для покупателя указать нужную ему дату и время доставки товара (делал для доставки продуктов) в Virtuemart3 необходимо сделать следующее: