Jump to content

500 server error en transferencia bancaria y contra-reembolso


Davidvg

Recommended Posts

Buenos días a todos y gracias de antenamo!

 

He configurado una tienda prestashop en 1.6 y todo funciona perfecto, pero a la hora de confirmar el metodo de pago, (tengo 3, transferencia bancaria, paypal y contra reembolso) solo funciona paypal, los otros 2 me dan un 500 server error.

 

Alguna idea? he probado a cambiar los permisos de las carpetas de dichos metodos de pago a 755 y los archivos a 644 pero nada...

 

Muchas gracias

Link to comment
Share on other sites

  • 4 weeks later...

He limpiado la cache de la tienda, todas las carpetas y nada.  No ha servido de nada, incluso he reiniciado el servidor PHP y tampoco (recomendación del host)

Este es el error que me da, por si alguno puede echarme una mano.

[PrestaShopException]

Can't load Order status
at line 156 in file classes/PaymentModule.php

150. 		if (Configuration::get('PS_TAX_ADDRESS_TYPE') == 'id_address_delivery')151. 			$context_country = $this->context->country;152. 153. 		$order_status = new OrderState((int)$id_order_state, (int)$this->context->language->id);154. 		if (!Validate::isLoadedObject($order_status))155. 			throw new PrestaShopException('Can\'t load Order status');156. 157. 		if (!$this->active)158. 			die(Tools::displayError());159. 		// Does order already exists ?160. 		if (Validate::isLoadedObject($this->context->cart) && $this->context->cart->OrderExists() == false)
  • PaymentModuleCore->validateOrder - [line 64 - modules/bankwire/controllers/front/validation.php] - [9 Arguments]
    58. 			'{bankwire_owner}' => Configuration::get('BANK_WIRE_OWNER'),59. 			'{bankwire_details}' => nl2br(Configuration::get('BANK_WIRE_DETAILS')),60. 			'{bankwire_address}' => nl2br(Configuration::get('BANK_WIRE_ADDRESS'))61. 		);62. 63. 		$this->module->validateOrder($cart->id, Configuration::get('PS_OS_BANKWIRE'), $total, $this->module->displayName, NULL, $mailVars, (int)$currency->id, false, $customer->secure_key);64. 		Tools::redirect('index.php?controller=order-confirmation&id_cart='.$cart->id.'&id_module='.$this->module->id.'&id_order='.$this->module->currentOrder.'&key='.$customer->secure_key);65. 	}66. }
  • BankwireValidationModuleFrontController->postProcess - [line 171 - classes/controller/Controller.php]
    165. 			// setMedia MUST be called before postProcess166. 			if (!$this->content_only && ($this->display_header || (isset($this->className) && $this->className)))167. 				$this->setMedia();168. 169. 			// postProcess handles ajaxProcess170. 			$this->postProcess();171. 172. 			if (!empty($this->redirect_after))173. 				$this->redirect();174. 175. 			if (!$this->content_only && ($this->display_header || (isset($this->className) && $this->className)))
  • ControllerCore->run - [line 373 - classes/Dispatcher.php]
    367. 			// Execute hook dispatcher368. 			if (isset($params_hook_action_dispatcher))369. 				Hook::exec('actionDispatcher', $params_hook_action_dispatcher);370. 371. 			// Running controller372. 			$controller->run();373. 		}374. 		catch (PrestaShopException $e)375. 		{376. 			$e->displayMessage();377. 		}
  • DispatcherCore->dispatch - [line 28 - index.php]
    22. *  @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)23. *  International Registered Trademark & Property of PrestaShop SA24. */25. 26. require(dirname(__FILE__).'/config/config.inc.php');27. Dispatcher::getInstance()->dispatch();

    Muchas gracias por vuestra ayuda

     

    Un saludo.

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

Alguien puede ayudarnos? Yo sólo tengo este método de pago porque no he podido poner todavía el de tarjeta y tengo carros abandonados porque no pueden confirmar el pedido.

O por lo menos, si alguien sabe como configurar o confirmar un pedido sin que tenga que pasar por ese paso.

O alguna idea.  Lo que sea con tal de que no abandonen compras.

Link to comment
Share on other sites

Has instalado algun modulo?

He instalado el módulo de correos y el de las cookies "Ley Europea" de los módulos externos.  No tengo ningún otro módulo de los externos.  Crees que puede ir por ahí la cosa???

Link to comment
Share on other sites

Alguno ha instalado la actualización de una tienda de la 1.5.8 a la 1.6???? y no ha tenido este tipo de error????

 

- Una pregunta, ¿se puede buscar el módulo de pago que tengo en el servidor, cargarmelo directamente, y poner el mismo módulo de una instalación limpia de la 1.6? 

¿Es posible, o pensáis que es una burrada?  La tienda ya está en funcionamiento y lo que me extraña es que acepta la elección de la transferecia como modo de pago, pero cuando le doy a "confirmar pedido", es cuando me da el error.

 

Un saludo a todos.

Link to comment
Share on other sites

Yo llevo un par de semanas con el mismo problema que vosotros. Tengo la tienda en fase de construcción todavía.

He estado buscando por la web pero no he encontrado ninguna solución aunque si más gente con el mismo problema. Mi tienda es una actualización mediante el 1 click upgrade de 1.5 a 1.6.

En la versión 1.5 no llegué a probar el módulo de transferencia bancaria  así que no sé si el error viene arrastrando desde ahi o es un problema de la actualización.

Desinstalé el módulo y lo volvi a instalar sin éxito.

Luego vi que algunos ficheros contenían líneas de código "deprecated" es decir depreciada o tal vez ya obsoleta. Los modifiqué para forzarlos a usar las líneas de código actual. Pero sin éxito.

 

Voy a intentar lo que dice Vikaz a ver si resuelve algo.

Mi duda es si sólo tradujiste el contenido del módulo de cheque o copiaste el módulo de cheque y lo renombraste como bankwire sustituyendo el contenido de bankwire por el de cheque y luego lo tradujiste.

 

Un saludo.

Link to comment
Share on other sites

Yo llevo un par de semanas con el mismo problema que vosotros. Tengo la tienda en fase de construcción todavía.

He estado buscando por la web pero no he encontrado ninguna solución aunque si más gente con el mismo problema. Mi tienda es una actualización mediante el 1 click upgrade de 1.5 a 1.6.

En la versión 1.5 no llegué a probar el módulo de transferencia bancaria  así que no sé si el error viene arrastrando desde ahi o es un problema de la actualización.

Desinstalé el módulo y lo volvi a instalar sin éxito.

Luego vi que algunos ficheros contenían líneas de código "deprecated" es decir depreciada o tal vez ya obsoleta. Los modifiqué para forzarlos a usar las líneas de código actual. Pero sin éxito.

 

Voy a intentar lo que dice Vikaz a ver si resuelve algo.

Mi duda es si sólo tradujiste el contenido del módulo de cheque o copiaste el módulo de cheque y lo renombraste como bankwire sustituyendo el contenido de bankwire por el de cheque y luego lo tradujiste.

 

Un saludo.

 

Hola Hondoi,

 

Lo que hice fue traducir completamente el módulo de cheque a "transferencia bancaria" tienes que traducirlo muy bien para que te quede bien cuando le sale al cliente.

 

De todos modos, Vekia me contestó en el foro de inglés al comentario y aporta una posible solución.

 

Os dejo aquí el comentario.

 

http://www.prestashop.com/forums/topic/341172-bankwire-module-last-step-error-500/?do=findComment&comment=1730508

 

No he podido mirarlo porque no tengo el conocimiento suficiente para bases de datos, pero si alguno sabe quizás pueda ayudarle.

 

Un saludo a todos.

Link to comment
Share on other sites

Hola Vikaz, ya había visto con anterioridad el comentario de Vekia en inglés.

Soy un recién llegado a php, y sólo "balbuceo" en él como los bebés, jajaja.

 

Sin embargo intenté seguir probando cosas basándome en la pista que daba, y era que el error podría estar relacionado con los estados de pedido. Vekia  comentaba que el error producido  indicaba que el estado del pedido no existía.

 Así que me fui al BackOffice y efectivamente pude observar que no tenía creado ningún estado de pedido para pedidos, aunque si que había 3 o 4 estados creados para las devoluciones (en inglés por  cierto).

Por lo que me parece haber entendido hasta ahora,  en los últimos pasos del módulo bankwire (donde nos dá el error 500), el programa de transferencia bancaria debe cambiar el estado del pedido a algo así como : "pendiente de confirmar el cobro" o "pendiente de confirmar transferencia bancaria".

Creé varios estados nuevos para pedidos (no tenía ninguno). Y uno de ellos lo llamé de esa forma y lo asocié a bankwire en el desplegable que aparece. De hecho cuando ves el email de prueba que Prestashop enviaría al cliente al cambiar el pedido a este estado de pedido parece todo en orden.

Sin embargo después de realizar estos cambios sigo con el error 500 cuando va a mostrar los datos para la transferencia al cliente.

Tal vez haya que seguir en esta línea de investigación y ver si en lugar de bankwire busca otra de las opciones del desplegable.

 

A ver si entre todos somos capaces de dar con la tecla.

Si alguno pudiera determinar que estado o clave de estado está buscando en esos últimos pasos y no encuentra el programa, tal vez nos acercaría a la solución.

 

Un saludo.

Link to comment
Share on other sites

Hola Vikaz, ya había visto con anterioridad el comentario de Vekia en inglés.

Soy un recién llegado a php, y sólo "balbuceo" en él como los bebés, jajaja.

 

Sin embargo intenté seguir probando cosas basándome en la pista que daba, y era que el error podría estar relacionado con los estados de pedido. Vekia  comentaba que el error producido  indicaba que el estado del pedido no existía.

 Así que me fui al BackOffice y efectivamente pude observar que no tenía creado ningún estado de pedido para pedidos, aunque si que había 3 o 4 estados creados para las devoluciones (en inglés por  cierto).

Por lo que me parece haber entendido hasta ahora,  en los últimos pasos del módulo bankwire (donde nos dá el error 500), el programa de transferencia bancaria debe cambiar el estado del pedido a algo así como : "pendiente de confirmar el cobro" o "pendiente de confirmar transferencia bancaria".

Creé varios estados nuevos para pedidos (no tenía ninguno). Y uno de ellos lo llamé de esa forma y lo asocié a bankwire en el desplegable que aparece. De hecho cuando ves el email de prueba que Prestashop enviaría al cliente al cambiar el pedido a este estado de pedido parece todo en orden.

Sin embargo después de realizar estos cambios sigo con el error 500 cuando va a mostrar los datos para la transferencia al cliente.

Tal vez haya que seguir en esta línea de investigación y ver si en lugar de bankwire busca otra de las opciones del desplegable.

 

A ver si entre todos somos capaces de dar con la tecla.

Si alguno pudiera determinar que estado o clave de estado está buscando en esos últimos pasos y no encuentra el programa, tal vez nos acercaría a la solución.

 

Un saludo.

 

Hola Hondoi, yo precisamente tenia esos estados creados, el de Pago por Transferencia Bancaria se crea solo en cuanto activas esa forma de pago, pero siguio dandome ese error.  Una putada.

Link to comment
Share on other sites

probaron hace esto:

 

desintalar el modulo: bankwire

eliminar el modulo: bankwire

limpiar smarty.

 

luego subir un modulo bankwire tomado de una version 1.6 limpia. y subirlo a modules.

 

si no funca, prueben eliminar el directorio classes y subir un directorio limpio de una version 1.6 de prestashop.

 

ESTO ES PARA LOS QUE ACTUALIZARON DE UNA VERSION 1.5 A 1.6

DICEN QUE FUNCIONA en algunos casos yo no estoy seguro, pero en teoria...

 

saludos

Link to comment
Share on other sites

Pues si la actualizacion se ha finalizado correctamente, en teoria se pueden eliminar todos los directorios y archivos menos:

 

img
config
modules (solo si hay modulos de terceros)
dowland (solo si hay archivos descargables)
themes (solo si el theme no es el por defecto)

 

o sea subir via ftp los directorios y archivos limpios de una version 1.6, esto evitara cualquier poblema de codificacion que haya surgido en la actualizacion.

 

con respecto al directorio modules, pues si usa modulos de tercero y siguen siendo funcionales a la version 1.6, puede conservar esos modulos y luego eliminar todos los demas y subir via ftp los correspondientes a la version 1.6, pero tenga en cuenta que algunos casos debera desintalar los modulos.

 

y sobre todo es mejor tener una copia de seguridad completa antes de hacer macana :wub:

 

y lo mas correcto es tenerla en su ordenador no en el hosting ni en el directorio de su tienda.

 

 

saludos :ph34r:

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

Yo he actualizado a la ultima versión de Prestashop 1.6.8 a ver si arreglaba algo pero sigue igual, el problema es que aprovechando la ocasión, he intentado actualizar mi tema siguiendo las instrucciones del mismo. (desinstalar y luego borrar y reinstalar el nuevo). Y Prestashop dice que el tema ya está instalado pero si intento ponerlo como tema principal no me aparece.

Esto cada vez está mejor, jajaja...

Hablaré con el hosting a ver si es algún problema de ellos  y si no reinstalaré desde cero. Con Paypal me pasa lo mismo, al final del proceso se queda una pantalla en blanco y el carrito no se convierte en pedido. Aunque afortunadamente queda registrado y el pago se realiza.

Creo que hay algo en los cambios de estado del pedido  que no llega a realizarse .

Tal vez ha habido un cambio en la estructura de la base de datos que durante la actualización de la 1.5  a la 1.6 se ha quedado por hacer. Alguna clase no definida tal vez.

Queda menos para que reinstale todo desde cero. 

Link to comment
Share on other sites

  • 5 weeks later...

Bueno, pues al final he conseguido solucionarlo, tal como sospechaba, mi problema se encontraba en la tablas de estados de pedido (ps_order_state) y (ps_order_state_lang) de la base de datos.

Cuando comprobaba los estados de pedido que tenía creado en dichas tablas veía que empezaban en el Id 14, faltando todos los anteriores. 

Al parecer cada módulo de pago lleva preasignado y "hardcoded" , es decir  definido en el mismo código php el número (ID) de status al que debe actualizar cada pedido dependiendo del módulo de pago y de la acción realizada por dicho módulo.

Por lo que cuando el cliente daba a confirmar el cobro por transferencia bancaria y se iba a realizar la validación del carrito y convertirlo en pedido, no encontraba el código de estado de pedido prefijado en el módulo que es el ID 10 para "esperando transferencia bancaria". Yo había creado uno para transferencia bancaria que se autoasignó con el ID 16, por lo que no lo encontraba.

Lo mismo me pasaba con el módulo de pago por cheque y con Paypal, aunque éste afortunadamente me avisaba Paypal y ya podía convertir el carrito en pedido manualmente.

 

Mi solución ha seguido los siguientes pasos.

 

 

Instalar en modo local una versión 1.6 de Prestashop. (En la web yo había utilizado el 1 click upgrade para pasar de la 1.5 a la 1.6.)

Usando PhpMyAdmin en modo local exporté a un fichero CSV el contenido de las tablas locales: ps_order_state y ps_order_state_lang que contenían los estados de pedido y sus traducciones correctas.

 

Luego desde el PhpMyAdmin de mi host importé dichos csv sobre las tablas correspondientes ps_order_state y ps_order_state_lang, indicándole que sobreescribiera los datos existentes.

Y tatachin, funciona !!!

 

Pienso que también podría haber funcionado editar directamente los Id de dichas tablas en el servidor pero de esta forma me aseguraba que el contenido coincidiera con el original y como ya había hecho la instalación local era trabajo que me ahorraba.

 

Acabo de ver que han sacado actualizaciones para el módulo bankwire y cheque. No me he atrevido a instalarlas ahora que me funciona. Lo dejaré para más adelante ...previa copia de seguridad.

 

Espero que ésto pueda ayudar a alguno.

La manera de comprobar que esta solución os pueda valer, es comprobar en el backoffice que en  Pedidos>Estados de pedidos, los Id no empiezan con el número 1 o bien no hay estados de pedidos creados. (en mi caso el primer ID era el 14)

Al parecer el problema se genera con la actualización 1 click upgrade de Prestashop para pasar de la 1.5 a la 1.6.

 

Saludos.

Soy feliz ahora.

 

Por mi parte se puede considerar este tema como solucionado.

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

  • 4 weeks later...

Prestashop Newbie hola

Tengo el mismo problema, hize lo indicas post anteriores, importe los archivos que adjuntaste pero no he tenido solución inmediata.

Te dejo el link de la pagina web http://www.magiayseduccion.com/sexshop/ puedes hacer un pedido instantáneo y al elegir tranferencia bancaria o pago contra entrega no valida la información lanzando una pagina en blanco. Estaré muy agradecido si me ayudas con dicho inconveniente.

 

Rafael

Link to comment
Share on other sites

  • 2 months later...

Hola, tengo el mismo error 500 en el módulo de transferencia bancaria, he habilitado el modo de errores y me muestra lo siguiente:

[PrestaShopDatabaseException]

Unknown column 'payment_fee' in 'field list'


INSERT INTO `ps_orders` (`id_address_delivery`, `id_address_invoice`, `id_cart`, `id_currency`, `id_shop_group`, `id_shop`, `id_lang`, `id_customer`, `id_carrier`, `current_state`, `secure_key`, `payment`, `module`, `recyclable`, `gift`, `gift_message`, `mobile_theme`, `total_discounts`, `total_discounts_tax_incl`, `total_discounts_tax_excl`, `total_paid`, `total_paid_tax_incl`, `total_paid_tax_excl`, `total_paid_real`, `total_products`, `total_products_wt`, `total_shipping`, `total_shipping_tax_incl`, `total_shipping_tax_excl`, `carrier_tax_rate`, `total_wrapping`, `total_wrapping_tax_incl`, `total_wrapping_tax_excl`, `shipping_number`, `conversion_rate`, `invoice_number`, `delivery_number`, `invoice_date`, `delivery_date`, `valid`, `reference`, `date_add`, `date_upd`, `payment_fee`, `payment_fee_rate`) VALUES ('171', '171', '334', '2', '1', '1', '3', '161', '44', '0', 'ee245a43982254e9621945584406a60d', 'Transferencia bancaria', 'bankwire', '0', '0', NULL, '0', '0', '0', '0', '8.27', '8.27', '8.27', '0', '5', '5', '3.27', '3.27', '3.27', '0', '0', '0', '0', NULL, '1', '0', '0', '0000-00-00 00:00:00', '0000-00-00 00:00:00', '0', 'DJWAUTJOX', '2014-11-17 02:00:20', '2014-11-17 02:00:20', '0', '0')

at line 635 in file classes/db/Db.php
629. 			WebserviceRequest::getInstance()->setError(500, '[SQL Error] '.$this->getMsgError().'. From '.(isset($dbg[3]['class']) ? $dbg[3]['class'] : '').'->'.$dbg[3]['function'].'() Query was : '.$sql, 97);
630. 		}
631. 		else if (_PS_DEBUG_SQL_ && $errno && !defined('PS_INSTALLATION_IN_PROGRESS'))
632. 		{
633. 			if ($sql)
634. 				throw new PrestaShopDatabaseException($this->getMsgError().'<br /><br /><pre>'.$sql.'</pre>');
635. 			throw new PrestaShopDatabaseException($this->getMsgError());
636. 		}
637. 	}
638. 
639. 	/**
DbCore->displayError - [line 325 - classes/db/Db.php] - [1 Arguments]
DbCore->query - [line 609 - classes/db/Db.php] - [1 Arguments]
DbCore->q - [line 390 - classes/db/Db.php] - [2 Arguments]
DbCore->insert - [line 464 - classes/ObjectModel.php] - [3 Arguments]
ObjectModelCore->add - [line 289 - classes/order/Order.php] - [2 Arguments]
OrderCore->add - [line 330 - classes/PaymentModule.php]
PaymentModuleCore->validateOrder - [line 64 - modules/bankwire/controllers/front/validation.php] - [9 Arguments]
BankwireValidationModuleFrontController->postProcess - [line 171 - classes/controller/Controller.php]
ControllerCore->run - [line 373 - classes/Dispatcher.php]
DispatcherCore->dispatch - [line 28 - index.php]

¿Alguien sabe que puede ser?

Link to comment
Share on other sites

  • 4 months later...

A mi me ha pasado algo parecido con el modulo de Seur 

[PrestaShopDatabaseException]

Unknown column 'id_address_delivery' in 'field list'
 

				SELECT `id_address_delivery`				FROM `prstshp_seur_order`				WHERE `id_order` = "36"			 LIMIT 1

at line 639 in file classes/db/Db.php

 

634. 			WebserviceRequest::getInstance()->setError(500, '[SQL Error] '.$this->getMsgError().'. From '.(isset($dbg[3]['class']) ? $dbg[3]['class'] : '').'->'.$dbg[3]['function'].'() Query was : '.$sql, 97);635. 		}636. 		elseif (_PS_DEBUG_SQL_ && $errno && !defined('PS_INSTALLATION_IN_PROGRESS'))637. 		{638. 			if ($sql)639. 				throw new PrestaShopDatabaseException($this->getMsgError().'<br /><br /><pre>'.$sql.'</pre>');640. 			throw new PrestaShopDatabaseException($this->getMsgError());641. 		}642. 	}643. 644. 	/**
Link to comment
Share on other sites

  • 1 month later...

buenas noches podrian ayudarme por favor al hacer la validacion por transferencia bancaria me aparece el siguinte texto:TCPDF ERROR: [image] Unable to get image: /img/tmp/product_mini_15_0.jpg

y no deja ver los datos para que la persona pueda hacer la transferencia bancaria.

ayuda por favor

Link to comment
Share on other sites

  • nadie locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...