Fallo al subir imagenes al admin de Magento con proteccion .htaccess [arreglado]

Al proteger un Magento con .htaccess y .htpasswd, puede que fallé al subir imágenes al admin de Magento, si no se hace bien.

En muchas ocasiones querremos proteger o restringir el acceso a una instalación de Magento en un server, por ejemplo, cuando se trata de un sitio en desarrollo y no queremos que sea accesible por el público en general.

Una buena manera de hacerlo es utilizando la protección de directorios utilizando el .htaccess para restringir el acceso a usuarios válidos, idéntificados por un nombre de usuario y contraseña, que previamente habremos generado con htpasswd.

El problema es que en ocasiones esto no se hace bien y en Magento falla la carga de imagenes (upload) desde el admin.

A continuación voy a detallaros paso a paso como hacerlo y que no fallé la carga de imágenes en el admin de Magento:

Creamos el fichero con usuario/s y contraseña/s .htpasswd. Para ello ejecutamos desde el shell el siguiente comando:

htpasswd -bc /ruta/al-fichero/.htpasswd usuario contraseña

Ya tenemos el fichero con nuestra/s contraseña/s, ahora toca modificar el .htaccess de nuestro sitio Magento, para incluir las siguientes directrices:

###########################################
## proteccion de acceso por .htpasswd
AuthUserFile  /ruta/al-fichero/.htpasswd
AuthName "Acceso Restringido"
AuthType Basic
<LimitExcept POST>
    require valid-user
</LimitExcept>

Observar la directriz <LimitExcept POST> que es la que hace que la carga de imágenes funcione, ya que limita los accesos requiriendo un usuario válido, excepto para las peticiones POST. De esta forma podemos tener un Magento protegido con usuario y contraseña sin perder ninguna funcionalidad.

Posted in Magento | Tagged , , , | 2 Comments

Magento bug con usuarios registrados y Paypal Express Checkout. Solución

Hace unos días publiqué en el blog de la empresa Interactiv4 la solución que he desarrollado y empaquetado para resolver el bug en Magento con Paypal Express Checkout, que impide que los usuarios se registren durante el checkout

Os invito a todos a que leais este post con la solución y os descargueis la “extensión” gratuítamente desde el mismo post para solucionar el problema.

P.D: Si alguien se anima a colaborar y traducir el post en inglés, pues que me mande un email, que queremos compartirlo también con la comunidad de habla inglesa.

Posted in Magento | 5 Comments

7 consejos para mejorar tu comercio electrónico

Tienes una tienda de comercio electrónico y quieres mejorar tus ventas. En este post te doy 7 consejos para mejorar tu comercio electrónico:

  1. Redes sociales
  2. Comparadores de precios
  3. Sitios de promociones, compras sociales y sorteos
  4. Microformatos
  5. Programas de afiliados
  6. Google Adwords y otros CPC
  7. Piensa localmente: Geolocaliza tu comercio electrónico

Redes sociales y Blogs

Si todavía eres de los que crees que las redes sociales no tienen nada que aportar a tu comercio electrónico (cada vez quedan menos incrédulos), ¡abandona esa creencia ya!. Por si nadie te lo ha dicho aún: SI. Las redes sociales, bien utilizadas, pueden generar mucho tráfico cualificado. Mi consejo para empezar: Centrate en twitter y facebook.

Twitter es ideal para públicar ofertas y noticias relevantes a tu “nicho de mercado”. Es el amplificador ideal de tu blog. Puedes (y debes) hacer “seguimiento de tu marca” en twitter, vigilancia competitiva, encontrar bloggers y referers interesantes que te ayudarán en tu labor de “link building”. Construye poco a poco tu red relacionada con tu producto y/o servicio.

En facebook crea una “página de empresa”. No cometas el error común de crear un perfil personal. Va contra las normas de facebook, y te pueden cerrar el perfil si detectan que no es personal.

Facebook te permitirá mover tu red social con más “músculo” que twitter. Incluye una descripción de la tienda, los productos que vendes, fotos de tu productos clasificadas por categorías.

En una fase más avanzada crea una versión de tu tienda en facebook, crea promociones virales. Hay varias herramientas que te pueden ayudar en esto. Te recomiendo Beetailer si tienes tu tienda montada en Magento(la mejor plataforma de comercio electrónico) o Shopify.

Si tu tienda online es un servicio mensual de los que ofrecen varias empresas, asegúrate que te ofrece la posibilidad de integrar tu tienda en facebook. Soluciones como Tiendy te lo permiten.

Crea un blog y publica contenidos en tu propio él relacionados con tu sector. Como especialista en tu mercado tienes cosas interesantes que contar. Reviews de productos, comparativas, consejos, etc.  son algunas ideas para escribir en tu blog. Un comprador estara interesado en este tipo de información con la que crearse un “criterio de compra”.

Utiliza las redes sociales para generar tráfico a tu blog. Y tu blog para generar credibilidad y tráfico a tu tienda.

Finalmente, implementa en tu sitio los habituales botones de twitter, facebook, y más recientemente el google+1. Los motores de búsquedas los estan utilizando cada vez más para cualificar sus resultados.

Puedes aprender más sobre redes sociales en el blog de Julio Pomar. Puedes empezar por esta lectura sobre como utilizar las redes sociales en las pymes

Comparadores de Precios

Existen multitud de sitios donde los usuarios pueden buscar un producto y obtener un listado de tiendas online en las que comprarlo y al precio al que pueden hacerlo. Twenga, Ciao, Kelkoo y más recientemente Google Shopping son algunos de esos sitios.

Normalmente puedes incluir tus productos en estos sitios a través de un fichero de texto separado por comas, o un xml con los productos de tu catalogo, sus características y sus precios. Esta integración no es complicada. Muchas plataformas de comercio electrónico no facilitan la integración a google shopping y similares directamente, aunque sí a través de plugins.

Si no es así, un programador puede realizar esa integración con facilidad. En ese caso tendrás la ventaja de poder personalizar la información que exportas. Esto te permite darle a cada sitio la información relevante para destacar en sus páginas de resultados. Piensa que, al igual que ocurre con los buscadores, lo que debes perseguir no es estar, si no estar bien posicionado en estos comparadores de precios.

Sitios de promociones, compras sociales y sorteos

Aunque no es un fenómeno nuevo, si es cierto que en los últimos tiempos han resurgido con fuerza sitios que generan ventas a través de ofertas, compras en grupo, compras sociales o sorteos. De estos sitios, el más conocido probablemente sea Groupon.

Personalmente recomiendo este tipo de sitios para situaciones puntuales: liquidación de existencias, productos que pueden quedar obsoletos en breve, etc.

Aunque Groupon es la página lider de este tipo, he leído algunos comentarios negativos sobre lo mucho que presionan a los “comercios electrónicos vendedores” y las condiciones que les ponen. Con conceptos parecidos o equivalentes existen otras alternativas nacionales que son interesantes: Me gusta la idea de Bukingo de reciente creación, y muy especialmente recomiendo echarle un vistazo a Rifalia.

Microformatos

Esta es una práctica que requiere conocimientos técnicos, pero que puede potenciar mucho nuestro SEO y hacer destacar nuestras páginas en las páginas de resultados de los buscadores. A modo de explicación no técnica podríamos decir que los microformatos son pequeños estándares en los que se describe una forma estándar de “escribir” en código una entidad. Por ejemplo, existen estándares para representar una dirección, una receta, una tarjeta de visita… o los que son más importantes en el caso que nos ocupa: microformatos que definen la estructura estándar para un producto o una review (opinión).

Microformatos que potencian SEO para comercio electrónico en google SERPs

Ejemplo de Microformatos mostrados en página de resultados de google

Los microformatos son importantes porque, un usuario humano puede identificar claramente de un solo vistazo en un sitio web cual es el precio de un producto, cual es el nombre del producto, su descripción, etc., sin embargo un robot de un motor de búsqueda como google no puede diferenciarlo, a menos que le demos esa información en una estructura conocida. Si le damos esa información estructurada de manera que el buscador pueda interpretarla, el buscador puede extraer información adicional que utilizará en sus resultados.

Google y los demás buscadores prestan bastante atención a dos microformatos: Producto y Reviews. Las páginas de comercio electrónico que utilizan microformatos, dan información añadida a los buscadores que permiten destacar en las páginas de resultados.

Google, por ejemplo, destaca los productos cuyas “reviews” son favorables, mostrando su puntuación media mediante gráficos de estrella. Ni que decir tiene que, un enlace seguido de 5 estrellas amarillas destacará por encima del resto en la página de resultados, y aumentan las posibilidades de ser el enlace elegido por el usuario.

Aunque necesites ayuda técnica, asegúrate de que el código de tu sitio web implementa microformatos para mejorar el SEO. Si eres técnico ya sabes de que te estoy hablando, pero por si acaso, puedes obtener más información en Microformats.org o en schema.org, una iniciativa soportada por Google, Bing y Yahoo!

Progamas de afiliados

En su esencia, un Programa de Afiliados es un software que te permitirá comercializar a través de terceros los productos de tu comercio electrónico. Los afiliados se llevarán una comisión cada vez que se produzca una venta a un cliente referido por ellos.

Un programa de afiliados puede parecer “complejo” de implementar, pero existe mucho y muy buen software que simplifica la tarea.  Affilliates for All. Es un programa de afiliados muy recomendable. Se integra en Magento y es gratuíto. También funciona con otras plataformas de comercio electrónico.

Google Adwords y otros CPC

Pagar por tráfico cualificado es lo más sensato que puedes hacer. Hoy por hoy las posibilidades de segmentación que te ofrecen herramientas como Google Adwords, o las campañas de anuncios en Facebook, junto con la inmediatez para generar tráfico a nuestro comercio electrónico, los convierten en herramientas imprescindibles de ventas. Una buena gestión de campañas CPC generarán tráfico cualificado y ventas con toda seguridad.

Sin embargo, Google Adwords no es terreno para inexpertos. por mucho que Google se esfuerza en hacerte creer lo contrario. Es importante elaborar una buena estrategía, una buena planificación de campaña, establecer bien lo que vamos a pagar por click, cuales serán las páginas de aterrizaje.

Cada click en un anuncio tuyo te costará dinero. Son pequeñas cantidades, pero te aseguro que siempre pagarás mucho más de lo que debiera pagar si no te dejas guiar por un profesional. Te hará vender mucho más por mucho menos.

Simplificando mucho, google utiliza una estrategía para decidir que anuncio mostrar en primer lugar: “Quién paga más” y “Cual es el anuncio más relevante”. Es decir que, si estas dispuesto a pagar más que los demás, y tu anuncio es muy relevante a la búsqueda, tendrás muchas posibilidades de ser el primero. Si tu anuncio no es muy relevante, tendrás que pagar MUCHO más que los demás para ser el primero.

La “apuesta es ciega”. No sabemos lo que estan dispuestos a pagar los demás (aunque un profesional puede deducir mucho al respecto). habitualmente, alguien inexperto tienda a subir ENORMEMENTE su apuesta. Resultado: todos pagamos más a google. No me canso de insistir: apoyate en alguién que sepa lo que esta haciendo antes de meter un solo euro en google adwords.

Piensa localmente: Geolocaliza tu comercio electrónico

Por último, quisiera destacar que, siendo Internet un medio global, el comercio electrónico tiende a ser cada vez más local. A menos que seas una multinacional, en cuyo caso tengo dudas de que estes leyendo esto, tu ámbito de actuación tendrá una área geográfica definida.

Hay un viejo refrán español que dice “Vale más ser cabeza de ratón, que rabo de toro”. Aplicado al tema que nos ocupa: lucha por ser el primero en tu entorno geográfico. Geolocalíza tu comercio electrónico. La lucha será menos dificil y más eficaz para alcanzar tu público objetivo.

Los buscadores actuales tratan de dar resultados delimitados por ámbito geográfico. Es lógico. Si un usuario esta buscando desde Madrid una tienda de ordenadores, no tiene sentido mostrarle la Apple Store de Nueva York. Así que centra tu comercio electrónico en el ámbito geográfico donde esta tú publico objetivo.

A través de las herramientas para webmasters de google puedes indicar cual es el área geográfica que atiendes. Y además, en Google Places podrás dar de alta tu negocio para aparecer geolocalizado en los mapas de google, aumentando tu visibilidad en las páginas de resultados, así como en infinidad de sitios que utilizan la información de google como parte de su contenido.

Conclusión

Como verás, hay muchas cosas que puedes y debes hacer para generar más tráfico a tu sitio de comercio electrónico aparte del SEO. No te quedes con tu tienda abierta esperando que el público venga en manada a comprar tus productos. Tampoco te creas que por haber hecho algunos ajustes de SEO para posicionarte en buscadores has hecho todo lo que podías hacer. El comercio electrónico es cada vez más competitivo y tendrás que competir si quieres tener tu trozo de pastel. En aquellas áreas en que lo necesites, Busca ayuda profesional para mejorar tu comercio electrónico.

Posted in Comercio Electrónico | Tagged , , | 4 Comments

No estás solo: hay otros emprendedores

El mundo se mueve y evoluciona porque cada día nacen nuevos emprendedores. Muchos no conseguirán sus propósitos, pero otros muchos alcanzarán sus objetivos, cambiarán algo de este mundo en continua evolución, aunque a veces ese algo no sea más que sus propias vidas.

Como yo tengo esa “bendita enfermedad” de no conformarme, me he emocionado viendo que no estoy solo. cardsofchange.com es un sitio en el que se recogen de manera bastante original, tarjetas de negocio de personas que abandonan un trabajo y se lanzan a la aventura de cambiar sus vidas, de luchar por sus sueños, de cambiar el mundo……:

cardsofchange

A que esperas para poner la tuya!

Posted in Varios | Tagged , , , | Leave a comment

Google permite promocionar y eliminar resultados en sus listados

google-serp-promote-removeLos usuarios registrados en google habrán observado que en los nuevos listados, aparecen 2 nuevos botones que permiten “promocionar” y “eliminar” resultados en los listados de busqueda de google.

Este cambio ha puesto a los profesionales del SEO y posicionamiento en buscadores más que en guardía, en tanto en cuanto, esta información recolectada por google de millones de usuarios puede alterar el posicionamiento de muchos sitios web en google, y por ende, afectar al volumen de negocio de miles de sitios que dependen de su SEO para ganar dinero y que sus sitios web sean rentables.

A pesar del aparente poder que se le va a dar a los usuarios, y el terremoto que parece avecinarse en el mundo SEO, en este artículo se vierten razones por las cuales las nuevas posibilidades de promocionar y eliminar resultados de los listados de google no parece que vayan a cambiar drasticamente el posicionamiento actual de los sitios web……. al menos de momento!

Posted in SEO y SEM | Tagged , | Leave a comment

Zend Framework: Plugins, Action Helpers and Controllers life-cycle during dispatch

Front Plugins, Action Helpers and Controllers Init(), predispatch() and postdispatch() methods can be combined to get a more scalable Zend Framework Application. To combine all of them in a better maneer it is very important to get clear when is “fired” each of the different methods on each one. To clarify this, I have prepared this graph where it is shown when each method is fired during the dispatch proccess:

zf-dispatch-lifecycle-bwjpg

Posted in Zend Framework | Tagged | Leave a comment

diseño de aplicaciones para iPhone

Hace poco os hablaba de Things, una aplicación GTD para iPhone. No os voy a negar que el desarrollo de aplicaciones para el iPhone esta entre mis objetivos “Someday”. Para los que os atraiga el tema, aquí os dejo un gráfico bastante descriptivo de como se planificó y diseño la aplicación Things.

thingstouch-papercollage

Puedes ver más información sobre el proceso de diseño completo de esta aplicación aquí

Posted in iPhone | Tagged , , | Leave a comment

Zend_Json_Expr mi primera aportación al Zend Framework

Gracias a la de veces que me ha animado mi amigo Manuel de Ingeniuz, persona que me introdujo a la programación PHP utilizando el Framework de Zend allá por la version 0.15, esta semana me he decidio a aportar mi “granito” de arena a la comunidad y he incluido mi primera “proposal” en el wiki de colaboradores de zend, para que sea debatida y revisada por la comunidad.

De las varias “ideas” que tengo por ahí para compartir, la primera ha sido una pequeña mejora al Zend_Json. El Zend_Json permite convertir un objeto o array PHP a su equivalente javascript-json utilizando su método “encode”. Funciona muy bien, y sin embargo, no es posible o no esta prevista la posibilidad de que se puedan incluir funciones o expresiones nativas javascript en el lado servidor, que sean correctamente traducidas a su equivalente javascript-json.

Me explico. El siguiente código no funcionaría:

$arrayToBeEncoded = array(
'string'=>'cadena de texto to be encoded',
'function'=>functionJavascript(){...codigo de funcion javascript});
Zend_Json::encode($arrayToBeEncoded);

Como es lógico la linea ‘function’=>functionJavascript….. dará un error PHP, ya que debiera ir entrecomillada. Aunque si la entrecomillamos, no será tratada como función al llegar al interprete javascript del navegador, sino como cadena de texto o string (como es lógico).

Mi propuesta viene a tratar de resolver esta necesidad/problema utilizando un sistema parecido al que ya se utiliza con Zend_Db_Expr. Modificando levemente el proceso de encoding del Zend_Json y apoyándonos en la clase propuesta: Zend_Json_Expr, sera posible incluir en el lado servidor expresiones nativas javascript que sean traducidas correctamente a Json-javascript. Para ello el ejemplo anterior se re-escribiría así:

$arrayToBeEncoded = array(
'string'=>'cadena de texto to be encoded',
'function'=>new Zend_Json_Expr('functionJavascript(){...codigo de funcion javascript}');
Zend_Json::encode($arrayToBeEncoded);

Podeis ver más sobre como funcionaría mi propuesta en esta página del wiki de zend framework

Posted in Zend Framework | Tagged | 1 Comment