Jump to content

Error en módulo bankwire en pago por transf.


clicky

Recommended Posts

Saludos, tengo el problema de pantalla en blanco cuando prestashop debe mostrar la información de cuenta corriente al cliente, en el último paso. Sale este mensaje de error "Cart cannot be loaded or an order has already been placed using this cart". He leído mucho acerca del caso y hay errores de todo tipo, pero ninguna de las soluciones vistas me parece solucionar esto.

He descargado el archivo bakwire.php, y al final hace llamadas en un array a los valores BANK_WIRE_DETAILS, BANK_WIRE_OWNER y BANK_WIRE_ADDRESS... que es la info que debería salir pero que no recoge de la base de datos ( me imagino )

 

 

La versión prestashop es PrestaShop™ 1.6.0.11

 

La versión módulo de transferencia es v1.0.7

 

La dirección de la tienda es www.todoparatuboda.es

 

Mi estado de ánimo es  :(

 

 

Muchas gracias a todo el que lea y gracias infinitas a quien aporte y solucione!!

Link to comment
Share on other sites

Buenas tardes

Podría deberse al archivo de traducción

Es posible que lo hayas editado incorrectamente

Si puedes busca en modules/bankwire el archivo es.php, ábrelo con un editor de texto que te permita verificar la codificación. Por ejemplo notepad++. Verifica que está codificado como UTF-8 sin BOMB y si no lo estuviera, utiliza la opción de convertir a esa codificación

Un saludo

Juan Cots

Link to comment
Share on other sites

Juan Cots gracias por tu respuesta, ese archivo está donde tu dices, pero en translations dentro de bankwire. Te pego el código, yo no le veo nada raro, qué te parece?

<?php

global $_MODULE;
$_MODULE = array();

$_MODULE['<{bankwire}prestashop>bankwire_05adcee99142c1a60fb38bb1330bbbc1'] = 'Transferencia bancaria';
$_MODULE['<{bankwire}prestashop>bankwire_a246a8e9907530c4c36b8b4c37bbc823'] = 'Aceptar pagos para sus productos a través de transferencia bancaria.';
$_MODULE['<{bankwire}prestashop>bankwire_cbe0a99684b145e77f3e14174ac212e3'] = '¿Está seguro de querer borrar los detalles?';
$_MODULE['<{bankwire}prestashop>bankwire_0ea0227283d959415eda0cfa31d9f718'] = 'El propietario y detalles de la cuenta deben configurarse para usar el módulo correctamente.';
$_MODULE['<{bankwire}prestashop>bankwire_a02758d758e8bec77a33d7f392eb3f8a'] = 'No se ha configurado ninguna divisa para este módulo.';
$_MODULE['<{bankwire}prestashop>bankwire_bfa43217dfe8261ee7cb040339085677'] = 'Se necesitan los detalles de la cuenta.';
$_MODULE['<{bankwire}prestashop>bankwire_ccab155f173ac76f79eb192703f86b18'] = 'Se necesita el propietario de la cuenta.';
$_MODULE['<{bankwire}prestashop>bankwire_c888438d14855d7d96a2724ee9c306bd'] = 'Configuración actualizada';
$_MODULE['<{bankwire}prestashop>bankwire_4ffaad55a1d22c453e7c9bad67b0598f'] = 'Pagar con transferencia bancaria';
$_MODULE['<{bankwire}prestashop>bankwire_5dd532f0a63d89c5af0243b74732f63c'] = 'Detalles del contacto';
$_MODULE['<{bankwire}prestashop>bankwire_857216dd1b374de9bf54068fcd78a8f3'] = 'Titular de la cuenta';
$_MODULE['<{bankwire}prestashop>bankwire_3ec365dd533ddb7ef3d1c111186ce872'] = 'Detalles';
$_MODULE['<{bankwire}prestashop>bankwire_6b154cafbab54ba3a1e76a78c290c02a'] = 'Tales como: sucursal bancaria, código IBAN, BIC, etc.';
$_MODULE['<{bankwire}prestashop>bankwire_f9a1a1bb716cbae0503d351ea2af4b34'] = 'Dirección sucursal bancaria';
$_MODULE['<{bankwire}prestashop>bankwire_c9cc8cce247e49bae79f15173ce97354'] = 'Guardar';
$_MODULE['<{bankwire}prestashop>validation_e2b7dec8fa4b498156dfee6e4c84b156'] = 'Esta forma de pago no está disponible.';
$_MODULE['<{bankwire}prestashop>payment_execution_644818852b4dd8cf9da73543e30f045a'] = 'Volver al Pedido';
$_MODULE['<{bankwire}prestashop>payment_execution_6ff063fbc860a79759a7369ac32cee22'] = 'Procesos de Pedido';
$_MODULE['<{bankwire}prestashop>payment_execution_511e8b930b4d3d6002984c0373eb6d4b'] = 'Pago por transferencia bancaria';
$_MODULE['<{bankwire}prestashop>payment_execution_f1d3b424cd68795ecaa552883759aceb'] = 'Resumen del pedido';
$_MODULE['<{bankwire}prestashop>payment_execution_879f6b8877752685a966564d072f498f'] = 'Su carrito está vacío.';
$_MODULE['<{bankwire}prestashop>payment_execution_05adcee99142c1a60fb38bb1330bbbc1'] = 'Transferencia bancaria';
$_MODULE['<{bankwire}prestashop>payment_execution_afda466128ee0594745d9f8152699b74'] = 'Ha elegido pagar por transferencia bancaria.';
$_MODULE['<{bankwire}prestashop>payment_execution_c884ed19483d45970c5bf23a681e2dd2'] = 'Aquí tiene un resumen de su pedido:';
$_MODULE['<{bankwire}prestashop>payment_execution_e2867a925cba382f1436d1834bb52a1c'] = 'El importe total de su pedido es';
$_MODULE['<{bankwire}prestashop>payment_execution_1f87346a16cf80c372065de3c54c86d9'] = '(impuestos inc.)';
$_MODULE['<{bankwire}prestashop>payment_execution_b28be4c423d93e02081f4e79fe2434e8'] = 'Aceptamos diferentes monedas para la transferencia bancaria.';
$_MODULE['<{bankwire}prestashop>payment_execution_a7a08622ee5c8019b57354b99b7693b2'] = 'Elija una de las siguientes:';
$_MODULE['<{bankwire}prestashop>payment_execution_a854d894458d66d92cabf0411c499ef4'] = 'Aceptamos las siguientes monedas para las transferencias bancarias:';
$_MODULE['<{bankwire}prestashop>payment_execution_3dd021316505c0204989f984246c6ff1'] = 'La información para realizar la transferencia bancaria aparecerá en la página siguiente.';
$_MODULE['<{bankwire}prestashop>payment_execution_edd87c9059d88fea45c0bd6384ce92b9'] = 'Por favor, confirme su pedido haciendo clic en "confirmo mi pedido".';
$_MODULE['<{bankwire}prestashop>payment_execution_46b9e3665f187c739c55983f757ccda0'] = 'Confirmo mi pedido';
$_MODULE['<{bankwire}prestashop>payment_execution_569fd05bdafa1712c4f6be5b153b8418'] = 'Otros modos de pago';
$_MODULE['<{bankwire}prestashop>infos_c1be305030739396775edaca9813f77d'] = 'Este módulo permite aceptar pagos por transferencia bancaria.';
$_MODULE['<{bankwire}prestashop>infos_60742d06006fde3043c77e6549d71a99'] = 'Si el cliente elige pagar por transferencia bancaria, el pedido cambiará su estado a "Pendiente de pago"';
$_MODULE['<{bankwire}prestashop>infos_5fb4bbf993c23848433caf58e6b2816d'] = 'Por lo tanto, deberás confirmar el pedido en cuanto recibas la transferencia.';
$_MODULE['<{bankwire}prestashop>payment_return_88526efe38fd18179a127024aba8c1d7'] = 'Su pedido de %s está completo.';
$_MODULE['<{bankwire}prestashop>payment_return_1f8cdc30326f1f930b0c87b25fdac965'] = 'Por favor, háganos una transferencia por';
$_MODULE['<{bankwire}prestashop>payment_return_b2f40690858b404ed10e62bdf422c704'] = 'Importe';
$_MODULE['<{bankwire}prestashop>payment_return_5ca0b1b910f393ed1f9f6fa99e414255'] = 'Propietario de la cuenta';
$_MODULE['<{bankwire}prestashop>payment_return_d717aa33e18263b8405ba00e94353cdc'] = 'Con los siguientes datos';
$_MODULE['<{bankwire}prestashop>payment_return_984482eb9ff11e6310fef641d2268a2a'] = 'Banco';
$_MODULE['<{bankwire}prestashop>payment_return_bb4ec5aac6864a05fcc220cccd8e82f9'] = 'No se olvide de insertar su número de pedido #%d en el concepto de su transferencia bancaria.';
$_MODULE['<{bankwire}prestashop>payment_return_1faa25b80a8d31e5ef25a78d3336606d'] = 'No se olvide de indicar su número de pedido %s en el concepto de su transferencia bancaria.';
$_MODULE['<{bankwire}prestashop>payment_return_19c419a8a4f1cd621853376a930a2e24'] = 'Le hemos enviado un email con esta información.';
$_MODULE['<{bankwire}prestashop>payment_return_b9a1cae09e5754424e33764777cfcaa0'] = 'Su pedido será enviado próximamente, en cuanto recibamos su pago.';
$_MODULE['<{bankwire}prestashop>payment_return_ca7e41a658753c87973936d7ce2429a8'] = 'Para cualquier duda o para más información, póngase en contacto con nuestro servicio';
$_MODULE['<{bankwire}prestashop>payment_return_66fcf4c223bbf4c7c886d4784e1f62e4'] = 'equipo experto de soporte al vendedor';
$_MODULE['<{bankwire}prestashop>payment_return_d15feee53d81ea16269e54d4784fa123'] = 'Hay un problema con su pedido, póngase en contacto con el servicio de atención al cliente.';
$_MODULE['<{bankwire}prestashop>payment_5e1695822fc5af98f6b749ea3cbc9b4c'] = 'Pago por transferencia bancaria';
$_MODULE['<{bankwire}prestashop>payment_4e1fb9f4b46556d64db55d50629ee301'] = '(el procesamiento del pedido tomará más tiempo)';


return $_MODULE;

Link to comment
Share on other sites

Buenas noches clicky

Es que el contenido no es lo importante, lo importante es la codificación

Trata de mirar como está codificado, aunque si tú no lo has editado es posible que no sea ese el problema

Mira eso y si no probaremos otra cosa

Un saludo

Link to comment
Share on other sites

No obstante si no llegas a ningún sitio con eso, lo mejor sería poner tu prestashop en modo debug para poder ver el mensaje de error que reporta.

Es sencillo, abres el archivo: config/defines.inc.php

 

Buscas

 

('_PS_MODE_DEV_', false);

 

y lo cambias por:

 

('_PS_MODE_DEV_', true);

 

Guardas y haces la prueba con la transferencia, ahora debería darte un mensaje de error completo para saber si el problema es el que te digo o no

Un saludo

Link to comment
Share on other sites

Juan Cots, como uso sublime text he tenido que buscar plugins para poder visualizar la codificación empleada en el archivo!! el caso es que ya tengo uno que funciona bien, y el resultado es UTF-8. Con esto sabido voy con tu segunda aportación, que nunca he hecho aún jejej, cuando tenga el resultado te lo posteo....y gracias!

Link to comment
Share on other sites

Perfecto! el error da la cara y es éste

 

Fatal error: Uncaught --> Smarty Compiler: Syntax error in template "/htdocs/public/www/themes/default-bootstrap/mails/es/order_conf_product_list.txt" on line 2 "{$product[\'reference\']}" - Unexpected "\" <-- thrown in /htdocs/public/www/tools/smarty/sysplugins/smarty_internal_templatecompilerbase.php on line 2

Link to comment
Share on other sites

Éste es el contenido del archivo order_conf_product_list.txt

{foreach $list as $product}
						{$product[\'reference\']}

						{$product[\'name\']}

						{$product[\'price\']}

						{$product[\'quantity\']}

						{$product[\'price\']}

	{foreach $product[\'customization\'] as $customization}
							{$product[\'name\']} {$customization[\'customization_text\']}

							{$product[\'price\']}

							{$product[\'customization_quantity\']}

							{$product[\'quantity\']}
	{/foreach}
{/foreach}

y ésto es el código fuente del archivo smarty_internal_compilebase.php ( aquí, en la descripción del error dice que el nombre del archivo termina en compileRbase.php pero el archivo que tengo yo no tiene la R

<?php
/**
 * Smarty Internal Plugin CompileBase
 *
 * @package    Smarty
 * @subpackage Compiler
 * @author     Uwe Tews
 */

/**
 * This class does extend all internal compile plugins
 *
 * @package    Smarty
 * @subpackage Compiler
 */
abstract class Smarty_Internal_CompileBase
{
    /**
     * Array of names of required attribute required by tag
     *
     * @var array
     */
    public $required_attributes = array();
    /**
     * Array of names of optional attribute required by tag
     * use array('_any') if there is no restriction of attributes names
     *
     * @var array
     */
    public $optional_attributes = array();
    /**
     * Shorttag attribute order defined by its names
     *
     * @var array
     */
    public $shorttag_order = array();
    /**
     * Array of names of valid option flags
     *
     * @var array
     */
    public $option_flags = array('nocache');

    /**
     * This function checks if the attributes passed are valid
     * The attributes passed for the tag to compile are checked against the list of required and
     * optional attributes. Required attributes must be present. Optional attributes are check against
     * the corresponding list. The keyword '_any' specifies that any attribute will be accepted
     * as valid
     *
     * @param  object $compiler   compiler object
     * @param  array  $attributes attributes applied to the tag
     *
     * @return array  of mapped attributes for further processing
     */
    public function getAttributes($compiler, $attributes)
    {
        $_indexed_attr = array();
        // loop over attributes
        foreach ($attributes as $key => $mixed) {
            // shorthand ?
            if (!is_array($mixed)) {
                // option flag ?
                if (in_array(trim($mixed, '\'"'), $this->option_flags)) {
                    $_indexed_attr[trim($mixed, '\'"')] = true;
                    // shorthand attribute ?
                } elseif (isset($this->shorttag_order[$key])) {
                    $_indexed_attr[$this->shorttag_order[$key]] = $mixed;
                } else {
                    // too many shorthands
                    $compiler->trigger_template_error('too many shorthand attributes', $compiler->lex->taglineno);
                }
                // named attribute
            } else {
                $kv = each($mixed);
                // option flag?
                if (in_array($kv['key'], $this->option_flags)) {
                    if (is_bool($kv['value'])) {
                        $_indexed_attr[$kv['key']] = $kv['value'];
                    } elseif (is_string($kv['value']) && in_array(trim($kv['value'], '\'"'), array('true', 'false'))) {
                        if (trim($kv['value']) == 'true') {
                            $_indexed_attr[$kv['key']] = true;
                        } else {
                            $_indexed_attr[$kv['key']] = false;
                        }
                    } elseif (is_numeric($kv['value']) && in_array($kv['value'], array(0, 1))) {
                        if ($kv['value'] == 1) {
                            $_indexed_attr[$kv['key']] = true;
                        } else {
                            $_indexed_attr[$kv['key']] = false;
                        }
                    } else {
                        $compiler->trigger_template_error("illegal value of option flag \"{$kv['key']}\"", $compiler->lex->taglineno);
                    }
                    // must be named attribute
                } else {
                    reset($mixed);
                    $_indexed_attr[key($mixed)] = $mixed[key($mixed)];
                }
            }
        }
        // check if all required attributes present
        foreach ($this->required_attributes as $attr) {
            if (!array_key_exists($attr, $_indexed_attr)) {
                $compiler->trigger_template_error("missing \"" . $attr . "\" attribute", $compiler->lex->taglineno);
            }
        }
        // check for not allowed attributes
        if ($this->optional_attributes != array('_any')) {
            $tmp_array = array_merge($this->required_attributes, $this->optional_attributes, $this->option_flags);
            foreach ($_indexed_attr as $key => $dummy) {
                if (!in_array($key, $tmp_array) && $key !== 0) {
                    $compiler->trigger_template_error("unexpected \"" . $key . "\" attribute", $compiler->lex->taglineno);
                }
            }
        }
        // default 'false' for all option flags not set
        foreach ($this->option_flags as $flag) {
            if (!isset($_indexed_attr[$flag])) {
                $_indexed_attr[$flag] = false;
            }
        }

        return $_indexed_attr;
    }

    /**
     * Push opening tag name on stack
     * Optionally additional data can be saved on stack
     *
     * @param object $compiler compiler object
     * @param string $openTag  the opening tag's name
     * @param mixed  $data     optional data saved
     */
    public function openTag($compiler, $openTag, $data = null)
    {
        array_push($compiler->_tag_stack, array($openTag, $data));
    }

    /**
     * Pop closing tag
     * Raise an error if this stack-top doesn't match with expected opening tags
     *
     * @param  object       $compiler    compiler object
     * @param  array|string $expectedTag the expected opening tag names
     *
     * @return mixed        any type the opening tag's name or saved data
     */
    public function closeTag($compiler, $expectedTag)
    {
        if (count($compiler->_tag_stack) > 0) {
            // get stacked info
            list($_openTag, $_data) = array_pop($compiler->_tag_stack);
            // open tag must match with the expected ones
            if (in_array($_openTag, (array) $expectedTag)) {
                if (is_null($_data)) {
                    // return opening tag
                    return $_openTag;
                } else {
                    // return restored data
                    return $_data;
                }
            }
            // wrong nesting of tags
            $compiler->trigger_template_error("unclosed {$compiler->smarty->left_delimiter}" . $_openTag . "{$compiler->smarty->right_delimiter} tag");

            return;
        }
        // wrong nesting of tags
        $compiler->trigger_template_error("unexpected closing tag", $compiler->lex->taglineno);

        return;
    }
}

Link to comment
Share on other sites

Buenas tardes

En order_conf_product_list.txt prueba a cambiar

{$product[\'reference\']}

por

 {$product['reference']}

 

Es decir quitando las \

Si el error cambia de línea, tendrás que quitar todas las de name, price, quantity....etc

Link to comment
Share on other sites

Juan Cots, acabas de ayudarme totalmente a resolver el problema, es lo que decías, sobraban los slashes invertidos esos! Ahora funciona correctamente y te lleva al siguiente paso donde ofrece la información. Pero quizá mi siguiente pregunta sea mas complicada de contestar.....porqué pasa eso!! ántes iba todo normal, y un buen día ocurrió eso. Puede ocurrir si toqueteas en compilar ? Gracias, marco el problema como resuelto

Link to comment
Share on other sites

Hola clicky.

Me alegro de que funcione bien...en cuanto a tu nueva pregunta...jaja...esa si que es difícil.

Pero lo que yo creo que está claro es que el problema es de codificación por alguna parte.

El problema es que en Prestashop inter-actuan muchas cosas, puede ser un módulo que hayas instalado, un archivo que hayas editado....ni idea

Lo único que te aconsejaría es que, si como dices tu versión es la 1.6.0.11,  actualices a la 14 porque corrige muchos problemillas.

Un saludo

Juan Cots

Link to comment
Share on other sites

Buenos días

Imprescindible tener copia de seguridad de tienda y de base de datos, que te permita volver atrás, dado que riesgo siempre existe

Supongo que conoces la herramienta de prestashop 1-Click Upgrade, lo hace todo extremadamente sencillo.

De la 1.6.0.11 a la 1.6.0.14 no debería ser muy traumático, los posibles problemas suelen derivarse de falta de recursos del servidor. Desconozco tu entorno, pero configurando en el apartado correspondiente rendimiento del servidor: bajo, no deberías tener problemas

Lo único con lo que he tenido problemas es al utilizar las opciones de copia de seguridad que trae el propio 1-Click Upgrade. Con muchos productos y pocos recursos se cuelga

Por tanto copia previa y hay que animarse, dado que todos los módulos que instales seguramente estarán optimizados para esta versión y vete a saber que problemas te pueden surgir

Un saludo

Link to comment
Share on other sites

Venga pues voy a animarme Juan, ántes de nada descargaré toda la web a local ( íntegra sin excepciones ) y descargaré la base de datos también. Cruzaré los dedos y 1click update.

Un abrazo y que tengas buen final de semana, es una alegría leer a gente como tu

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...