Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

Suporte geral sobre problemas técnicos para OpenCart v1.x.
#47259
Após instalar o módulo checkout one a minha loja começou a aparecer o erro SyntaxError: Unexpected Token < quando tentava confirmar um pedido, após testar xml por xml localizei o problema em um xml que gera um custo para os produtos e utilizo com uma certa frequência, ao desabilitá-lo, o módulo check out one funcionou normalmente.

As linhas que estão gerando o erro são essas:
Código: Selecionar todos
<file name="catalog/model/checkout/order.php">
		<operation>
			<search position="replace"><![CDATA[
		 		, price = '" . (float)$product['price'] . "'
			]]></search>
			<add><![CDATA[
				, price = '" . (float)$product['price'] . "', cost = '" . (float)$product['cost'] . "'    //ESTA LINHA É O PROBLEMA
			]]></add>
		</operation>
	</file>	
No segundo vqmod que utilizo para embalagens de presentes que é excelente por sinal, o xml que está dando erro é esse:
Código: Selecionar todos
<file name="system/library/cart.php" error="log">
		<operation error="skip">
			<search position="before" index="1"><![CDATA[public function add($product_id, $qty = 1, $option = array()) {]]></search>
			<add><![CDATA[
			public function add_with_wrapping_gift($product_id, $qty = 1, $option = array(), $wrapping_gift = null) {
				if (!$option) {
					$key = (int)$product_id;
				} else {
					$key = (int)$product_id . ':' . base64_encode(serialize($option));
				}
				
				if($wrapping_gift) {
					$key .= '|' . base64_encode(serialize($wrapping_gift));
				}
				
				if ((int)$qty && ((int)$qty > 0)) {
					if (!isset($this->session->data['cart'][$key])) {
						$this->session->data['cart'][$key] = (int)$qty;
					} else {
						$this->session->data['cart'][$key] += (int)$qty;
					}
				}
					
				$this->data = array();
			}
			]]></add>
		</operation>
Gostaria muito de continuar utilizando o módulo de custo e de embalagem para presente e também do checkout one, alguém informar por favor como corrigir as linhas acima e parar de gerar o erro?
Editado pela última vez por linktraba em 09 Jan 2014, 09:26, em um total de 1 vez.
#47268
O erro do primeiro vqmod resolvi fazendo assim:

Em vez de buscar apenas uma linha do script no vmod, coloquei todo o código que necessitava:
Código: Selecionar todos
<file name="catalog/model/checkout/order.php">
		<operation>
			<search position="replace"><![CDATA[	 	
				foreach ($data['products'] as $product) { 
			$this->db->query("INSERT INTO " . DB_PREFIX . "order_product SET order_id = '" . (int)$order_id . "', product_id = '" . (int)$product['product_id'] . "', name = '" . $this->db->escape($product['name']) . "', model = '" . $this->db->escape($product['model']) . "', quantity = '" . (int)$product['quantity'] . "', price = '" . (float)$product['price'] . "', total = '" . (float)$product['total'] . "', tax = '" . (float)$product['tax'] . "', reward = '" . (int)$product['reward'] . "'");
			]]></search>
			<add><![CDATA[
			foreach ($data['products'] as $product) { 
			$this->db->query("INSERT INTO " . DB_PREFIX . "order_product SET order_id = '" . (int)$order_id . "', product_id = '" . (int)$product['product_id'] . "', name = '" . $this->db->escape($product['name']) . "', model = '" . $this->db->escape($product['model']) . "', quantity = '" . (int)$product['quantity'] . "', price = '" . (float)$product['price'] . "', cost = '" . (float)$product['cost'] . "', total = '" . (float)$product['total'] . "', tax = '" . (float)$product['tax'] . "', reward = '" . (int)$product['reward'] . "'");
			]]></add>
		</operation>
	</file>	
Agora vou tentar resolver o problema do segundo vqmod