SimpleCart. Opción enviar por e-mail | Oloblogger Hace un tiempo vimos un sistema para instalar una tienda online , mediante el script SimpleCart . El...

7 de julio de 2010

SimpleCart. Opción enviar por e-mail

Hace un tiempo vimos un sistema para instalar una tienda online, mediante el script SimpleCart. El sistema, aunque sencillo, sigue funcionando estupendamente, pero le faltaba una opción que era la de enviar los datos del pedido por correo, en lugar de acceder directamente a Paypal. Esto es útil, por ejemplo, cuando se trata de envíos contra-reembolso u otras opciones similares.

En un principio debería ser suficiente con modificar un parámetro para que esto funcionara bien. De los que hay al final de la parte de estilo, sería simpleCart.checkoutTo.

<script type="text/javascript">
simpleCart.email = "tupaypal@dominio.com";
simpleCart.checkoutTo = Email;
simpleCart.currency = EUR;
simpleCart.cartHeaders = [ "name", "thumb_image" , "Quantity_input" , "increment", "decrement", "Total" ];
</script>

En teoría bastaría con cambiar PayPal por Email (ojo con las mayúsculas/minúsculas), tal como veis arriba, y el script se tendría que encargar de hacer el pedido por dicha vía, pero por razones que desconozco, la función que debería hacer esto (simpleCart.emailCheckout();) está sin construir. Esto ocurre tanto en el script original como en el adaptado que propuse en su momento.

Visto esto, si queremos que funcione para el correo, tendremos que redactar dicha función además de cambiar el parámetro mencionado. Así, emailCheckout recuperará los datos necesarios y los pasará a un pequeño fichero PHP que realmentes es el que envía los datos por e-mail. Si teneis hosting propio, alojar el PHP no debería ser ningún problema. Sin embargo, para los que sólo tenemos Blogger, habrá que recurrir a algún servicio como Byethost, que Vagabundia ya nos descubrió hace un tiempo.

Y ahora vamos a la parte práctica.

Como se ha dicho, lo primero es cambiar el valor del parámetro y pasarlo de PayPal a Email. A continuación, redactamos el contenido de la función editando el script allá dónde lo tengamos alojado y sustituimos la función vacía que tiene este aspecto...

this.emailCheckout = function() {
return;
};


... por...

this.emailCheckout = function() {
var remite = prompt("Introduzca correo de contacto: ");
itemsString = "";
esubtotal = 0;
etotal = 0;
for( var current in this.items ){
var item = this.items[current];
esubtotal = item.quantity * item.price;
itemsString += item.name + " " + item.quantity + " x " + item.price + "EUR = " + String(esubtotal) + "EUR" + "\n";
etotal+=esubtotal;
};
itemsString +="Total: " + String(etotal) + "EUR" + "\n" + "Remite: " + remite;
var form = document.createElement("form");
form.style.display = "none";
form.method = "POST";
form.action = "http://elsereno100.byethost15.com/php/email.php";
form.acceptCharset = "utf-8";
form.appendChild(this.createHiddenElement("jcitems", itemsString));
form.appendChild(this.createHiddenElement("jcremite", remite));

document.body.appendChild(form);
form.submit();
document.body.removeChild(form);

return;
};

Por Paypal, el propio usuario se identifica ante el sistema, pero con esta opción no. Así que he introducido un prompt que solicita la dirección de correo del comprador, para poder luego incluirla en el mensaje que recibamos. De otra manera nos sería imposible saber quién hizo el pedido.

Nos queda generar y alojar el fichero PHP. La URL que he puesto en la anterior función está operativa para que podais hacer pruebas. Pero cuidado... está programado de manera algo distinta para que envíe el correo a la dirección que se introduzca como de remite y que así podais ver el resultado. Si lo enviara al administrador (yo) como ocurre en el PHP de más abajo (el que teneis que usar cuando lo hagais en real) no lo veríais. Tarda un poco en que lo recibais, pero debe ser cosa del hosting gratuito.

Aquí, en la demo original, podeis ver ahora un nuevo enlace abajo a la izquierda botón con la palabra EMAIL, que es precisamente para este nuevo sistema.

Una vez que comprobeis que funciona, teneis que crear y alojar vuestro propio fichero con vuestra propia dirección, para que podais recibir los avisos. Luego sustituis en el código de antes la URL de prueba por la vuestra. El código es este:

<?php
$to = 'correo-vendedor@dominio.com';
$remite = $_POST['jcremite'];
$subject = 'Aviso de pedido';
$jcitems = $_POST['jcitems'];
$headers = 'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $jcitems, $headers);
echo 'Su pedido ha sido enviado.<br/> Nos pondremos en contacto con Vd. mediante el correo facilitado: ';
echo $remite;
?>


Una mejora en este último fichero sería sustituir los dos últimos echo por un reenvío a una página construida por nosotros con un contenido más amigable:

Header('Location: http://pagina_recepcion.htm');

¿Se podría hacer sin PHP? Sí, utilizando JavaScript. Pero entonces el envío no sería tan directo como pulsar un botón. El script abriría el programa de correo del usuario con tu dirección (por otra parte, más visible para spammers), el asunto y el contenido, pero luego habría que enviar el correo. Un proceso más largo y menos elegante.

Si vais a utilizar este sistema, no olvideis cambiar la imagen de fondo del selector .simpleCart_checkout que forma el botón PAYPAL, por otro más adecuado ;)

Actualización. El script completo incluyendo ya la modificación: SimpleCartEmail.txt
No olvidad haced las personalizaciones correspondientes: moneda, forma de pago (PayPal/Email), dirección PayPal y dirección fichero email.php.

¿Vemos otro post al azar por si le encuentras utilidad o quizás prefieres ser más metódico y suscribirte a nuestras entradas por correo? También puedes imprimir este artículo y por supuesto compartirlo en redes sociales si fue de tu agrado.

Compartir
Copy URL

Y muchos más artículos interesantes si nos sigues en...

follow us in feedly

170 comentarios :

  1. Esas funciones me llamaron mucho la atencion desde esta hasta la que mencionaste del script de SimpleCart de tienda Online, es una opcion que a muchos comerciantes del internet les pueden servir pero en fin como micro compañia aun no encuentro la necesidad o mas bien la expansion de vender cosas por internet.
    Saludos OLOMAN ;);)

    ResponderEliminar
  2. No, claro. Como tantas otras cosas que publico, esta tiene su utilidad para quién lo necesite. Para nadie más.

    ResponderEliminar
  3. Oloman, muchas gracias por el aporte. Eres un hacha.
    Una duda, ¿el archivo PHP cómo lo guardo una vez modificado? ¿Con cualquier editor de texto y le pongo la extensión php?
    No los he usado nunca, así que no sé como pasar el texto que tú das a un archivo.

    ResponderEliminar
  4. Oloman, creo que ya lo he creado. He partido de uno cualquiera con extensión PHP, he sustituido su contenido por el que tú dices en esta entrada, y lo he grabado.
    Ahora tengo el archivo PHP creado, me he creado una cuenta en Byethost, y he alojado el archivo. Pero no consigo averiguar la ruta de dicho archivo, igual que la tuya es http://elsereno100.byethost15.com/php/email.php , la mía en teoría debe ser esta http://www.blogsmadeinspain.byethost13.com/pedido-email.php

    Pero nada de nada, esa ruta no me lleva al archivo PHP alojado por mí. ¿Qué puedo estar haciendo mal?

    ResponderEliminar
  5. Tendrás que repasar tu arbol de directorios en el alojamiento. En un principio, todo lo que grabes dentro de htdocuments (o algo así) es como si lo grabaras en el el directorio raíz: http://www.blogsmadeinspain.byethost13.com/

    Con la dirección que me pasas, precisamente en el directorio raíz es dónde debería estar el archivo, pero evidentemente está en otro sitio que no puedo ver desde aquí.

    ResponderEliminar
  6. Oloman, sé que es abusar de tí, pero si fueras tan amable de comprobar estas dos cosas:

    1.- Descargar el archivo PHP que yo he creado de http://sites.google.com/site/blogsmadeinspain/pedido-email.php , y decirme si está correctamente creado.

    2.- Ver una capruta de pantalla donde marco de color rojo el nombre del archivo alojado y el directorio raiz donde se encuentra.
    Puedes ver esa captura aquí http://vihqha.blu.livefilestore.com/y1p5Sm3jy_G3cCDB-oNDkvdh7euDBBX2Fc0HbXgncHqFJXQOdM6Lf4vPqIay4i71aTYGEZERhwv6SsHHAFhtbV7XVc7FOtl7UBi/captura.jpg?psid=1

    Espero que puedas ayudarme, ya no sé que más hacer.

    ResponderEliminar
  7. Buenas Oloman. Gracias por tu aporte. Entiendo bien lo que quieres hacer en el artículo pero no entiendo la explicación. Yo uso el simplecart pero me gustaría dar las dos opciones que el usuario elija o paypal o enviar datos por mail...sabes como? Me vendría bien pusieses los archivos de la explicación con tus modificaciones la verdad te lo agradecería.

    Un saludo y gracias de nuevo

    ResponderEliminar
  8. Blogsmadeinspain
    1. No. Aparece un monton de código "extra". Posiblemente lo hiciste con algún programa que te lo metió. Simplemente tienes que redactarlo con el bloc de notas, lo guardas con la extensión .php y luego lo subes a byethost (si es el que estás usando)
    2. ¿No viste el aviso de no subir archivos aquí? :D Borra ese fichero de ese sitio, entras en la carpeta htdocs y ahí es dónde lo tienes que grabar para que la dirección sea la que me dijiste en primer lugar.
    Estás en un FTP, el "raíz" es dentro de htdocs en este caso.

    Aquito ¿y a tí que te digo? No sé explicarlo mejor. Se trata de incluir en el código original una modificación, pero no sé si tiras del fichero original (mal hecho) o lo alojaste bajo tu propio control. Sólo podrás modificarlo si has hecho lo segundo.
    Luego se trata de generar un fichero nuevo. El que digo que termina en .php

    ResponderEliminar
  9. Oloman, muchísimas gracias por el interés que te has tomado. Sé lo que cuesta currarse algo como esto.
    Pero lo he usado y me da problemas. Voy a comentarte todos los pasos que he seguido por si puedes decirme que detectes algo mal.

    1.- Parto de un blog de pruebas donde instalé el sistema que explicabas en tu primera entrada. Funcionaba perfectamente incluido el pago por Paypal.

    2.- Cambié la parte final de la hoja de estilos, sustituyendo la que tenía por la nueva que escribes aquí. Introduciendo mi email.

    3.- Cambié el script sustituyendo lo que comentas por el nuevo código más largo, donde incluí el nuevo email y la dirección del archivo PHP. Archivo que ya creé bien y alojé donde me dijiste (Además comprobé que ya estaba bien alojado, ya que al poner la ruta en el navegador me devuelve la frase de "Su pedido ha sido enviado correcamente....")

    4.- Creo que en esta entrada no dices que haya que modificar nada más.

    Pero lo que me sucede ahora en el blog de pruebas es que no me funciona el carro, es decir, al pulsar sobre AÑADIR no me añade nada al carro.
    Te aseguro que he repasado varias veces los nuevos códigos modificados para asegurarme que no es un error de haber suprimido algún caracter o código.
    ¿Habrá que cambiar también algo en la entrada donde he publicado la Tienda OnLine?

    Si quieres comprobar por tí mismo cómo se comporta, este es el blog de pruebas http://pruebaplantillablogger08.blogspot.com/

    ResponderEliminar
  10. En un principio lo has hecho todo bien, por lo que es muy probable que falte algún punto y coma o algo así, borrado (o añadido) sin querer.

    Haz una prueba. Sin tocar nada más, simplemente vuelve a cambiar Email por PayPal. Si vuelve a funcionar, ya sabemos que el problema está sólo en lo que has añadido nuevo.

    Entonces sería cuestión de repasar otra vez esa parte. Para empezar, repones el Email y puedes colocar un document.write("hola"); al principio de la función modificada y lo pruebas. Si funciona, vas colocando ese HOLA cada vez más abajo. Mientras vaya funcionando es que de ahí hacia arriba, está todo bien. En cuanto deje de salir el HOLA encontrarás dónde deja de funcionar el nuevo código.

    Chapucilla para detectar fallos en script ;)

    ResponderEliminar
  11. Oloman, sé que voy a resultarme muy pesado, pero he hecho lo que me comentas y nada de nada.

    1.- Parto del script y la hoja de estilos colocados como gadget en el blog de pruebas, y funcionando perfectamente para pago por Paypal.

    2.- Cambio en la hoja de estilos Paypal por Email.

    3.- En el script sustituyo la función completa tal y como indicas, colocando exactamente los códigos que tú das en esta entrada. Incluso he optado por dejar temporalmente la ruta de tu archivo PHP, para no cambiar absolutamente nada.

    4.- Y el problema que me ocurre es que no me incluye productos al carro de la compra cuando se pincha en AÑADIR.

    5.- Si cambio exclusivamente Paypal por Email, sin tocar el script primero, me funciona bien el AÑADIR, pero no me envía email, ya que como bien dices no está redactada la función correspondiente.

    6.- He hecho también lo de añadir "Hola" en la función modificada, pero incluso colocada al principio de la función justo después del primer corchete... No me sale "Hola" por ninguna parte.
    Te pido el enorme favor de que descargues el script y la hoja de estilos que yo uso, para que compruebes que al sustituir no he quitado o añadido ningún código más. Puedes descargar esto desde http://www.4shared.com/document/vFIgB7-X/TIENDA_VIRTUAL__pedidos_por_Em.htm

    Nota: He cambiado algo la hoja de estilo, para adaptarlo a un nuevo diseño, pero como puedes comprobar en el blog de pruebas que te dejé en comentario anterior, para pago con Paypal funciona perfectamente.

    No sé qué más hacer. Lo he probado todo.
    ¿Es posible que el código que has colocado en esta entrada pudiera tener algún error tipográfico?

    ResponderEliminar
  12. No entiendo nada. La función está copiada de la demo, pero tiene toda la pinta de ser lo que dices, un error tipográfico. Quizás es por transformar el fichero de bloc de notas a Word o algo así. Prueba con el fichero que he enlazado ahora en una actualización al final del post. Está copiado íntegramente del que uso en la demo.

    ResponderEliminar
  13. Oloman, he copiado el script desde tu archivo txt y parece que funciona perfectamente. Cambié la ruta del archivo PHP al mío y me envié correos de prueba, pero hace dos o tres horas, y aún no me han llegado.
    También me envié uno desde tu DEMO.
    ¿Crees que es normal que tarde tanto?

    ResponderEliminar
  14. Sí. Es normal. A mí también me tardan bastante, aunque lo achaco al alojamiento byethost. Probé a alojar el PHP en un dominio propio que tengo y la respuesta era inmediata, así que si tienes otra alternativa, puedes probar.

    Si me da tiempo, mañana te complico un poco más la cosa ;)

    ResponderEliminar
  15. Oloman, me he levantado hoy pensando que los correos de pruebas de pedidos me habrían llegado. Pero nada de nada, hace casi 24 horas, y no me ha llegado ni los que mandé desde mi blog de pruebas, ni el que mandé desde tu DEMO.
    Me aseguré varias veces de que la dirección estuviese bien escrita.
    También ayer, sobre las 6 de la tarde, volví a mandarme un correo de prueba desde tu DEMO.

    ¿Esto solo me pasa a mí?

    ResponderEliminar
  16. Buenas de nuevo.
    Yo ya conseguí hacerlo duncionar con las dos opciones de paypal y el mail. Pero me preguntaba si había alguna manera de saltarse el paso de que tenga que rellenar en un alert el mail y que pasase directamente a una web donde rellene el mail y otros datos de contacto.

    Sabeis como?

    Gracias

    ResponderEliminar
  17. Otra cosita, para recoger la talla en el modo de mail? que debemos añadir a emailCheckout.

    Saludos

    ResponderEliminar
  18. nada olvidar lo de la talla.
    la pregunta es.
    Como hacer que vaya a una web donde rellenar el resto de datos del pedido sin pasar por los Alert y recogiendo los datos de los productos comprados.

    ResponderEliminar
  19. Blogsmadeinspain. Prueba a cambiar la dirección del PHP por esta que he diseñado para tí... temporalmente ;)
    singenio.com/pruebas/email.php
    Lleva tu dirección para que recibas el aviso en tu propio pedido.

    Aquito, me gustaba esta tienda virtual porque era fácil de instalar y configurar, al tiempo que permitía el pago directo por Paypal. Fíjate si es así que el autor no se molestó ni en redactar la función para enviar por correo.
    Lo que quieres se puede hacer perfectamente, pero actualmente no dispongo de tiempo ni de una conexión adecuada para desarrollarlo, así que me lo apunto, pero tardaré en hacerlo.
    De todas formas, por si quieres intentarlo, la cosa sería pasando los datos de pedido de la misma manera que se propone aquí, pero a una página en la que además de dar el ok, previamente haya que rellenar un formulario que se debería enviar finalmente con un botón.
    Dicho de otra manera, tendrías que insertar en el PHP las líneas necesarias para crear un formulario con los datos que deseas y enviar todo sólo cuando se pulse.
    Suerte ;)

    ResponderEliminar
  20. Oloman, gracias por tomarte esa molestia. Has dado en el clavo, con tu archivo alojado en tu dominio funciona perfectamente y me manda el correo al instante.
    Mira, descárgate mi archivo PHP de aquí http://www.4shared.com/file/xt6zR-XL/pedidomail.html
    para que veas que es exactamente igual que el que figura en tu entrada, modificando exclusivamente mi correo.
    ¿Qué puedo hacer?

    ResponderEliminar
  21. Buenas Oloman, gracias por tu respuesta.
    Mi problema es que de php tengo conocimientos pero pocos y necesito alguna pista mas. Sólo necesito saber como ese formulario que debo construir puede recoger los productos de la cesta e integrarlos en el formulario para luego ser enviado estos y los datos personales a un correo, saltándose el paso del Alert.

    Solo necesito esa pequeña función, pq el formulario lo tengo construido.

    Me comprometo a pasaros todos los archivos si me hechais una mano.

    Saludos

    ResponderEliminar
  22. Blogs, ahora me he dado cuenta de que posiblemente fuera un maldito salto de línea fuera de sitio en el código que puse. No sé si será eso pero comparando tu fichero con el mío es la única diferencia. Creo que el PHP no se interpreta bien si tiene saltos. Prueba por favor a cambiar la línea del ECHO en tu PHP (lo he actualizado en el post), échale un poco de paciencia para ver si recibes el correo y me lo dices. Mis pruebas fueron con byethost y con seguridad que el correo se demoraba varias horas.

    Aquito me gustaría ayudarte y lo voy a hacer, pero no voy a poder darte una pronta respuesta. Por eso te explicaba el sistema. Yo tampoco controlo casi PHP y de ahí que tenga que invertir tiempo bastante en ver cómo se hace exactamente y en probarlo. Si tienes mucha urgencia puedes buscar en internet cómo "pasar datos a un formulario" y "enviar un formulario con PHP". Lo siento.

    ResponderEliminar
  23. No sé yo si será eso ???
    Lo he corregido en mi archivo, alojado de nuevo y sustituida la nueva ruta en el script del blog de pruebas.
    Me he mandado un pedido hoy miércoles a las 20:30 h.
    Ya te contaré qué tal me va. Ojalá tengas razón y sea solo eso.

    ResponderEliminar
  24. Oloman, creo que no ha dado resultado. Ya han pasado 13 horas y Byethost no me ha mandado ningún mensaje con el pedido.
    ¿No conoces otro servicio de alojamiento gratuito? Tendré que probar con otro servicio, ya que con tu dominio sí funcionaba bien.

    ResponderEliminar
  25. Ok Oloman gracias por la ayuda, esperaré si algún día lo haces, mientras tiraré con este de paypal y otro carrito que hace lo que busco.

    Se pasar datos a un formulario pero no con esta programación. Una pena :)

    Saludos y suerte

    ResponderEliminar
  26. Bueno, Oloman, creo que voy a ahorrarte más sufrimiento conmigo, ya que he resuelto el misterio.
    He alojado el archivo PHP en este servicio gratuito http://www.multimania.es/ (antiguamente Lycos Tripod), y en principio no me funcionaba tampoco, pero me di cuenta que los directorios dentro de tu cuenta en ese servicio podían establecerse como "Públicos" o "Privados".
    Así que configuré el directorio donde había metido el PHP como "Público" y BINGO... Funciona a la perfección, y el mensaje de pedido me llega instantáneamente.
    Este servicio manda el mensaje instantáneamente, aunque en la ventana que te abre con el mensaje de "Tu pedido se ha enciado correctamente..." está acompañado por algo de publicidad, pero no molesta demasiado.

    Supongo que con Byethost ocurrirá algo parecido.

    ResponderEliminar
  27. Aquito, gracias por entenderlo.

    Blogsmadeinspain, esta mañana estaba pensando en ese tema de los ficheros públicos, aunque a decir verdad, al llegar a casa se me había olvidado. Ahora leo tu mensaje... Por eso funcionaban mis pruebas ¡porque las hacía logueado en Byethost!
    Mediante el botón CHMOD he cambiado los permisos para que todos puedan ejecutar ese fichero. ¿Podrías comprobar si funciona? Todavía podría dar más permisos permitiendo la lectura, pero con eso creo que debe ser suficiente.

    ResponderEliminar
  28. Anónimo3/8/10 6:14

    Hola alguien sabe por que a la hora de dar clic en Email no aparece el campo donde se debe insertar el mail del comprador..por que me sale en NULL

    ResponderEliminar
  29. Anónimo3/8/10 6:29

    Oloman por que en mi pagina no sale:

    ("Introduzca correo de contacto: ");

    ResponderEliminar
  30. Anónimo, si no te sale ni ese aviso, es porque el script está mal. Puede ser lo que insertaste nuevo o alguna otra cosa anterior. Con quitar lo nuevo podrás comprobar si el error está en un sitio o en otro.

    ResponderEliminar
  31. Anónimo5/8/10 2:53

    Oloman muy grande tu aporte, agradecido pues estaba varado con eso, sin embargo tengo una duda y quisiera si se puede me des una luz, como hacer para que en vez de que salga el prompt, mejor me lleve a otra página y me muestre el resumen de lo que he comprado y tenga el formulario de envío al correo? que se paresca al paypal pero solo de envío de email (agradecido por tus aportes)

    ResponderEliminar
  32. Estimado Oloman ,
    a mi me pasa que lo tengo de prueba para un proyecto y al ponerlo para envio por email sucede que en el Iexplorer el usuario tiene ventanas emergentes bloqueadas el email igual es enviado, aun sin el visitante poner su email en la caja al enviar. si aparece el mensaje de email.php ,pero donde dice "le responderemos a su email..." dicde null (obiamente pues no lo pudo poner .
    esto no sucede en chrome ni en firefox , consulta: como puedo corregir esto para que en iexplorer no suceda esto si el comprador tiene ventanas emergentes bloqueadas?

    ResponderEliminar
  33. Lo siento Admin, pero no lo sé. Puede que tenga solución pero cuando el bloqueo lo realiza el visitante, me parece difícil que lo podamos arreglar los administradores. Piensa en los scripts. Si alguien selecciona no ejecutarlos...

    ResponderEliminar
  34. Estimado Oloman, estuve trabajando en mi proyecto y la verdad que me funciona de maravilla , ve si puedes aqui: http://productosdeuruguay.blogspot.com y dime que te parece.
    muchas gracias por tus consejos pues me sirvieron de mucho.
    saludos desde Uruguay

    ResponderEliminar
  35. Ferpecto. Te quedó muy bien. Saludos.

    ResponderEliminar
  36. Hola Oloman, decirte que encuentro muy útil todos los tutoriales que tienes por aqui, y este me viene de perlas para la tiendita que estoy montando. hace un par de dias puse el simplecart pero no me convencia porque no suelo usar paypal y creo que la gente que me comprara tampoco, y hoy descubri este post, pero me hago un lio con todo esto. Decirte que no se NADA de html ni nada, lo mio es el diseño gráfico xD asi que lo he intentado mil veces, pero no hay manera. tengo cuenta en miarroba, pero di tantas vueltas que ya no se ni que codigo es el que tengo que redactar y subirlo y donde ponerlo... soy una negada para estas cosas, asi que si pudieras hacerme un esquemita o algo asi jaja te lo agradeceria mucho, ya he dado muchas vueltas y me hago un lio con los codigos xD

    un saludo y gracias!

    ResponderEliminar
  37. Atteneri, no tengo ni idea de cómo funciona miarroba.

    No sé si has visto este post anterior. Sería lo primero que tendrías que hacer y después, seguir con este. Hay un tercero para que puedas poner ambos botones a la vez: el de Paypal y el de pedido por e-mail.

    Si el post de Blogger no cuadra con tu plataforma, ya no sabría cómo instalarlo porque como te decía, no he visto nunca las tripas de miarroba.

    ResponderEliminar
  38. Oloman ya está arreglado, el problema es que anoche me hice un lio y puse un código donde no iba y claro, no habia manera xD

    Muchas gracias, me va a venir muy bien esta tienda :)

    ResponderEliminar
  39. Hola Oloman, muy bueno el post. Tengo implementado simplecart en una pagina que estoy armando. Tengo muchos productos, por lo que separe todos los productos en varias paginas. Lo que hice fue ir "guardando como" y sustitui los datos de los productos en las nuevas paginas. El problema que me esta surgiendo es que al probar agregar productos al carrito, a veces me los agrega bien y otras veces me "pisa" alguno. Esto me pasa cuando elijo un producto de otra pagina. Que puede estar pasando? Que tengo que modificar? Muchas gracias!!

    ResponderEliminar
  40. Muy bien Atteneri. Mensaje recibido.

    Andrés ¿cúal es tu página?

    ResponderEliminar
  41. Si, disculpa, esta es la pagina. en realidad todavia esta como proyecto de pagina...

    http://www.naturapedidos.com.ar/ofertas/e3/equipos/manuales.html

    la subi aca por un tiempo para que la puedas ver.

    muchas gracias

    ResponderEliminar
  42. Hmmm... No sé. He estado haciendo pruebas y creo que sólo pasa con ciertos artículos. Tendrías que repasarlos para comprobar que no hay duplicidad en el contenido de sus distintos campos, que hacen que el script machaque unos con otros

    ResponderEliminar
  43. Ok... mil gracias. Voy a revisar el codigo. Hay alguna forma de identificarlos con un codigo numerico y que este sea usado en el script?

    ResponderEliminar
  44. En un principio, si no se modifica el código, no. Supongo que ya sabes cómo se "monta" un producto en la tienda:
    <div class="simpleCart_shelfItem">
    <img alt="Camiseta Basis" class="item_image" src="http://img29.imageshack.us/img29/3264/tshirt2u.jpg" title="Camiseta Basis" />
    <h5 class="item_name">
    Camiseta Basis</h5>
    <div class="item_Description">
    Esta es una camiseta muy chula </div>
    <span class="item_price">19.00€</span> <a class="item_add" href="javascript:void();" id="s1">Add to Cart</a> <span class="item_thumb">http://img29.imageshack.us/img29/3264/tshirt2u.jpg</span> </div>

    Todo va con unos nombres de clases en particular, que el script reconoce. Ahí es dónde decía que quizás hubieras duplicado alguno.

    ResponderEliminar
  45. Hola lo probe y me funciona lo unico que quisiera agregar color y talla como podria hacerlo? Gracias.

    ResponderEliminar
  46. Con este script tendrías que hacer un artículo para cada opción: Camiseta verde talla M, Camiseta verde talla L, Camiseta verde talla XL, Camiseta amarilla talla M, Camiseta amarilla talla L, etc. Para ese caso, no sería muy práctico este programilla.

    Se pueden incluir más campos en el script para esas opciones, pero eso supondría una modificación sustancial del código.

    ResponderEliminar
  47. Gracias por el programilla, pero a mi no me funciona , ya que tengo ventanas emergentes bloqueadas y no he podido (por que nose) desbloquearlas. Pero gracias.

    ResponderEliminar
  48. De.todo.un.poco las ventanas emergentes las bloqueas y desbloqueas desde tu navegador, pero en un principio, eso no afecta a las alertas del sistema, que es cómo está montado para que el "comprador" introduzca su dirección de contacto. Esto es lo que hace el PROMPT.

    ResponderEliminar
  49. te queria consultar, sabes de algun script para una pagina de cupones? estilo clickon ? es que necesito algo asi y no encuentro nada que sea gratis, te agradeceria mucho, cualquier duda mi email es gonzaloelverde@gmail.com

    un saludo y muy buen blog

    ResponderEliminar
  50. No hotel. No conozco nada. Lo siento.

    ResponderEliminar
  51. Hola, he estado trabajando en el shopping cart, y pues he encontrado otra forma de hacer lo que tu explicas aca. https://github.com/thewojogroup/simplecart-js/blob/email/email.php. y funciona perfectamente, el problema es que yo hize una forma, para que la gente llene, donde colocan su nombre numero telefonico y email. Pero cuando trato de configuarar el email.php, no me sirve. estoy usando _REQUEST para cojer la informacion de la forma. Podrias ayudarme por favor

    ResponderEliminar
  52. No conozco PHP mas que someramente Juandamz. No sé para que sirve el _request.

    ResponderEliminar
  53. Hola Oloman, antes q nada muchas gracias por todo este post q me sirvio muchisimo para hacer funcionar un carrito de compras con email. A diferencia del tuyo, inclui un formulario de contacto debajo del pedido y me envia varios datos importantes por mail. El problema es q no logro validar los campos. Ya intente con javascript y modificando el email.php, pero o no reconoce cuando hay campos vacios, o lo reconoce pero manda el pedido igual o en algunos casos todo funciona, pero cuando completas correctamente todo me llegan los correos vacios.
    AYUDAAAAAAA
    Desde ya muchas gracias!!!

    ResponderEliminar
  54. Agustín, hay muchas cosas que no controlo y una de ellas es JavaScript. De todas formas, buscando otro tipo de cosas, he tropezado muchas veces con códigos que servían para validar formularios, por lo que me consta que los hay a patadas. Si buscas en Google, seguro que encuentras varias funciones que solucionan eso.

    ResponderEliminar
  55. Blogsmadeinspain, me he registrado en multimania pero no sé cómo se sube el fichero. ¿Podrías ayudarme? Gracias (o cualquiera de los demas)

    PD. Oloman, muchísimas gracias por el post.

    ResponderEliminar
  56. Francisco, esta entrada tiene ya un tiempo, por lo que si Blogsmadeinspain no está suscrito a ella, posiblemente no vea tu petición.

    Te sugeriría que visitaras su blog y lo preguntaras allí: http://www.blogsmadeinspain.blogspot.com/

    ResponderEliminar
  57. Oloman, gracias, ya lo solucioné. Me registré en http://members.000webhost.com/ y allí se puede hacer. Pero tango otra duda que no puedo solucionar. Pones un prompt para pedir la dirección de correo del comprador... ¿y si quiero pedir más datos, por ejemplo, nombre y dirección? ¿Cómo lo haría? Porque con prompt sale una ventana con cada petición

    ResponderEliminar
  58. Francisco, la solución sería sustituir esa variable que se captura con el prompt por un formulario que permitiera recoger más datos. Luego habría que incluir esos datos en itemsString para que los recibieras, al modo en que se unen los otros.

    Pero como ya he dicho alguna vez, de JavaScript entiendo lo justito y me costaría desarrollar esa parte (tal y como me ocurrió con lo que has leído en el post). Quizás Agustín quiera compartir su código con todos. Si no contesta en un tiempo, puedes intentar localizarlo y preguntarle.

    ResponderEliminar
  59. Mira he intentado hacerlo todo solo con la ayuda que he leido en tu blog pero la verdad que parece que no me funciono.
    todos los codigos estan bien anhada perfecto al carro, lo vacia perfecto, doy en MAIL y me pide Mail de contacto y luego sale: Su pedido ha sido enviado.
    Nos pondremos en contacto con Vd. mediante el correo facilitado:
    pero no me llega :( ayudame porfa.
    gracias

    ResponderEliminar
  60. Click esa parte de remitir el correo al titular de la página que "vende", lo hace el código PHP. Se necesita colocar ahí tu dirección de correo, en sustitución de la que pongo en color verde a modo de ejemplo.

    ResponderEliminar
  61. hola, gracias por contestar mi pregunta, no queria molestarte hasta mirar lo que me dices pero veo que esta bien, cree una cuenta en byethost y en administrador de archivos ftp en ht doc aloje este archivo ftp:
    Nos pondremos en contacto con Vd. mediante el correo facilitado: ';
    echo $remite;
    ?>
    y nada, ayudame pofa.
    gracias

    ResponderEliminar
  62. Click, primero comprueba si te funciona con la dirección que puse de ejemplo:
    form.action = "http://elsereno100.byethost15.com/php/email.php";

    Si eso funciona, el problema reside únicamente en el contenido del fichero que creaste o en la dirección que tomas. No recuerdo cómo funcionaba byethost, pero no me suena lo del ht doc ¿será otro directorio el adecuado?

    ResponderEliminar
  63. Hola, gracias por contestar, alguien muy amable de tu blog me ayudo a alojar el fichero php en un sitio suyo, es decir que tenes razon a que el directorio no era el adecuado, asi que gracias porque en verdad me funciona muy bien esto que creaste, mil gracias.

    ResponderEliminar
  64. Mi nombre es David estoy implementando este carrito a mi web todo funciona muy bien pero el envio en internet explorer no funciona, no me toma los pedidos de informacion se va directamente a email.php, te pido el grandisimo favor si me puedes colaborar si existe algun script para solucionar este problema, muchas gracias.

    ResponderEliminar
  65. Hola arcandav. No entiendo eso de que se va directamente al fichero PHP. Lo acabo de volver a comprobar en IE y el sistema funciona. No sabría qué decirte además de que repases bien todos los pasos.

    ResponderEliminar
  66. unas preguntas, como hago para quitar el recuadro gris de lo de "ahora en el carro" y cambiar el color de la letra en lo de ahora en el carro donde pone el total esa cantidad de dinero que viene en gris pasarla a blanco por ejemplo, todo modificando el codigo que nos diste, gracias :)

    ResponderEliminar
  67. solucione el problema de lo del coor del dinero, me falta lo de quitarle el cuadro gris a la frase de "ahora en el carro" y aver si alguien podía subirme mi archivo php a un servidor que sea rapido y que funcione, ya que en multimania a mí no me deja subirlo bien (problema de ellos, yo lo hago bien) y lo subi a otro servidor pero no me llega el mensaje, aver si alguien podía subirmelo a multimania y darme el enlace porfavor :) aquí dejo el archivo: https://docs.google.com/leaf?id=0BxXVne8L4LHBYWNmMDM5OTItMGE5Yi00N2UzLWE3NjMtODQ5OTZlMDU5OWQ5&hl=es

    ResponderEliminar
  68. tambien solucione el problema del ahora en el carro, porfavor subirme ese archivo a algun servidor rapido :)

    ResponderEliminar
  69. Pues ya lo solucione todo, ya subi el archivo .php a multimania, que a Blogsmadeinspain le habia dado buenos resultados, pero no me funciona. Me sale el cuadro para rellenar el correo, y se va a la pagina en blanco con la publicidad y que pone eso de su pedido ha sido enviado... pero no me llega al email. Llevo 2 horas esperando y nada. Este es mi blog de compras online: http://becher-store.blogspot.com/p/novedades.html

    Desde ya gracias, aver cual es mi problema, lo tengo todo bien hecho, el archivo php que pones en esta entrada con mi correo y el escript ya modificado que publicaste al final modificado con mi correo y esas cosas que hacen falta. Nose cuál es el problema. Gracias otra vez.

    ResponderEliminar
  70. Mirko, he visto tu sitio e incluso he hecho "un pedido", pero no puedo hacer nada más, ya que me resulta imposible ver tu código desde aquí. El PHP no es como el HTML para eso.

    La única cuestión que se me ocurre: ¿Cambiaste en el script la dirección http://elsereno100.byethost15.com/php/email.php por la tuya? Resulta que me dieron de baja en ese hosting por inactividad.

    ResponderEliminar
  71. Como imaginarás no me ha llegado nada. Si, cambié la dirección del php por la mía, ya que como habrás comprobado al final te redirige a éste pero a mi no me llega nada. Te mando los códigos de todo:

    -El del carrito que tengo encima del blog: https://docs.google.com/document/d/1prYArTOP3jDMH7R9mLh3FGAJjMik2IIl-H4MchlspUc/edit?hl=es

    -El del gadget invisible junto con el estilo: https://docs.google.com/document/d/1A5YX9uTEcUe1G7ey5D1VoMZbVUhYVyVoBnRtvkiYpf0/edit?hl=es

    -El del archivo php que subí a multimania: https://docs.google.com/document/d/11OBDBU5z82qJXB-EKRLO1fulRcDgP39Ubj155Qwrhsw/edit?hl=es

    -Por si sirve (que no creo) el de una página cualquiera del blog: https://docs.google.com/document/d/1MrS22__n0g0l4zhtsiYtXbcCaimmMbRW8EVvYUzgdyU/edit?hl=es

    Y ya no sé que más ponerte jaja, decirte que también probé a usar tu script original que tiene el carrito y los productos en la misma entrada, y nada de nada, te agradezco tu tiempo.

    ResponderEliminar
  72. Mirko, empecemos por lo más fácil. Prueba este archivo, haz un pedido y ya te digo algo http://singenio.com/email.php

    ResponderEliminar
  73. Recibido pedido de 0€ sin dirección de email del que lo envía ¿has sido tú Mirko?

    ResponderEliminar
  74. No, no fui yo, te lo acabo de mandar ahora como mirko12345@hotmail.com

    ResponderEliminar
  75. Recibido Mirko. El tuyo y el de otros que se ve que están también probando:
    Reloj Adidas LED 1 x 13EUR = 13EUR
    Reloj Digital de Silicona 1 x 10EUR = 10EUR
    Total: 23EUR

    Una vez comprobado eso, el problema seguro que está en el dominio en el que alojas el PHP, no todos sirven para ello. Tienes que utilizar un servidor propio, bien de pago o bien de los que hay gratuitos como Byethost. No conozco otros, pero si no te apañas con ese seguro que los hay.

    ResponderEliminar
  76. ya llevo 3 servidores, el de multimania, byethost y zymic y en todos parece que funciona pero no me llega nada. Por si acaso, puedes ponerme qué pusiste exactamente en el archivo php? (por si acaso no fuera a tenerlo mal)
    Gracias

    ResponderEliminar
  77. Exactamente lo mismo que ves en el PHP de esta entrada, sólo que cambiando
    correo-vendedor@dominio.com
    por mi propia dirección de correo. Probé en Google Code, pero desde ahí tampoco funciona. Tiene que ser un servidor que permita PHP.

    Ese archivo que te mandé lo alojé provisionalmente en un hosting de pago que tengo. Por lo menos ya sabes que sólo se trata de eso. Suerte.

    ResponderEliminar
  78. Al final no consegui encontrar ningun hosting... si alguien ve esto y sabe de alguno que lo diga jajaja, el caso esque hice un apaño para que al darle al boton te redirija a una pagina de mi web en la que puse un formulario (con 123contactform)y para enviarme el envio tiene que copiar y pegar el carrito, es una solucion jajaja
    Gracias de todas formas ;)

    ResponderEliminar
  79. Oloman, como siempre muchas gracias ya que sin tu blog no hubiera podido crear mi pagina de compras; he leído tu post y en mi pagina he puesto, mi pregunta es si se pueden poner las dos opciones de pago por paypal y contra reembolso. Utilizando simplecart, gracias anticipadas.

    ResponderEliminar
  80. Ana U., el pago contra reembolso sería la opción de email. A tí te llega el pedido por correo y lo envías contra pago por paquetería al comprador. ¿O es otra cosa?

    ResponderEliminar
  81. Buenas tengo un problema que lo logro implementar lo del envío por correo en la última versión http://bloggerstore-javatemplates.blogspot.com/

    Si algún alma pudiera ayudarme le estaría muy agradecido gracias

    ResponderEliminar
  82. Hola,

    Una pregunta el site de byethost todavia es funcional o no?

    Lo que pasa es que segun yo ya he hecho todos los pasos, pero me falta que el archivo de email.php me funcione (ya le cambie la

    La verdad no se usar byethost ni algun sitio para alojar mis archivos. Ojala me puedas ayudar, ya que ya avance mucho y me falta poco para terminar.

    Gracias

    ftp://ftp.byethost13.com/acuarioenlinea.byethost13.com/htdocs/email.php

    ResponderEliminar
  83. Hola de nuevo!

    Ya he logrado subir el archivo php, use otro host.
    El 000webhost.com, me envia el correo al instante.

    Ahora solo me queda felicitarte por este excelente trabajo y desearte una excelente navidad y prospero año nuevo!

    Sinceramente gracias

    ResponderEliminar
  84. Perdón por el retraso Alex3691, pero ya veo que lo solucionaste enseguida. Y gracias por el dato del sitio para poder colgar PHP.

    ResponderEliminar
  85. Oloman, por mas q esta desactivado el bloqueador de pop ups y he puesto tu direccion:http://olobloggerpruebas.blogspot.com/p/tienda-online_5270.html como segura, en IE no funciona, sale la barrita amarilla denegando el pop-up y en un segundo te redirecciona a la pagina de "Tu pedido ha sido enviado" pero sin tiempo de poner el mail del comprador ya q no se abre ningun casillero para ponerlo. En FF trabaja muy bien, q puede ser?? gracias. PD: Soy Jaime (no se si me recuerdas) pero probando desde otra cuenta =)

    ResponderEliminar
  86. Por si acaso estoy probando con tu misma tienda online de modelo, tengo IE8 y uso Windows XP, gracias!!!

    ResponderEliminar
  87. Ya lo solucioné, hay q entrar en IE a Herramientas>> Opciones de Internet>> Seguridad>> Nivel Personalizado>> Scripting>> Permitir q los sitios usen ventanas de información...aceptar, poner ok y resetear solo IE, y ya funciona...el problema será q todos nuestros visitantes y posibles clientes q naveguen por IE tendrán q hacer lo mismo y será un fastidio. Habría q poner un aviso para los usuarios de IE...no habrá otra forma?? Nota: He tratado de traducir la ruta lo mejor posible ya q mi IE lo tengo en inglés =(

    ResponderEliminar
  88. Me olvidé de poner en la ruta anterior q llegado al final habrá q poner "Habilitar".
    Oloman, ahora si una buena pregunta: Y si quiero poner dos tiendas en un mismo blog, como hago?? osea dos destinos distintos, una categoría de artículos q vayan a un email y cuenta Pay Pal y otra categoría de artículos a otro email y Pay Pal. Y la última: porq le has puesto id='s1',etc a la parte del código HTML de "Add to Cart"??? no veo ese ID en el estilo ni en el codigo original del desarrollador?? gracias =)

    ResponderEliminar
    Respuestas
    1. Hola. Gracias por el apunte de IE. Mi opinión es que no puedes programar en JavaScript si vas pensando que el usuario tiene JS desactivado. Si es así, no te queda más remedio que usar otro lenguaje y esta tienda es sencilla porque gracias a este lenguaje, no necesitas bases de datos, cosa por otra parte de la que carecemos en Blogger. Si hay otra forma de plantear esto distinta de la de poner un aviso, desde luego la desconozco.

      Y sobre el s1, no puedo recordar los pormenores de todos los códigos que publico, pero creo que eso lo mete el script para relacionar cada botón con su producto. Si todos tuvieran la misma id ¿qué producto estamos añadiendo al carro?

      Supongo que lo viste en el código fuente de la página y este ya sale acomodado al resultado del programa ¿puede ser? ;)

      Eliminar
    2. ok Oloman, probé el carrito en una PC con IE9 y abrió de frente la ventana para llenar el mail, no sé si será por la versión o por la PC. Te habia comentado si con este script se pueden poner dos tiedas en un mismo blog, como hacerlo?? Gracias =)

      Eliminar
    3. Esa parte de tu comentario me la salté, pero lo cierto es que a bote pronto no se me ocurre cómo habría que modificar el código para eso. De todas formas siempre hay varias formas de hacer lo mismo y a mí siempre me gustan las que me dan menos trabajo ¿Qué tal si usas una sola dirección de correo y luego redireccionas según el contenido, o sea, según los artículos incluidos en el cuerpo del correo?

      Eliminar
    4. Te refieres a redireccionar manualmente o hay alguna forma de hacerlo con algun script??

      Eliminar
    5. Redireccionar el correo. La mayoría soportan reglas para reenvío. Cosas como: "Si el remitente es tal, reenviar a esta dirección"

      Eliminar
    6. a OK!! gracias Oloman =)

      Eliminar
  89. Puede ser que esto me supere pero no se hacer lo del PHP, me suena a chino. Me podrías indicar un post o algo que me explique como hacerlo por favor?

    ResponderEliminar
    Respuestas
    1. PHP es un lenguaje de programación distinto del que solemos usar en nuestros blogs. Blogger no admite su alojamiento, así que lo primero es encontrar un sitio dónde hacerlo de manera que funcione desde allí. Una vez consigas ese alojamiento, sólo se trata de subir el fichero PHP y luego indicar la dirección en el script. No hay más ciencia en eso.

      Eliminar
  90. Oloman, yo subi el php a un alojamiento de pago y puse como mail de recepcion a uno con Hotmail, paso q despues de dos semanas Hotmail a baneado al servidor y lo ha puesto en lista negra. El administrador del servidor me indica q "cree" se deba a q el php esta mal formulado ya q no se sabe quien lo envia. Como tendria q acomodarlo para q sepa quien lo envia?? esa seria la solucion o se te ocurreo otra?? Gracias

    ResponderEliminar
  91. No entiendo el tema del baneo, pero me extraña que sea por eso. Imagina un formulario de contacto. Funciona más o menos igual y envía a un correo los datos que se recogen sin ninguna cuenta de correo como remitente. Algunos sitios envían muchos de ellos diariamente y sin problemas.

    Yo tengo ese PHP en un servidor también de pago y nunca me ha pasado nada parecido, ni tampoco nadie hasta ahora me había dicho nada parecido. No quiero decir que no pueda ser como te dijeron, porque en realidad lo desconozco, pero sí que me resulta raro que sea eso.

    ResponderEliminar
  92. Yo estoy haciendo una web con ese php y siguiendo tus tutoriales, puedes verla como Killari Peru, y estuve usando tu php durante dos semanas casi 10-15 veces diarias. La info la recibia correctamente en mi correo de hotmail. El php no lo modifiqué pero si el script para recepcionar como yo quiero los correos, puedes verlo en el codigo fuente. Hasta q un dia dejé de recibir los correos y esta fue la respuesta q me dio el chico del servidor:

    "Esto puede ser a causa de que el archivo PHP que estaba usando para enviar los correos a su cuenta de hotmail no esta configurado de forma apropiada. Entonces el servidro de hotmail a reportado mi IP en un par de servidores de listas negras es por eso que no llegan los correos, lo grave de esto es que puede afectar no solo a su script de php sino que también puede afectar a otros hostings que tengan la misma ip.
    Por seguridad voy a desabilitar el script unos días hasta ver de salir de esas listas negras."

    ... y me adjuntó el siguiente link:

    http://www.mxtoolbox.com/SuperTool.aspx?action=smtp%3ap3nlhg329.shr.prod.phx3.secureserver.net#

    Ahora lo trato de ubicar pero no me responde, q me sugieres hacer?? gracias =)

    ResponderEliminar
    Respuestas
    1. Pues no te puedo sugerir nada porque como te dije anteriormente, ese es un tema que no conozco. Pregunta al que te contestó eso qué es lo que anda mal en el PHP, adjntándole el código. No se me ocurre otra cosa mejor... y supongo que ese contacto será fiable.

      Eliminar
  93. ok Oloman, vere como sigo avanzando, gracias!!

    ResponderEliminar
  94. Oloman, otra duda en tu codigo php, en esta linea:

    $headers = 'X-Mailer: PHP/' . phpversion();

    no deberia ir un punto antes del "=" ?? asi:

    $headers .= 'X-Mailer: PHP/' . phpversion();

    o es irrelevante??

    Otra cosa: Estaria bien agregarle esta linea:

    $header = 'From: ' . $jcremite . " \r\n";

    para q el proveedor del email destino sepa quien lo envia o eso ya se indica en la linea:

    $remite = $_POST['jcremite'];

    gracias

    ResponderEliminar
    Respuestas
    1. El PHP no es lo mío, bueno, realmente casi nada lo es :). Lo del punto me da a mí que no tiene sentido que vaya ahí y en cuanto a lo del remite, no sé para qué sirven esos parámetros que añadiste. El remitente, al tratarse de un formulario, creo que siempre es el servidor que aloja el PHP. Por otra parte, ese jcremite no es un remitente real, sino que se trata como un campo que el usuario rellena con su direccion de correo y por tanto, nada lo identifica como origen del "correo".

      Otra cosa aparte de mi ignorancia sobre el particular, es que este script lo vi hace mucho tiempo y ya hay cosas que no recuerdo. Voy a pegarle un repaso porque estoy viendo cómo mejorar la plantilla Blogger Store y cuando tenga mis conclusiones lo publico todo, incluido lo de la opción por email. Ya te anticipo que hay una versión posterior de SimpleCart que puede que incluya esa opción u otras mejoras. No lo sé seguro porque como digo, no lo he visto a fondo.

      Eliminar
    2. publique un comentario nuevo al mismo tiempo q tu... ok, te entiendo, de todas formas gracias por tu tiempo y tutoriales!!

      Eliminar
  95. Podria ser esta mi sintaxis final:

    $to = 'xxxxxxxxxx@hotmail.com';
    $remite = $_POST['jcremite'];
    $subject = 'Aviso de pedido';
    $jcitems = $_POST['jcitems'];
    $headers = 'From: ' . $jcremite . " \r\n";
    $headers .= 'X-Mailer: PHP/' . phpversion() . " \r\n";
    $headers .= "Mime-Version: 1.0 \r\n";
    $headers .= "Content-Type: text/plain";
    mail($to, $subject, $jcitems, $headers);
    echo 'Su pedido ha sido enviado. appdev
    Nos pondremos en contacto con Vd. mediante el correo facilitado: ';
    echo $remite;

    Tengo dudas de las comillas dobles?? esto lo hice leyendo un tutorial y lo adapté, te agradeceria mucho q me corrijas si algo esta mal y asi tambien pueda servir para otros. Gracias =)

    ResponderEliminar
  96. Oloman saludos tu blog me ha servido muchísimo para el blog que estoy haciendo, pero tengo una duda en cuanto a las pasarelas de pago, si no quisiera utilizar paypal, que código podría utilizar para sustituirlo por una pasarela de pago diferente, por ejemplo gestionada por un banco cualquiera

    ResponderEliminar
    Respuestas
    1. Para utilizar directamente la pasarela de pagos de un banco, creo que tendrías que contactar con ellos y te facilitarán un programa que llaman TPV virtual. Como un datáfono físico, pero adaptado al medio.

      Eliminar
  97. Que tal Buena tarde si alguien me podria ayudar como colocar el shipping en el simplecart eh leido la documentacion del programa pero o soy muy malo o no me sirve si alguien me pudiera explicar se los agradeceria saludos

    ResponderEliminar
    Respuestas
    1. Si te refieres al carro dónde se muestran los artículos comprados -seleccionados- se hace con sólo poner
      <div class="simpleCart_items"></div>

      Eliminar
    2. No precisamente, por default tienes el precio, la imagen (del articulo), el costo unitario, la cantidad, y el total entonces lo que quiero es que muestre el shipping pero que sea en proporción a los articulos comprados y que se muestre ya sea por articulo o el total de la compra, si pudieras ayudarme estaria genial, gracias.

      Eliminar
    3. Ya sé a qué te refieres, a los gastos de envío. Eso lo tienes explicado (en inglés) en esta página, apartado CONFIGURATION: http://simplecartjs.com/documentation.html

      Eliminar
  98. Hola.

    Tienes aqui una buena manera de se enviar el pedido por email.
    Gracias por la información.
    Pienso que falta solo un pequeño pormenor.
    Cual seria la mejor manera de no permitir el envío del pedido sín indicar un email válido en la ventana del java script?

    ResponderEliminar
    Respuestas
    1. Lo único que podríamos controlar es que tiene la forma nombre@dominio, pero eso no te garantiza que el correo sea real ¿no?

      Eliminar
  99. Si, tienes razón pero ayudaria a dar un poco mas de control y evitar el envío sin nada.

    ResponderEliminar
  100. Pues para controlar el formato tienes algo tan fácil como esto:
    Validar correo

    ResponderEliminar
  101. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
    Respuestas
    1. Dirección, por favor. Necesito verlo para comprobar que entendí bien y para hacer una prueba.

      Eliminar
  102. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
    Respuestas
    1. Ya vi lo que ocurre y ciertamente es un problema añadir más de un número determinado de productos porque algunos se van borrando. En un principio pensé que sería un problema de visualización del carro completo pero no, es como tú dices y parece que se borran de la cookie.

      Pero no encontré solución y además parece que esta no es fácil. Te recomiendo que sigas este hilo de la Wiki e incluso que añadas un comentario indicando que a tí también te pasa (en mi demo también), a ver si así los creadores se dan más prisa en contestar.

      Eliminar
    2. Muchísimas gracias por ayudarnos, haremos lo que indicas.

      Eliminar
  103. Hola Oloman muchas gracias por el excelente info pero no entiendo desde donde poner estos codigos: this.emailCheckout = function() {
    var remite = prompt("Introduzca correo de contacto: ");
    itemsString = "";
    esubtotal = 0;
    etotal = 0;
    for( var current in this.items )
    ..................................
    Hacia abajo no me resulta muy claro para seguir avanzando y lograr poner la opcion de enviar por email los productos.
    Por favor me puedes aconsejar que documentos subir via php y despues de subirlo como ver el enlace del documento asi como : http://elsereno100.byethost15.com/php/email.php, pero si contrato un hosting de pago y lo subo y de ahi lo comparto con ustedes para asi ayudar a otros bloggers me podrias indicar como hacerlo???
    Por favor responde cuanto antes necesito avanzar con este proyecto.
    Te paso el enlace de mi proyecto de tienda online: http://tiendaonlineblogger.blogspot.com/.
    Saludos Oloman espero su pronta respuesta.

    ResponderEliminar
    Respuestas
    1. Se supone que tienes que editar el script de SimpleCart y allí cambiar la función this.emailCheckout = function() que aparece vacía, por la que propongo. Luego tienes que buscar un hosting para ese fichero PHP que pongo. Pero cada cual necesita el suyo con su propia cuenta de correo, así que se agradece la intención pero el de uno no sirve para otro.

      Si no terminas de lograrlo, visita la colección de entradas que vienen al final de esta entrada: Blogger Store

      Creo que encontrarás más cosas que te pueden venir bien ;)

      Eliminar
    2. Hola Oloman y gracias por la informacion voy a seguir intentando haber como me va con el desarrollo de mi tienda online con la plataforma blogger y vaaya realmente que pena sobre la info que me das sobre el hosting, por ahora leere bien los post que me estas recomendando y cualquier duda te escribo, muchas gracias por responder. Saludos

      Eliminar
  104. Oloman maestro no logro realizar la opcion de envio via email de los productos. e insertado todos lo codigos como lo indicas y eh colocada el php llamado SimpleCartEmail.txt antes del /head y no permite enlazar el sistema de pedido no se en que estoy fallando por favor me puedes ayudar??

    ResponderEliminar
    Respuestas
    1. Por ultimo aqui te envio la url para que veas como me esta quedando:

      http://tiendaonlineblogger.blogspot.com/

      Saludos espero tu respuesta.

      Eliminar
    2. Date una vuelta por esta entrada y las que se enlazan justo al final. Ahí hay un montón de cosas para esa plantilla concreta que utilizas y una nueva explicación para lo del correo.

      Enlace

      Eliminar
  105. Hola, soy yo nuevamente (sólo que varias horas después), quisiera comentarte que ya conseguí ponerle el fondo blanco a la tienda (modificando el estilo en el gadget de HTML/Javascript -y es que estaba como loca intentando modifica el HTML de la página estática) y de pasó modifiqué algunas otras cosas para que se viera más lindo.

    Ahora mi duda es cómo agregar un botón de e-mail, algo más que el h ref mailto, pues quiero que el correo electrónico contenga la información del pedido que va a realizar el usuario; pero no quiero usar el PHP (realmente se me complica todo eso). Agradecería si pudieras explicar cómo hacerlo con Javascript.

    Saludos :)

    ResponderEliminar
    Respuestas
    1. Pues lo siento, pero yo sólo conozco el mailto y como creo que sabes, esa opción sólo abre el correo del usuario y coloca algunos datos, pero no los del pedido. Si descubres algo avisa por favor.

      Eliminar
  106. Hola.
    Muchas gracias por el tutorial!, me funciona muy bien. Me llega un mail con título "Aviso de pedido", pero necesito que dentro de ese mail me lleguen los datos de los productos que la persona compró.
    Cómo podría hacer?, por dónde tendría que modificar?.

    Muchas gracias,
    Daniela.

    ResponderEliminar
    Respuestas
    1. Pues si seguiste todas las instrucciones, sólo tienes que añadir artículos al carro antes de pinchar en el botón (?!)

      Eliminar
    2. Hice todo textual y varias veces pero lo único que consigo es que me llegue un mail con asunto "Aviso de pedido" y el cuerpo del mail vacío. En el cuerpo me deberían aparecer los datos de los productos del carrito, no?. Qué error puedo estar cometiendo?.

      Gracias,
      Daniela.

      Eliminar
    3. Habilita el blog en tu perfil que le pueda echar un vistazo

      Eliminar
  107. Hola!
    He estado probando el tutorial ante la posibilidad de montarme una tienda online. La verdad es que hace mucho que practicaba en html y c++, así que solo puedo decir que está todo magníficamente explicado, ya que hice todo paso a paso y ya está casi listo.

    Sin embargo, tengo un problema con el email que sen envía al hacer un pedido. Me sale el mensaje conforme el pedido ha sido realizado (es decir, llega hasta el email.php) pero no me llega email ninguno en mi dirección de correo.

    Tras revisar todo un par de veces y leerme los comentarios por si mi problema ya lo había tenido otro y podía resolverlo sin molestar, ha llegado un punto en el que me he quedado sin ideas de donde buscar el error.

    Y nada más, si podéis darme una indicación acerca de donde buscar el problema os lo agradezco xD. Un saludo.

    ResponderEliminar
    Respuestas
    1. Hola. Dónde tienes problemas tú es dónde muchos los han tenido. El motivo es que los ficheros .php no se pueden leer desde todos los sitios y necesitas un hosting que sea capaz de administrar ese lenguaje. Inicialmente di como posibilidad el servicio Byethost que es gratis, pero por motivos que todavía desconozco, algunos siguen teniendo problemas.

      Prueba tú con ese alojamiento que me pillas precisamente a mí también haciendo experimentos de nuevo con el susodicho :S

      Lo que te puedo anticipar es que tarda bastante desde que envías el pedido hasta que lo recibes y por eso también es complicado de comprobar que todo funciona bien.

      Eliminar
    2. Gracias Oloman, probaré diferentes hosting a ver el resultado. Luego los postearé por si pueden ser de utilidad para los que lo hagan más tarde. Gracias y un saludo.

      Eliminar
    3. Confirmado Oloman. Subí el archivo a 000webhost y va como un tiro. Hago el pedido de prueba y en cuanto le doy al botón me salta el aviso de nuevo correo ^_^.

      Ahora bien, resulta que 000webhost no permite subir scripts si no se tiene la opción premium, con lo cual buscaré una alternativa. Un saludo y gracias por todo.

      Eliminar
    4. Pues muchas gracias porque me acabas de ayudar a descubrir el problema. Byethost es inestable en cuanto a poder acceder al JavaScript y con 000Webhost tuve muchos problemas porque no me iba ni el .js ni el .php. Sin embargo, si es como tu dices fenomenal porque el problema es el .php. Para el .js puedes usar Google Code o DropBox que te garantizo funcionan sin problemas.

      Eliminar
  108. Oloman, buenísimo el tutorial!.
    Cómo podría hacer si necesito que además del mail introduzca otro dato más en el prompt?.

    Gracias!.

    ResponderEliminar
    Respuestas
    1. No lo he probado pero supongo que no debe dar ningún problema. Podrías añadir una línea como...
      var remite = prompt("Introduzca correo de contacto: ");
      ...pero con otra variable nueva y el mensaje correspondiente. Luego tendrías que añadir a itemstring esa nueva variable de la misma manera que añadí las otras para que te llegue el dato.

      Eliminar
  109. Hola Oloman, me agrado mucho tu tutorial :D es muy interesante!! pero tengo un problema lo que pasa es que al enviar el correo me lo envia en blanco osea sin contenido, nada mas me pone el asunto, ahorita estoy haciedno pruebas pero no me sale, me podrías decir mas o menos a que se podrá deber esto, es que ahorita no tengo el codigo script lo tengo en otra pc.

    Saludos

    ResponderEliminar
    Respuestas
    1. Pues el script es lo más importante, sobre todo si tampoco puedo ver tu web...

      Eliminar
  110. Hola Oloman,
    Gracias por este valioso tutorial,pero me encuentro con un problema.
    He ido a la página del simplecartjs y han actualizado el código. Lo he abierto y no encuentro la mayoría de las cosas que explicas aquí ya que han cambiado su código.
    Me preguntaba si podrías actualizar tu tutorial acorde con la nueva versión del carrito, te estaría eternamente agradecida.

    ResponderEliminar
    Respuestas
    1. Hola. Tienes el código "antiguo" enlazado en el último párrafo de esta entrada. El script que ahora sale en la página oficial creo que es la versión 3 y es muy distinta a la que se explica aquí, tanto que no me he puesto a averiguar cómo funciona.

      Si te bajas el mío podrás aplicar esta modificación, pero si quieres usar el otro ya tendrás que buscar en el wiki que tienen abierto cómo hacer lo que necesitas. Quizás hasta incluya esta utilidad sin necesidad de hacer nada.

      Eliminar
  111. Hola! He leído todo detenidamente, no sé mucho de códigos PHP, Me podrías decir cómo alojo mi código en el servidor que mencionas y qué código es?

    ResponderEliminar
    Respuestas
    1. Te acabo de contestar en otro post remitiéndote a este :)

      Eso de alojar el PHP es lo más complicado porque los servicios gratuitos no suelen dar soporte a ese lenguaje. Mi recomendación actualmente es usar 000Webhost y la forma de hacerlo es como se explica aquí. Es un tutorial para otro hosting, pero el mecanismo es prácticamente igual.

      Eliminar
  112. Buenas noches:
    estoy montando una tienda y no consigo que me funcione el envío por correo. Puse el fichero en dropbox y no hay manera. MI dirección es http://tiendacdgb.blogspot.com.es/
    MUchas gracias

    ResponderEliminar
  113. Buenas tardes:
    he cambiado el fichero de dropbox a byethost tal y como indicas y no recibo los correos. Cuando envío el correo me sale http://5600399073443951.securesignupoffers.org/b/
    Sinceramente estoy por tirar la toalla.
    Muchas gracias

    ResponderEliminar
    Respuestas
    1. Hola. El fichero simplecart.js sí puede ir en DropBox, pero el email.php tiene que ir en un hosting que soporte ese lenguaje (PHP). El único gratuito que hemos comprobado que funciona (echa un vistazo a los comentarios) es el de 000Webhost. Prueba allí.

      Eliminar
    2. ok, muchas gracias, probaré y te diré algo

      Eliminar
  114. Primero que todo agradecer por el tremendo aporte que realizas. Mi consulta es la siguiente.
    Estoy creando una web con compra online y sistema de carrito. Los códigos ya están en proceso, pero necesito el siguiente orden. Al momento de hacer click en un producto, cuando confirmo el check out, existe la posibilidad de que me redireccione ( en vez de a una ventana para ingresar el correo) a una pagina estática dentro de la misma y en donde yo defina (en un listado anteriormente redactado) las formas de pago, etc, pero que también en esa pagina estática aparezcan en una lista los productos que se seleccionaron anteriormente por el comprador ?
    En resumen, al momento de editar el script this.emailCheckout = function() { , que códigos ingreso ahi mismo para que me lleven a una estatica (con una dirección que yo definiré) y que aparezca el listado de las cosas que seleccionó el comprador ?
    Mil gracias, y espero puedas leer este mensaje, saludos !

    ResponderEliminar
    Respuestas
    1. Hola

      Te explico el procedimiento, pero no te puedo detallar el código necesario.

      En un principio tienes que cambiar los enlaces de pago por email para que apunten a esa página estática. Allí tienes que poner las cabeceras necesarias para que se muestre "la estantería" con los productos (en esta demo se explica cómo hacer esas cabeceras, ver texto junto al producto "Gorra").

      Luego creas un formulario y a cada campo le asignas una id. Por último pones un botón como el que originalmente hay para lanzar el SimpleCart por correo.

      Y ahora ya puedes editar la función emailCheckout para capturar por ID (getElementByID) los valores del formulario. Sólo restará añadirlos a la variable "itemsString" que es la que el PHP manda por correo.

      Eliminar
    2. Oloman, por fin pude hacer lo que arriba te comentaba, y estoy muy contento por ello. Tengo una duda con respecto a los productos, estuve mirando el blog de pruebas ( http://oloblogger-bloggerstore.blogspot.com.es/) y me fije que le agregaste la opción para especificar tallas y colores, existe la posibilidad de que al cambiar de talla, el precio también cambie ? como se puede hacer ello ? Te agradecería mucho tu ayuda nuevamente. Saludos y muchas gracias.

      Eliminar
    3. Mira en "Configuraciones desde escritorio" de esta entrada, aunque te recomiendo que sigas leyendo también las siguientes de esa misma serie que se enlazan al final.

      Eliminar
    4. Oloman mil gracias por responder,he probado de todo, pero los precios (en el inicio de la página, estando en grid no cambian, solo cuando ingreso al producto cambian) pero bueno , buscaré mas y mas..ahora, tengo dos preguntas más , he estado buscando por todos lados, y nada :( ...siendo realistas...es posible adaptar o ingresar algún sistema de Stock de productos ?, será muy imposible?
      -En la plantilla actualizada que trabajaste, en donde puedo encontrar el script que hace que al hacer click en la imagen ésta se agrande ? (ya que cuento con la antigua plantilla, y el actualizarla, me cambiaría todo todo).
      Mil gracias nuevamente por tu ayuda.

      Eliminar
    5. Me acabo de dar cuenta de que eso de que cambie el precio según talla o color no lo desarrollé. Se supone que los artículos tienen el mismo precio y que sólo estamos cambiando una característica.

      Lo del stock sí lo desarrollé para un "cliente", pero no es automático del todo. Piensa que esté script es precisamente para gente sin hosting y por tanto sin PHP ni SQL, los lenguajes que hacen fácil ese tema.

      Lo que hice a petición suya fue una hoja de cálculo de Google Docs dónde el administrador graba a mano las unidades disponibles. Esa cifra sí que se traslada automáticamente a la tienda y además, un mini-programa controla que nadie pida más de las que hay. Una vez que el vendedor realiza el envío, el administrador da de baja (también a mano) las unidades correspondientes.

      La desventaja es que las sumas y restas hay que hacerlas a mano. La ventaja es que sólo hay que acceder a la hoja de cálculo para hacerlo.

      En mi plantilla modificada lo de la imagen grande aprovecha la utilidad lightbox que Blogger lleva de serie, así que no hay ningún script adicional.

      Eliminar
    6. Muchas Gracias por todo! :)
      Por casualidad sabes como editar el precio del menu-cart ??? esta configurado para que aparezca de esta forma ..$0.00 ...pero yo quiero agregar un cero más, ya que en mi país los valores son asi. $1.500 , los productos estan actualizados de esa forma en las entradas "$23.000", pero a la hora de ingresarlo al carrito aparece como "$23.00"...estuve revisando el js el cual edite, pero sigue igual, y encontré esto:

      if( !this.price || this.price == null || this.price == 'undefined'){
      this.price=0.000; (aquí agregué un cero)
      error('No price for item or price not properly formatted.');
      } else {
      this.price = ("" + this.price).replace(/,*/gi, "" );
      this.price = parseFloat( ("" + this.price).replace( /[^(\d|\.)]*/gi, "") );
      if( isNaN(this.price) ){
      error('Price is not a number.');
      this.price = 0.000; (aquí agregué un cero)
      }
      Sabes que debo hacer para agregarle un cero más ? Muchas Gracias :)

      Eliminar
    7. Eso lo desconozco. Eché un vistazo pero no vi una manera sencilla de cambiar el número de decimales.

      Eliminar
  115. Hola:
    quisiera hacer una pagina como esta http://oloblogger-bloggerstore.blogspot.com.es/p/compruebe-su-carro.html pero no se como hacerlo. melo puede indicar.

    ResponderEliminar
  116. Buen día quiero felicitarles por el trabajo que han realizado y por el empeño que muchos han puesto en el codigo.

    Quiero saber si alguien tiene las plantillas xml,php y .js finales,ya que he leido todas y cada una de las paginas detenidamente pero me confundo puesto que aveces salen correcciones nuevas y me enredo bastante.

    conozco un poco de programación,pero no algo avanzado.

    les invito a conocer mi blog original,el cual quiero transformar en tienda virtual.Espero su ayuda les dejo mi correo

    vempriecloth@gmail.com
    http://v-empiregothic.blogspot.com/

    ResponderEliminar
    Respuestas
    1. los ficheros los tengo alojados :

      Si estoy mal por favor corregirme...Ya que llevo 3 meses lidiando con la pagina y no me dan los envios por correo

      1-la pagina xml ya esta instalada y tiene la direccion del .js

      2-el js contiene el enlace del php

      3-No se si la plantilla xml debe contener todos los codigos al tiempo o solo las direcciones de enlace.


      http://www.vempirecloth.byethost17.com/email.php
      http://www.vempirecloth.byethost17.com/simpleCart2email.js

      Eliminar
    2. Hola

      Al revés quizás se explica más fácil:
      - el fichero .php tiene que ir en un hosting que soporte ese lenguaje (000Webhost sirve)
      - el fichero simplecart2email.js tiene que estar alojado en un hosting que admita hotlink (DropBox sirve) y dentro de él hay que personalizar la dirección del fichero .php, poniendo la del tuyo
      - el .xml es la plantilla para Blogger. Con eso sólo tienes el aspecto general del blog, pero tiene que incluir las llamadas a varios ficheros .js, al menos al de simplecar2email.js

      Estas usando Byethost y posiblemente no te funcione por eso.

      Como aclaración, en el último artículo de esta serie se ofrece la plantilla incluyendo todas las modificaciones de los anteriores.

      Eliminar
  117. Hola amigo, excelentes tus tutoriales y explicaciones, sólo una cosa no habría forma de que pudieras subir el paquete con los archivos de tu versión o que versión es la que usas, ya que estuve checando la nueva versión y ya viene muy muy diferente a lo que tu explicas, pero muchas gracias por tus tutoriales, saludos.

    ResponderEliminar
    Respuestas
    1. En el último enlace de la lista al final del post hay una demo. En esa demo encontrarás otro enlace con el que podrás bajar esta versión de la plantilla y en su código fuente vienen los ficheros utilizados con sus direcciones. Ahí puedes conseguir todos los .js necesarios.

      Eliminar
  118. Buenas tardes. Me gustaría saber como poder personalizar el mensaje de php que sale cuando aceptas la compra y va a enviarse por email. Me gustaría ampliar ese mensaje, pero no consigo hacerlo. Muchas gracias por adelantado

    ResponderEliminar
    Respuestas
    1. Hola. Simplemente tienes que añadir líneas con un ECHO seguido de texto (o código) entre comillas simples y todo terminado en un punto y coma. Yo puse en el ejemplo dos líneas de esas, pero puedes añadir las que gustes con lo que gustes.

      Eliminar
  119. toda via seguiras con este blog.. me podrias ayudar sigo tus pasos y todo bien envio a travez de pedido por email, y si me sale el correo de envio ,pero no me llega a mi correo la informacion, que estara mal este es mi blog de prueba gracias espero y pueda sdarle una checadita nada mas para que veas que si sale el envio pero no me llega la informacion a mi correo. http://bloglocoblog.blogspot.mx/ agradecere tus comentarios

    ResponderEliminar
    Respuestas
    1. Acabo de comprobarlo y a mí, como cliente, sí me llega el correo. Por tanto el PHP funciona correctamente, pero seguramente no has incluido la línea que te remite una copia a tí.

      Eliminar