Please specify product option(s) al añadir bundle desde el listado de productos en Magento

Ya estoy terminando mi primera tienda online propia. En ella, para controlar el stock, tengo una serie de packs compuestos por bundles con simples relacionados. Al hacer pruebas de inclusión de los productos en el carrito desde el listado de productos me encuentro con el siguiente problema en Magento v 1.7.0.0.

Tengo una categoría en la que todos los productos son paquetes de productos (bundle), los productos asociados a estos son simples, introducidos como diferentes opciones checkbox en una opción del paquete de artículos, marcados por defecto y la opción configurada como Se requiere = NO. Algo así:

El problema viene al intentar añadir el producto al carrito desde el listado. Al darle al botón, en vez de añadirlo al carrito el sistema te lleva directamente a la ficha de producto mostrando el siguiente error:

Please specify product option(s)

y te deja en la ficha de producto con ese mensaje. Lo bueno es que desde la propia ficha de producto y sin tocar nada, le damos al botón de añadir el producto al carrito y funciona perfectamente.

Lo que yo quiero es, ya que las opciones no son obligatorias que vaya directamente al carrito sin pasar por la ficha de producto. Para ello he hecho un pequeño cambio en el botón del listado de productos.

En el template del listado, archivo /app/design/frontend/default/nombre-de-tema/template/catalog/product/list.phtml haremos el siguiente cambio (no especifico línea porque según qué plantilla estéis utilizando será una u otra):

Donde pone:

ponemos esto otro:

Con esto lo que hacemos es utilizar un formulario para productos tipo bundle y para el resto de productos (simples, configurables, etc..) el botón que viene por defecto. Lo que hacemos en el caso de que el tipo de producto sea bundle es hacer un bucle por todas las opciones y ponerlas como ocultas en un formulario, con otro campo oculto para poner la cantidad por defecto de cada opción simple. A la vez controlamos el stock de cada una de las opciones y si no hay stock de alguna de ellas no  El botón enviará ese nuevo formulario sin tener que pasar por la ficha de producto.

Código sacado de aquí, pero me costó encontrarlo un montón así que por eso esta entrada: http://stackoverflow.com/questions/5911738/add-bundle-product-to-cart-without-having-to-specify-the-options/13663949#13663949

Off Topic: Con esta entrada vuelvo a retomar mi blog. A ver si publico un sinfín de entradas relacionadas con Magento que he ido acumulando durante más de un año trabajando en Kuombo.

Cambiar posición del símbolo euro en Magento

Hoy me ha llegado una nueva tarea de un cliente. Como cliente español que es quería el símbolo del euro de los precios detrás del importe, es decir que pusiera esto 190,00 € en lugar de € 190,00 como están acostumbrados los angloparlantes.

Me ha llevado un buen rato encontrar como se hacía ya que yo tengo la sana (por lo menos la mayoría de las veces) costumbre de buscar las cosas en inglés. Al ser algo específico del idioma castellano pues hasta que se me ha ocurrido buscar en castellano pues he perdido un ratico. En fin, he buscado en castellano y he encontrado este post de los foros de magento donde indica como cambiar la posición del símbolo euro.

Resumiendo, lo que hay que hacer es cambiar en el archivo es.xml situado en lib/Zend/Locale/Data el currencyFormat:

por esto otro…

Y atención porque aquí viene lo importante. No lo avisa en el post explícitamente pero yo lo acabo de comprobar. Resulta que el cambio no es inmediato, da igual que refresques la caché, que la deshabilites, que te borres las cookies o la caché del navegador. Lo importante aquí es la paciencia, porque al cabo de un rato cambia solo!!!!

Increíble pero cierto, se ve que ese valor debe estar asociado a la sesión de la aplicación o algo así y hasta que no pasa un buen rato no se reflejan los cambios (supongo que en ese rato nadie debe utilizar la página o el timeout para expire no llegará nunca).

En mi caso ha tardado una hora o así ya que la web no está abierta al público todavía, así es que lo dicho, paciencia.

Otra cosa más al saco de Magento…

Prestashop

Hace tiempo estuve tentado de instalar Prestashop para un cliente, pero las prisas (siempre malas consejeras) y las necesidades de este me llevaron a crear una tienda basada en PS pero un tanto modificada.

Ahora un nuevo potencial cliente si que se adecúa mucho más a una instalación completa de este software, así que empecé hace nada a instalarlo en mi servidor local y ver que tal funcionaba, desechando antes soluciones como Magento, ya que primero la instalación me llevaba loco y segundo y más importante la instalación no funcionaba para PHP 5.3. Había formas para saltarse estas restricciones cambiando código para que el sistema dejara instalar (sobre todo había problemas con las funciones split o explode, no recuerdo). El caso es que Magento te deja un mal sabor de boca si nada más empezar tienes que ponerte a cambiar código.

Trasteando con el backEnd de PS me he encontrado con un problema que buscando por internet he logrado solucionar. Resulta que simplemente instalando el software, si accedía a la sección de administración de los módulos me salía el siguiente error:

Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 107 bytes) in xxxModule.php on line 440

Que sorpresa que nada más instalar el software ya te salga un error de este calibre. Está claro que para cargar la sección de módulos hace falta una memoria bastante grande así es que buscando por internet encontré la solución en este post donde se soluciona la incapacidad de administrar los módulos en prestashop.

Lo que hay que hacer es poner una línea de código en el fichero de configuración de tu instalación (normalmente /config/config.inc.php) donde se le indica al sistema que no tiene límites en la reserva de memoria:

@ini_set('memory_limit','-1');

Esto también me pasaba al intentar administrar las formas de pago, pero con la línea de arriba parece que todo queda solucionado.

Un par de enlaces útiles que he encontrado para la instalación, configuración y diseño de Prestashop son estos:

Todo Prestashop
Prestashop user guides
Temas gratuitos para Prestashop por 2link

Página oficial de Prestashop