Welcome, Guest
Username: Password: Remember me
Use this Category for your support questions about Virtuemart Template - CleanMart (SKU# FLEX-00015)

TOPIC: Variant Price not Updating

Variant Price not Updating 3 years 8 months ago #13599

I have been struggling with this for quite some time now. I have stockable variants for many items. When someone chooses a size or size and colour, the correct price appears. But if you choose a different size or different colour without refreshing the page, the price and item name does not update.

What little information I could find on this suggests there is some missing ajax code in the template. I tried to put it in both the default.php as well as flexv2.php but the code just shows up at the bottom of the generated page.

Here is a link to a product displaying this issue on my test site.
toymoose.com/bfw/index.php/online-catalog/finishes/oil-based/gel-stains-detail

Thanks.
The administrator has disabled public write access.

Variant Price not Updating 3 years 8 months ago #13613

Hi,

hmm yes i noticed the problem on your website.. Interesting. What happens when you disable the CleanMart and get back to official Virtuemart Layout? Does the price update work just fine without a page refresh?

To temporarily disable the CleanMart, rename this folder:
/templates/rt_plethora/html/com_virtuemart/
to this:
templates/rt_plethora/html/com_virtuemart2/

then re-visit this URL: toymoose.com/bfw/index.php/online-catalog/finishes/oil-based/gel-stains-detail

If product prices are updated correctly, then it means, CleanMart is responsible for this failure. If this is the case, then I need to investigate your website deeply to figure out what goes wrong. Please fill out this support-request-form below and email it to This email address is being protected from spambots. You need JavaScript enabled to view it. i will take a look at your website ASAP.
[Problem]
http://www.flexiblewebdesign.com/forum-virtuemart-template-support/3207-variant-price-not-updating
 
[The URL(s) to see the failure on your website]
<< i.e: www.domain.com/category/product-sample. If the problem is general, then just the domain name >>
 
[Joomla Administrator Credentials]
<< Joomla Administrator URL & Username & Password >>
 
[FTP credentials] (Provide FTP credentials in this format below)
FTP server: ftp.yourdomain.com
FTP username: <<username>>
FTP password: <<password>>
Port: << port number -- if it is other than 21 -->>

regards.
Last Edit: 3 years 8 months ago by Support.
The administrator has disabled public write access.

Variant Price not Updating 3 years 7 months ago #13673

I tried to disable the template as you previously stated, but it still does not work. But there is also the drag and drop mod virtuemart product, there is the dynupdate.js that was customized to work with cleanmart, could these all be factors?

I have a hunch it has to do with either dynupdate.js or the way the price is called from the URL. After once successfully updating the variant, choosing new options will result in javascript console in firefox shows it calls a product id (203, 244, etc) but a warning is given as follows:

Given URL is not allowed by the Application configuration: One or more of the given URLs is not allowed by the App's settings. It must match the Website URL or Canvas URL, or the domain must be a subdomain of one of the App's domains.

Does this lead you to think of any fix?

Thank you
The administrator has disabled public write access.

Variant Price not Updating 3 years 7 months ago #13683

I paid someone to take a look at the issue for me, because I am trying to move forward with this website. Here is what he said:

The problem is in the Virtuemart.updateContent function.
Your template seems to override the default file (containing this function) provided by Virtuemart.

Here is your file:
toymoose.com/bfw/templates/rt_plethora/js/dynupdate.js?vmver=9058

Here is the original file used by Virtuemart.
demo.virtuemart.net/components/com_virtuemart/assets/js/dynupdate.js?vmver=9070

The main reason it does not work is that your function does not have the callback parameter.
Virtuemart.updateContent = function(url)


While the VM have it:
Virtuemart.updateContent = function(url, callback)


Also if you check at the end of the function you will find that code:

if (callback && typeof(callback) === "function") {
callback();
}


This actually calls the callback which in our case enables the plugin to work after the ajax update.


Can you please provide me some code to fix this issue for me? I love the template, but it is very important for the store to work as well.
Thanks
The administrator has disabled public write access.

Variant Price not Updating 3 years 7 months ago #13713

Hi,

Thanks for the info. Looks like dynupdate.js has been updated recently in the Virturmart Core, that we weren't aware. We have injected only couple lines in that file, the rest of the codes are the same.

Open this file: toymoose.com/bfw/templates/rt_plethora/js/dynupdate.js
Remove everything in it, instead copy-paste these below
/**
 * Customized to work with Flexible CleanMart
 * dynupdate.js: Dynamic update of product content for VirtueMart
 *
 * @package	VirtueMart
 * @subpackage Javascript Library
 * @author Max Galt
 * @copyright Copyright (c) 2014 VirtueMart Team. All rights reserved.
 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
 */
 
if (typeof Virtuemart === "undefined")
	var Virtuemart = {};
jQuery(function($) {
 
    // Add to cart and other scripts may check this variable and return while
    // the content is being updated.
    Virtuemart.isUpdatingContent = false;
    Virtuemart.updateContent = function(url, callback) {
 
        if(Virtuemart.isUpdatingContent) return false;
        Virtuemart.isUpdatingContent = true;
        urlSuf='tmpl=component&format=html';
        var glue = '&';
        if(url.indexOf('&') == -1 && url.indexOf('?') == -1){
			glue = '?';
        }
        url += glue+urlSuf;
		jQuery.ajax({
            url: url,
            dataType: 'html',
            success: function(data) {
                var el = $(data).find(Virtuemart.containerSelector);
				if (! el.length) el = $(data).filter(Virtuemart.containerSelector);
				if (el.length) {
					Virtuemart.container.html(el.html());
                    Virtuemart.updateCartListener();
                    Virtuemart.updateDynamicUpdateListeners();
 
					if (Virtuemart.updateImageEventListeners) Virtuemart.updateImageEventListeners();
					if (Virtuemart.updateChosenDropdownLayout) Virtuemart.updateChosenDropdownLayout();
				}
				Virtuemart.isUpdatingContent = false;
				initVMEvents();
				jQuery("#FlexibleAjaxLoading").fadeOut(300);
				if (callback && typeof(callback) === "function") {
					callback();
				}
 
            }
        });
        Virtuemart.isUpdatingContent = false;
    }
 
    // GALT: this method could be renamed into more general "updateEventListeners"
    // and all other VM init scripts placed in here.
    Virtuemart.updateCartListener = function() {
        // init VM's "Add to Cart" scripts
		Virtuemart.product(jQuery(".product"));
        //Virtuemart.product(jQuery("form.product"));
		jQuery('body').trigger('updateVirtueMartProductDetail');
        //jQuery('body').trigger('ready');
    }
 
    Virtuemart.updL = function (event) {
        event.preventDefault();
        var url = jQuery(this).attr('href');
        Virtuemart.setBrowserNewState(url);
        Virtuemart.updateContent(url);
    }
 
    Virtuemart.upd = function(event) {
        event.preventDefault();
        var url = jQuery(this).attr('url');
        if (typeof url === typeof undefined || url === false) {
            url = jQuery(this).val();
        }
        if(url!=null){
			url = url.replace(/amp;/g, '');
            Virtuemart.setBrowserNewState(url);
            Virtuemart.updateContent(url);
        }
    };
 
	Virtuemart.updForm = function(event) {
 
		cartform = jQuery("#checkoutForm");
		carturl = cartform.attr('action');
		if (typeof carturl === typeof undefined || carturl === false) {
			carturl = jQuery(this).attr('url');
			console.log('my form no action url, try attr url ',cartform);
			if (typeof carturl === typeof undefined || carturl === false) {
				carturl = 'index.php?option=com_virtuemart&view=cart'; console.log('my form no action url, try attr url ',carturl);
			}
		}
		urlSuf='tmpl=component';
		carturlcmp = carturl;
		if(carturlcmp.indexOf(urlSuf) == -1){
			var glue = '&';
			if(carturlcmp.indexOf('&') == -1 && carturlcmp.indexOf('?') == -1){
				glue = '?';
			}
			carturlcmp += glue+urlSuf;
		}
 
		cartform.submit(function() {
			jQuery(this).vm2front("startVmLoading");
			if(Virtuemart.isUpdatingContent) return false;
			Virtuemart.isUpdatingContent = true;
			//console.log('my form submit url',carturlcmp);
			jQuery.ajax({
				type: "POST",
				url: carturlcmp,
				dataType: "html",
				data: cartform.serialize(), // serializes the form's elements.
				success: function(datas) {
 
					if (typeof window._klarnaCheckout !== "undefined"){
						window._klarnaCheckout(function (api) {
							console.log(' updateSnippet suspend');
							api.suspend();
						});
					}
 
 
					var el = jQuery(datas).find(Virtuemart.containerSelector);
					if (! el.length) el = jQuery(datas).filter(Virtuemart.containerSelector);
					if (el.length) {
						Virtuemart.container.html(el.html());
						//Virtuemart.updateCartListener();
						//Virtuemart.updDynFormListeners();
						//Virtuemart.updateCartListener();
 
						if (Virtuemart.updateImageEventListeners) Virtuemart.updateImageEventListeners();
						if (Virtuemart.updateChosenDropdownLayout) Virtuemart.updateChosenDropdownLayout();
					}
					Virtuemart.setBrowserNewState(carturl);
					Virtuemart.isUpdatingContent = false;
					jQuery(this).vm2front("stopVmLoading");
					if (typeof window._klarnaCheckout !== "undefined"){
						window._klarnaCheckout(function (api) {
							console.log(' updateSnippet suspend');
							api.resume();
						});
					}
				},
				error: function(datas) {
					alert('Error updating cart');
					Virtuemart.isUpdatingContent = false;
					jQuery(this).vm2front("stopVmLoading");
				},
				statusCode: {
					404: function() {
						Virtuemart.isUpdatingContent = false;
						jQuery(this).vm2front("stopVmLoading");
						alert( "page not found" );
					}
				}
			});
			return false; // avoid to execute the actual submit of the form.
		});
	};
 
	Virtuemart.updFormS = function(event) {
		Virtuemart.updForm();
		jQuery("#checkoutForm").submit();
	}
 
	Virtuemart.updDynFormListeners = function() {
 
		jQuery('#checkoutForm').find('*[data-dynamic-update=1]').each(function(i, el) {
			var nodeName = el.nodeName;
			el = jQuery(el);
			//console.log('updDynFormListeners ' + nodeName, el);
			switch (nodeName) {
				case 'BUTTON':
					el[0].onchange = null;
					el.off('click',Virtuemart.updForm);
					el.on('click',Virtuemart.updForm);
				default:
					el[0].onchange = null;
					el.off('click',Virtuemart.updFormS);
					el.on('click',Virtuemart.updFormS);
					break;
			}
		});
	}
 
    Virtuemart.updateDynamicUpdateListeners = function() {
        jQuery('*[data-dynamic-update=1]').each(function(i, el) {
            var nodeName = el.nodeName;
            el = jQuery(el);
            //console.log('updateDynamicUpdateListeners '+nodeName, el);
            switch (nodeName) {
                case 'A':
					el[0].onclick = null;
                    el.off('click',Virtuemart.updL);
                    el.on('click',Virtuemart.updL);
                    break;
                default:
					el[0].onchange = null;
                    el.off('change',Virtuemart.upd);
                    el.on('change',Virtuemart.upd);
            }
        });
    }
 
    var everPushedHistory = false;
    var everFiredPopstate = false;
    Virtuemart.setBrowserNewState = function (url) {
        if (typeof window.onpopstate == "undefined")
            return;
        var stateObj = {
            url: url
        }
        everPushedHistory = true;
        try {
            history.pushState(stateObj, "", url);
        }
        catch(err) {
            // Fallback for IE
            window.location.href = url;
            return false;
        }
    }
 
    Virtuemart.browserStateChangeEvent = function(event) {
        // Fix. Chrome and Safari fires onpopstate event onload.
        // Also fix browsing through history when mixed with Ajax updates and
        // full updates.
        if (!everPushedHistory && event.state == null && !everFiredPopstate)
            return;
 
        everFiredPopstate = true;
        var url;
        if (event.state == null) {
            url = window.location.href;
        } else {
            url = event.state.url;
        }
        Virtuemart.updateContent(url);
    }
    window.onpopstate = Virtuemart.browserStateChangeEvent;
 
function initVMEvents() {
	if (typeof jQuery.fn.FlexibleChildAjax === 'function') { jQuery.fn.FlexibleChildAjax() };
	if (typeof jQuery.fn.FlexiblNeighborsdAjax === 'function') {jQuery.fn.FlexiblNeighborsdAjax();}
	if (typeof jQuery.fn.flexibleZoom === 'function') { jQuery.fn.flexibleZoom();}
	if (typeof jQuery.fn.FlexibleTabs === 'function') {jQuery.fn.FlexibleTabs();}
	if (typeof jQuery.fn.EnlargeView === 'function') {jQuery.fn.EnlargeView();}
	if (typeof jQuery.fn.FlexibleImageCustomField === 'function') {jQuery.fn.FlexibleImageCustomField();}
	FB.XFBML.parse(); 
	addthis.toolbox(".addthis_toolbox");
 
}
 
 
});

then you should be good to go.

FYI: This patch also has been added to CleanMart v3.9.3 permanently (the new CleanMart version)

If still no good, let me know. I will deeply investigate your case.

Regards
Last Edit: 3 years 7 months ago by Support.
The administrator has disabled public write access.

Variant Price not Updating 3 years 7 months ago #13718

As far as I can tell, it is working PERFECTLY now!

Thank you so much!

toymoose.com/bfw/index.php/online-catalog/finishes/oil-based/gel-stains-detail
The administrator has disabled public write access.

Variant Price not Updating 3 years 7 months ago #13721

Thanks for confirming. I am glad everything is good to go.

FYI: This patch has been added permanently in the new CleanMart version (v3.9.3)

Regards.
The administrator has disabled public write access.

Variant Price not Updating 1 year 6 months ago #15538

I have problem with price variant. my version is 3.9.3.2 everything works well but price is not updating dynamically when a variant is selected for example "size" or "color".

works perfect if i use no template (rename templatename/com_virtuemart).

any problem with dynupdate.js ??

VirtueMart 3.2.12
Joomla, 3.8.5
The administrator has disabled public write access.

Variant Price not Updating 1 year 6 months ago #15539

Hi Alejandro,

Try this below, and let me know about the result:

1- open this JS file:
ROOT//templates/YOUR_TEMPLATE/js/dynupdate.js

2- remove everything inside and instead, copy-paste these:
/**
 * dynupdate.js: Dynamic update of product content for VirtueMart
 *
 * @package	VirtueMart
 * @subpackage Javascript Library
 * @author Max Galt
 * @copyright Copyright (c) 2014 VirtueMart Team. All rights reserved.
 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
 */
 
if (typeof Virtuemart === "undefined")
	var Virtuemart = {};
jQuery(function($) {
 
    // Add to cart and other scripts may check this variable and return while
    // the content is being updated.
    Virtuemart.isUpdatingContent = false;
	Virtuemart.recalculate = false;
	Virtuemart.recalculate = false;
	Virtuemart.setBrowserState = true;
 
    Virtuemart.updateContent = function(url, callback) {
 
        if(Virtuemart.isUpdatingContent) return false;
        Virtuemart.isUpdatingContent = true;
        urlSuf='tmpl=component&format=html&dynamic=1';
        var glue = '&';
        if(url.indexOf('&') == -1 && url.indexOf('?') == -1){
			glue = '?';
        }
        url += glue+urlSuf;
		$(this).vm2front("startVmLoading");
		$.ajax({
            url: url,
            dataType: 'html',
            success: function(data) {
				var title = $(data).filter('title').text();
				$('title').text(title);
				var el = $(data).find(Virtuemart.containerSelector);
				if (! el.length) el = $(data).filter(Virtuemart.containerSelector);
				if (el.length) {
					Virtuemart.container.html(el.html());
 
					Virtuemart.updateCartListener();
					Virtuemart.updateDynamicUpdateListeners();
 
					if (Virtuemart.updateImageEventListeners) Virtuemart.updateImageEventListeners();
					if (Virtuemart.updateChosenDropdownLayout) Virtuemart.updateChosenDropdownLayout();
					//Virtuemart.product($("form.product"));
 
					if(Virtuemart.recalculate) {
						$("form.js-recalculate").each(function(){
							if ($(this).find(".product-fields").length && !$(this).find(".no-vm-bind").length) {
								var id= $(this).find('input[name="virtuemart_product_id[]"]').val();
								Virtuemart.setproducttype($(this),id);
							}
						});
					}
				}
				Virtuemart.isUpdatingContent = false;
				if (callback && typeof(callback) === "function") {
					callback();
				}
				$(this).vm2front("stopVmLoading");
            },
			error: function(datas) {
				alert('Error updating page');
				Virtuemart.isUpdatingContent = false;
				$(this).vm2front("stopVmLoading");
			},
			statusCode: {
				404: function() {
					Virtuemart.isUpdatingContent = false;
					$(this).vm2front("stopVmLoading");
					alert( "page not found" );
				}
			}
        });
        Virtuemart.isUpdatingContent = false;
    }
 
    // GALT: this method could be renamed into more general "updateEventListeners"
    // and all other VM init scripts placed in here.
    Virtuemart.updateCartListener = function() {
        // init VM's "Add to Cart" scripts should be in a function registered for the trigger, so long, just quickn dirty
		if (typeof Virtuemart.product !== "undefined"){
			Virtuemart.product($(".product"));
		}
		$('body').trigger('updateVirtueMartProductDetail');
    }
 
    Virtuemart.updL = function (event) {
        event.preventDefault();
        var url = $(this).attr('href');
        Virtuemart.setBrowserNewState(url);
        Virtuemart.updateContent(url);
    }
 
    Virtuemart.upd = function(event) {
        event.preventDefault();
        var url = $(this).attr('url');
        if (typeof url === typeof undefined || url === false) {
            url = $(this).val();
        }
        if(url!=null){
			url = url.replace(/amp;/g, '');
            Virtuemart.setBrowserNewState(url);
            Virtuemart.updateContent(url);
        }
    };
 
	Virtuemart.updForm = function(event) {
 
		cartform = $("#checkoutForm");
		carturl = cartform.attr('action');
		if (typeof carturl === typeof undefined || carturl === false) {
			carturl = $(this).attr('url');
			console.log('my form no action url, try attr url ',cartform);
			if (typeof carturl === typeof undefined || carturl === false) {
				carturl = 'index.php?option=com_virtuemart&view=cart'; console.log('my form no action url, try attr url ',carturl);
			}
		}
		urlSuf='tmpl=component';
		carturlcmp = carturl;
		if(carturlcmp.indexOf(urlSuf) == -1){
			var glue = '&';
			if(carturlcmp.indexOf('&') == -1 && carturlcmp.indexOf('?') == -1){
				glue = '?';
			}
			carturlcmp += glue+urlSuf;
		}
 
		cartform.submit(function() {
			if(Virtuemart.isUpdatingContent) return false;
			Virtuemart.isUpdatingContent = true;
			$(this).vm2front("startVmLoading");
 
			$.ajax({
				type: "POST",
				url: carturlcmp,
				dataType: "html",
				data: cartform.serialize(), // serializes the form's elements.
				success: function(datas) {
 
					if (typeof window._klarnaCheckout !== "undefined"){
						window._klarnaCheckout(function (api) {
							console.log(' updateSnippet suspend');
							api.suspend();
						});
					}
 
 
					var el = $(datas).find(Virtuemart.containerSelector);
					if (! el.length) el = $(datas).filter(Virtuemart.containerSelector);
					if (el.length) {
						Virtuemart.container.html(el.html());
						//Virtuemart.updateCartListener();
						//Virtuemart.updDynFormListeners();
						//Virtuemart.updateCartListener();
 
						if (Virtuemart.updateImageEventListeners) Virtuemart.updateImageEventListeners();
						if (Virtuemart.updateChosenDropdownLayout) Virtuemart.updateChosenDropdownLayout();
					}
					jQuery('body').trigger('updateVirtueMartCartModule');
					Virtuemart.setBrowserNewState(carturl);
					Virtuemart.isUpdatingContent = false;
					$(this).vm2front("stopVmLoading");
					if (typeof window._klarnaCheckout !== "undefined"){
						window._klarnaCheckout(function (api) {
							console.log(' updateSnippet suspend');
							api.resume();
						});
					}
				},
				error: function(datas) {
					alert('Error updating cart');
					Virtuemart.isUpdatingContent = false;
					$(this).vm2front("stopVmLoading");
				},
				statusCode: {
					404: function() {
						Virtuemart.isUpdatingContent = false;
						$(this).vm2front("stopVmLoading");
						alert( "page not found" );
					}
				}
			});
			return false; // avoid to execute the actual submit of the form.
		});
	};
 
	Virtuemart.updFormS = function(event) {
		Virtuemart.updForm();
		$("#checkoutForm").submit();
	}
 
	Virtuemart.updDynFormListeners = function() {
 
		$('#checkoutForm').find('*[data-dynamic-update=1]').each(function(i, el) {
			var nodeName = el.nodeName;
			el = $(el);
			//console.log('updDynFormListeners ' + nodeName, el);
			switch (nodeName) {
				case 'BUTTON':
					el[0].onchange = null;
					el.off('click',Virtuemart.updForm);
					el.on('click',Virtuemart.updForm);
				default:
					el[0].onchange = null;
					el.off('click',Virtuemart.updFormS);
					el.on('click',Virtuemart.updFormS);
					break;
			}
		});
	}
 
    Virtuemart.updateDynamicUpdateListeners = function() {
        $('*[data-dynamic-update=1]').each(function(i, el) {
            var nodeName = el.nodeName;
            el = $(el);
            //console.log('updateDynamicUpdateListeners '+nodeName, el);
            switch (nodeName) {
                case 'A':
					el[0].onclick = null;
                    el.off('click',Virtuemart.updL);
                    el.on('click',Virtuemart.updL);
                    break;
                default:
					el[0].onchange = null;
                    el.off('change',Virtuemart.upd);
                    el.on('change',Virtuemart.upd);
            }
        });
    }
 
    var everPushedHistory = false;
    var everFiredPopstate = false;
    Virtuemart.setBrowserNewState = function (url) {
    	if(!Virtuemart.setBrowserState) return false;
 
        if (typeof window.onpopstate == "undefined")
            return;
        var stateObj = {
            url: url
        }
        everPushedHistory = true;
        try {
            history.pushState(stateObj, "", url);
        }
        catch(err) {
            // Fallback for IE
            window.location.href = url;
            return false;
        }
    }
 
    Virtuemart.browserStateChangeEvent = function(event) {
        // Fix. Chrome and Safari fires onpopstate event onload.
        // Also fix browsing through history when mixed with Ajax updates and
        // full updates.
        if (!everPushedHistory && event.state == null && !everFiredPopstate)
            return;
 
        everFiredPopstate = true;
        var url;
        if (event.state == null) {
            url = window.location.href;
        } else {
            url = event.state.url;
        }
        Virtuemart.updateContent(url);
    }
    window.onpopstate = Virtuemart.browserStateChangeEvent;
 
});
Last Edit: 1 year 6 months ago by Support.
The administrator has disabled public write access.

Variant Price not Updating 1 year 6 months ago #15546

Still not working. This template includes a virtuemart template. the dynamic price works fine with the included template, but yours is better so i want to keep Cleanmart.
Both your code, the cleanmart included dynupdate and this code you sent me works fine with the other virtuemart template productdetails/default.php but does not work with cleanmart productdetails/default.php
The administrator has disabled public write access.

Variant Price not Updating 1 year 5 months ago #15562

Hi,

CleanMart needs an update to resolve this price updating issue. We are working on it, the new version will be released soon. Actually, there are some other bugs that we have detected and some further improvements are coming. Stay tuned ;)

regards
The administrator has disabled public write access.

Variant Price not Updating 10 months 1 week ago #15737

Hi. I have the same problem. I've been preparing an eshop all month. Tomorrow we have to run live traffic. Now I know I have the same mistake. Overwhelming js did not help. please for quick help.
The administrator has disabled public write access.

Variant Price not Updating 10 months 6 days ago #15738

when I have turn on /html/com_virtuemart and sh404sef . . . .not work.

when I turn off only sh404sef . . . still not work
when I turn off /html/com_virtuemart . . . still not work

but, when I turn off all . . . price start updating!

PS. When is web crashed and price not updating, adding to cart is right, with right price.

I am crazy :(
The administrator has disabled public write access.

Variant Price not Updating 9 months 4 weeks ago #15740

Hi Martin, are you sure you have the latest version?
In what template you are experiencing this problem? (MaterialMart or CleanMart)

I can't be sure about sh404sef, you might try disabling ENABLE SEO option via Virtuemart Backend and let sh404sef takes care the SEO url generation for VM pages (but i totally not recommend, because VM is very good at creating SEO URL's as long as you define Menu Items for VM Categories)

Regards
The administrator has disabled public write access.

Variant Price not Updating 3 months 3 weeks ago #15829

Hi I'm having the same issue. Tried it with every soulution posted in this forum (aslo in other threads). When I deactivate your
/templates/flexible_sportmart/html/com_virtuemart/productdetails/default.php
It works fine.
The administrator has disabled public write access.

Variant Price not Updating 5 days 21 hours ago #15857

Dan Hummel wrote:
Hi I'm having the same issue. Tried it with every soulution posted in this forum (aslo in other threads). When I deactivate your
/templates/flexible_sportmart/html/com_virtuemart/productdetails/default.php
It works fine.

Still having this issue after paying 69$ for the latest Version of SportMart 3.4

Any Ideas?
The administrator has disabled public write access.
Time to create page: 0.136 seconds

MaterialMart

for Virtuemart 3

Google's Material Design has finally arrived to Virtuemart

Virtumart Template - MaterialMart Virtumart Template - CleanMart Virtumart Template - CleanMart Virtumart Template - CleanMart

Fully responsive!

Buy Now   |   Live Demo