Jump to content

guadamuz

Members
  • Posts

    20
  • Joined

  • Last visited

Profile Information

  • Location
    CR
  • Activity
    Developer

guadamuz's Achievements

Newbie

Newbie (1/14)

2

Reputation

  1. Saludos Mi problema es que al actualizar a la versión 1.5.4.1 desde la versión 1.5.3.1 se produjo un problema muy raro, que es que la traducción del carrito mantiene algunas palabras en inglés ¿? Miren las imagenes Por cierto al entrar al carrito (para ver los productos) no da problemas con las traducciones. Si alguno tiene alguna idea se recibe.
  2. Ya lo solucione. Todo estaba bien, era culpa del Google Chrome, porque en Mozilla Firefox funciona bien. Gracias de todas maneras Admin, favor borrar el post.
  3. Saludos Mi problema es el siguiente: Creo varias tiendas copias de una tienda original pero cuando quiero elegirla para empezar a trabajar, solo me deja seleccionar la original. Pero una copia de la base de datos, trabajando en local con XAMMP, funciona de mil maravillas. ¿Alguna idea de que podría ser?
  4. Saludos a todos Quería ver si alguno sabe como quitar uno de los cuadros de las direcciones en la confirmación y el select para que quedará de esta forma. Solo necesito una dirección (no seleccionable) y como lo muestra prestashop, repite la dirección dos veces (entrega y facturación) He tratado de modificar el archivo order-address.tpl en el div "addresses clearfix" pero muestra ninguno o muestra los dos. Gracias de antemano por cualquier ayuda
  5. Revisa el modulo de "Transferencia bancaria" para verificar los datos que debería tener.
  6. Bien, al final lo puede solucionar reinstalando la tienda desde la versión original 1.5.3 y actualizando hasta la 1.5.4.1.
  7. Con la ayuda de Rperales me salió este código que quiero compartir con todos: 1- Tuve que crear un campo nuevo en la tabla 'ps_customer' llamado "cod_customer". Acá van a ir los códigos numéricos que va a asignarse a cada cliente, pues la idea es no usar el email sino nuestros propios códigos. 2- En el archivo AuthController.php en \controllers\front, cambie el siguiente código: /** * Process login */ protected function processSubmitLogin() { Hook::exec('actionBeforeAuthentication'); $passwd = trim(Tools::getValue('passwd')); /****** ESTA PARTE SE CAMBIAR EL EMAIL POR cod_customer *******/ /** AUNQUE SE PREGUNTA POR EL CAMPO 'email' en la pagina**/ $cod_customer = trim(Tools::getValue('email')); if (empty($cod_customer)) $this->errors[] = Tools::displayError('An email address required.'); /****** AQUI CAMBIAMOS EL 'IsEmail' por 'IsInt' *******/ elseif (!Validate::isInt($cod_customer)) //Este mensaje tendríamos que cambiarlo en los archivos de la traducción. $this->errors[] = Tools::displayError('Invalid email address.'); elseif (empty($passwd)) $this->errors[] = Tools::displayError('Password is required.'); elseif (!Validate::isPasswd($passwd)) $this->errors[] = Tools::displayError('Invalid password.'); else { /****** EN ESTA PARTE CAMBIAMOS LOS EMAIL POR COD_CUSTOMER *******/ $customer = new Customer(); //MUY IMPORTANTE, CAMBIAR getByEmail a getByCode $authentication = $customer->getByCode(trim($cod_customer), trim($passwd)); if (!$authentication || !$customer->id) $this->errors[] = Tools::displayError('Authentication failed.'); else { $this->context->cookie->id_compare = isset($this->context->cookie->id_compare) ? $this->context->cookie->id_compare: CompareProduct::getIdCompareByIdCustomer($customer->id); $this->context->cookie->id_customer = (int)($customer->id); $this->context->cookie->customer_lastname = $customer->lastname; $this->context->cookie->customer_firstname = $customer->firstname; $this->context->cookie->logged = 1; $customer->logged = 1; $this->context->cookie->is_guest = $customer->isGuest(); $this->context->cookie->passwd = $customer->passwd; $this->context->cookie->cod_customer = $customer->cod_customer; // Add customer to the context $this->context->customer = $customer; if (Configuration::get('PS_CART_FOLLOWING') && (empty($this->context->cookie->id_cart) || Cart::getNbProducts($this->context->cookie->id_cart) == 0) && $id_cart = (int)Cart::lastNoneOrderedCart($this->context->customer->id)) $this->context->cart = new Cart($id_cart); else { $this->context->cart->id_carrier = 0; $this->context->cart->setDeliveryOption(null); $this->context->cart->id_address_delivery = Address::getFirstCustomerAddressId((int)($customer->id)); $this->context->cart->id_address_invoice = Address::getFirstCustomerAddressId((int)($customer->id)); } $this->context->cart->id_customer = (int)$customer->id; $this->context->cart->secure_key = $customer->secure_key; $this->context->cart->save(); $this->context->cookie->id_cart = (int)$this->context->cart->id; $this->context->cookie->write(); $this->context->cart->autosetProductAddress(); Hook::exec('actionAuthentication'); // Login information have changed, so we check if the cart rules still apply CartRule::autoRemoveFromCart($this->context); CartRule::autoAddToCart($this->context); if (!$this->ajax) { if ($back = Tools::getValue('back')) Tools::redirect(html_entity_decode($back)); Tools::redirect('index.php?controller='.(($this->authRedirection !== false) ? url_encode($this->authRedirection) : 'my-account')); } } } if ($this->ajax) { $return = array( 'hasError' => !empty($this->errors), 'errors' => $this->errors, 'token' => Tools::getToken(false) ); die(Tools::jsonEncode($return)); } else $this->context->smarty->assign('authentification_error', $this->errors); } Eso sería todo en ese archivo. 3- Tenemos que agregar otra función para validar el código del cliente en lugar de validar por email. Vamos a /classes/ y le agregamos está función al final del archivo 'Customer.php': //esta función usa el código en vez del email para hacer login public function getByCode($cod_customer, $passwd = null, $ignore_guest = true) { //usamos IsInt en vez de IsEmail if (!Validate::isInt($cod_customer) || ($passwd && !Validate::isPasswd($passwd))) die (Tools::displayError()); $sql = 'SELECT * FROM `'._DB_PREFIX_.'customer` WHERE `cod_customer` = \''.pSQL($cod_customer).'\' '.Shop::addSqlRestriction(Shop::SHARE_CUSTOMER).' '.(isset($passwd) ? 'AND `passwd` = \''.Tools::encrypt($passwd).'\'' : '').' AND `deleted` = 0'. ($ignore_guest ? ' AND `is_guest` = 0' : ''); $result = Db::getInstance()->getRow($sql); if (!$result) return false; $this->id = $result['id_customer']; foreach ($result as $key => $value) if (key_exists($key, $this)) $this->{$key} = $value; return $this; } No olviden NO borrar el último '}' del archivo al agregar esta función. Con un poco de astucia pueden usar otros campos de la base de datos para hacer la validación, como por ejemplo el id_customer. Si tienen alguna sugerencia, principalmente para no tener que cambiar los archivos del prestashop sino agregarlo aparte, se agradecería que lo agregará al post PD: Esto lo hice trabajando en la versión 1.5.4.1, pero seguramente puede trabajar en otras versiones anteriores.
  8. Con la ayuda de Rperales me salió este código que quiero compartir con todos: 1- Tuve que crear un campo nuevo en la tabla 'ps_customer' llamado "cod_customer". Acá van a ir los códigos numéricos que va a asignarse a cada cliente, pues la idea es no usar el email sino este código. 2- En el archivo AuthController.php en \controllers\front, cambie el siguiente código: /** * Process login */ protected function processSubmitLogin() { Hook::exec('actionBeforeAuthentication'); $passwd = trim(Tools::getValue('passwd')); /****** ESTA PARTE SE CAMBIAR EL EMAIL POR cod_customer *******/ /** AUNQUE SE PREGUNTA POR EL CAMPO 'email' en la pagina**/ $cod_customer = trim(Tools::getValue('email')); if (empty($cod_customer)) $this->errors[] = Tools::displayError('An email address required.'); /****** AQUI CAMBIAMOS EL 'IsEmail' por 'IsInt' *******/ elseif (!Validate::isInt($cod_customer)) //Este mensaje tendríamos que cambiarlo en los archivos de la traducción. $this->errors[] = Tools::displayError('Invalid email address.'); elseif (empty($passwd)) $this->errors[] = Tools::displayError('Password is required.'); elseif (!Validate::isPasswd($passwd)) $this->errors[] = Tools::displayError('Invalid password.'); else { /****** EN ESTA PARTE CAMBIAMOS LOS EMAIL POR COD_CUSTOMER *******/ $customer = new Customer(); //MUY IMPORTANTE, CAMBIAR getByEmail a getByCode $authentication = $customer->getByCode(trim($cod_customer), trim($passwd)); if (!$authentication || !$customer->id) $this->errors[] = Tools::displayError('Authentication failed.'); else { $this->context->cookie->id_compare = isset($this->context->cookie->id_compare) ? $this->context->cookie->id_compare: CompareProduct::getIdCompareByIdCustomer($customer->id); $this->context->cookie->id_customer = (int)($customer->id); $this->context->cookie->customer_lastname = $customer->lastname; $this->context->cookie->customer_firstname = $customer->firstname; $this->context->cookie->logged = 1; $customer->logged = 1; $this->context->cookie->is_guest = $customer->isGuest(); $this->context->cookie->passwd = $customer->passwd; $this->context->cookie->cod_customer = $customer->cod_customer; // Add customer to the context $this->context->customer = $customer; if (Configuration::get('PS_CART_FOLLOWING') && (empty($this->context->cookie->id_cart) || Cart::getNbProducts($this->context->cookie->id_cart) == 0) && $id_cart = (int)Cart::lastNoneOrderedCart($this->context->customer->id)) $this->context->cart = new Cart($id_cart); else { $this->context->cart->id_carrier = 0; $this->context->cart->setDeliveryOption(null); $this->context->cart->id_address_delivery = Address::getFirstCustomerAddressId((int)($customer->id)); $this->context->cart->id_address_invoice = Address::getFirstCustomerAddressId((int)($customer->id)); } $this->context->cart->id_customer = (int)$customer->id; $this->context->cart->secure_key = $customer->secure_key; $this->context->cart->save(); $this->context->cookie->id_cart = (int)$this->context->cart->id; $this->context->cookie->write(); $this->context->cart->autosetProductAddress(); Hook::exec('actionAuthentication'); // Login information have changed, so we check if the cart rules still apply CartRule::autoRemoveFromCart($this->context); CartRule::autoAddToCart($this->context); if (!$this->ajax) { if ($back = Tools::getValue('back')) Tools::redirect(html_entity_decode($back)); Tools::redirect('index.php?controller='.(($this->authRedirection !== false) ? url_encode($this->authRedirection) : 'my-account')); } } } if ($this->ajax) { $return = array( 'hasError' => !empty($this->errors), 'errors' => $this->errors, 'token' => Tools::getToken(false) ); die(Tools::jsonEncode($return)); } else $this->context->smarty->assign('authentification_error', $this->errors); } Eso sería todo en ese archivo. 3- Tenemos que agregar otra función para validar el código del cliente en lugar de validar por email. Vamos a /classes/ y le agregamos está función al final del archivo 'Customer.php': //esta función usa el código en vez del email para hacer login public function getByCode($cod_customer, $passwd = null, $ignore_guest = true) { //usamos IsInt en vez de IsEmail if (!Validate::isInt($cod_customer) || ($passwd && !Validate::isPasswd($passwd))) die (Tools::displayError()); $sql = 'SELECT * FROM `'._DB_PREFIX_.'customer` WHERE `cod_customer` = \''.pSQL($cod_customer).'\' '.Shop::addSqlRestriction(Shop::SHARE_CUSTOMER).' '.(isset($passwd) ? 'AND `passwd` = \''.Tools::encrypt($passwd).'\'' : '').' AND `deleted` = 0'. ($ignore_guest ? ' AND `is_guest` = 0' : ''); $result = Db::getInstance()->getRow($sql); if (!$result) return false; $this->id = $result['id_customer']; foreach ($result as $key => $value) if (key_exists($key, $this)) $this->{$key} = $value; return $this; } No olviden NO borrar el último '}' del archivo al agregar esto. Saludos a todos Si tienen alguna sugerencia, principalmente para no tener que cambiar los archivos del prestashop sino agregarlo aparte, se agradecería PD: Esto lo hice trabajando en la versión 1.5.4.1
  9. No, sigue igual. Estaba pensando que quizás sea algo de la bd o de los productos, alguna característica nueva o algo que cambio desde la 1.5.3, pero saber que :\
  10. Saludos Hice una instalación con la nueva versión 1.5.4.1 y reinstalando una base de datos en 1.5.3 (incluso use el 1-Click Upgrade). Todo funciona bien, excepto el carrito de ventas, que no actualiza, siempre se queda vacío por má artículos que uno agregue. ¿Alguna sugerencia?
  11. Por el momento, no se que le hicieron los chicos del hosting pero ya casi no se cae Si alguien me da una pista, para que deje de caerse del todo
  12. ¿Alguien sabe por qué da este error al inciar la tienda en prestashop? Error 103 (net::ERR_CONNECTION_ABORTED): Error desconocido. Pensaba que era culpa del servidor pero tengo otro sitio en php en el mismo hosting y trabaja bien. Ideas, sugerencias, lo que sea, mucho mejor soluciones, para ver si la pongo a funcionar.
  13. Creo q esta en proceso. Por hay existen algunos módulos de pago pero no son muy buenos que digamos
×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More