Jump to content
  • 0

TECHNICAL ERROR: unable to save carrier


ufiartist

Question

Witam wszystkich

 

Walczę dziś cały dzień z błędem treści:

 

TECHNICAL ERROR: unable to save carrier

Details:
Error thrown: [object Object]
Text status: parsererror

 

Bład pokazuję się w podsumowaniu zakupów i co ciekawe tylko jeżeli wstawię kod promocyjny - bez niego wszystko działa aż miło ;/

Mało tego jeżeli dodam kod rabatowy po ustawieniu wszystkiego (przewoźnika, adresu, metody płatności) wszystko gra i zakup może być zrealizowany.

 

Prestashop: 1.6.0.6

 

 

Poniżej logi z konsoli:

 

n.ajaxTransport.sendjquery-1.11.0.min.js:4

n.extend.ajaxorder-opc.js:551

updateCarrierSelectionAndGiftorder-carrier.js:43

(anonymous function)jquery-1.11.0.min.js:3

n.event.dispatchjquery-1.11.0.min.js:3

n.event.add.r.handle

Edited by ufiartist (see edit history)
Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Cały problem wygenerowałem ja sam osobiście :)

 

Mianowicie:

 

Miałem kiedyś problem z rabatami - chciałem, żeby rabaty z kodu rabatowego liczyły się od ceny podstawowej a nie po przecenie.. Doszedłem do wniosku, że w klasie CartRule.php w funkcji getContextualValue zmodyfikuję trochę kod :

// Discount (%) on the selection of products
			if ($this->reduction_percent && $this->reduction_product == -2)
			{
				$selected_products_reduction = 0;
				$selected_products = $this->checkProductRestrictions($context, true);
				if (is_array($selected_products))
					foreach ($package_products as $product)
						if (in_array($product['id_product'].'-'.$product['id_product_attribute'], $selected_products)
							|| in_array($product['id_product'].'-0', $selected_products))
						{
							//$price = ($use_tax ? $product['price_wt'] : $product['price']);
							//$price = $product['id_product'];
							$array = array();
							$id_shop = Context::getContext()->shop->id;
							//echo $id_shop;
							
							$array['selected'] = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('select price*(rate/100)+price as price_old, price from `'._DB_PREFIX_.'product_shop` left join `'._DB_PREFIX_.'tax` on `'._DB_PREFIX_.'product_shop`.id_tax_rules_group = `'._DB_PREFIX_.'tax`.id_tax  WHERE `id_shop` = '.(int)$id_shop.' AND `id_product` = '.(int)$product['id_product']);
							//echo 'select price*(rate/100)+price as price_old, price from `'._DB_PREFIX_.'product_shop` left join `'._DB_PREFIX_.'tax` on `'._DB_PREFIX_.'product_shop`.id_tax_rules_group = `'._DB_PREFIX_.'tax`.id_tax  WHERE `id_shop` = '.(int)$id_shop.' AND `id_product` = '.(int)$product['id_product'];
							foreach($array as $price)
							{
								$price_old = (float)$price['price_old'];
								$price_old_wt = (float)$price['price'] ;
							}	
							$selected_products_reduction += $price_old * $product['cart_quantity'];
							
							
							 $result_add = Db::getInstance()->insert('specific_price', array(
												'price' => (float) $price_old_wt,
												'reduction' => (float) 0.000,
												'id_product' => (int)$product['id_product'],
												'id_cart' => (int)$context->cart->id,
												'from_quantity' => (int)1,
												'id_shop' => (int)$id_shop,
											));
							
						}
							$reduction_value += $selected_products_reduction * $this->reduction_percent / 100;
			}

Wszystko się liczy i śmiga aż miło :)  pod warunkiem, że się odświeży stronę :P. Nie zastanawiając się długo dołożyłem kawałek kodu js w pliku php:

<script language='javascript' type='text/javascript'>
	window.onload = function() {
    if(!window.location.hash) {
        window.location = window.location + '#loaded';
        window.location.reload();
    }
	}
</script>

Ten kawałek kodu odpowiadał za pojedyncze odświeżenie strony :)

 

Po przeniesieniu kawałka js do pliku shopping-cart.tpl wszystko działa. Nie jest to ładne rozwiązanie, ale nie miałem innego pomysłu, a potrzebowałem rozwiązania na szybko.

Tutaj rodzi się moje kolejne pytanie..

 

Czy istnieje sposób, żeby odświeżyć sam koszyk z klasy CartRule??

Albo jakiś inny pomysł na wykonanie tych zmian ?

 

Czy można jakoś z pliku CartRule.php odświeżyć sam koszyk ??

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...