Category: notas
8 razones porque no aparecen los productos
Cuando creamos un producto en magento, muchas veces no aparece en el catálogo cuando pensamos que sí deberia aparecer. Esto se debe a la gran capacidad que nos provee magento para gestionar nuestros productos: hay varios atributos que hacen que un producto sea visible en el catálogo o no. Puede ser desesperante averiguar cual es el (o los) que hace(n) que no aparece tal producto.
Para ayudarnos a determinar que es lo que falla, Joe de Mastering Magento ha recopilado 8 (bueno, 8 y media) razones que hacen que los productos sean visibles o no. Aqui van en castellano.
- en la pestaña General, Status tiene que estar a "Habilitado"
- en esta misma pestaña, Visibility tiene que estar "Catálogo, Búsqueda" o "Catálogo"
- pestaña Inventario, aquí empiezan las sutilidades:
- si permitimos los Pedidos de artículos agotados, da igual, podemos dejar 0 en el campo Cantidad
- si no estan permitidos, el número que hay que poner tiene que ser mayor que el número que hemos indicado como "Mínima cantidad permitida en el carrito de compras"
- cabe resaltar que incluso si se ha seleccionado "No" en el desplegable de Manage Stock hay que indicar un stock más alto que la cantidad mínima en el carrito
- todavía en la pestaña Inventario, el campo Disponibilidad en existencia tiene que estar a "En existencia"
- en la pestaña Categorías, el producto tiene que pertenecer a por lo menos una categoría activa
- si hay varios Websites, hay que indicar a cual pertenece el producto. Esto no hace que el producto sea visible o no directamente, pero si no esta indicado problemas podrian ocurrir a la hora de hacer ex/importaciones
- para los productos de tipo "bundle" y "agrupados" aseguraros de que todos los productos que los constituyen son visible, que pasan esta lista.
- indexes y el cache: si todos estos puntos estan correctos, intentar el cache y los indexes
Además de preparar esta lista, Joe ha preparado una extensión que comprueba estos puntos. Despues de comprarla (4.99$) recibimos un fichero zip. Lo descomprimos y subimos los ficheros siguiendo la estructura en que vienen. Flusheamos (vaciamos) los caches, logout-login del admin y ahora cuando editamos un producto vemos una nueva pestaña, la última:
A mi me parece una extensión muy interesante que instalar en las tiendas de nuestros clientes, así seguro que nos ahorramos unas cuantas llamadas de: "lo hago todo bien pero el producto no aparece".
evento change de un desplegable con jQuery en IE
una pequeña nota para quitar un poco el polvo e iniciar una nueva fase en la vida de este blog.
Estas 3 ultimas semanas me lo he pasado pipa reuniendo los pasos del checkout de una tienda OSCommerce en uno solo, a ver si algún dia me animo a preparar una contribución...
Como siempre cuando desarollo, lo hago con firefox y al final abro el putoIE a ver que le parece. El hecho de usar jQuery facilita mucho, muchissimo este proceso.
Me he encontrado con un problema hoy, y es que aparentemente hay un bug (o es que es un feature...) en la versión 1.4.2 de jQuery que hace que putoIE no entiende el evento .change().
Por lo cual, en vez de tener un código que se entiende perfectamente, así:
tengo que hacerlo así:
Vale, se entiende también bastante bien, pero realmente lo que me interesa es cuando se cambia el desplegable, no cuando le clickeo. Además, para debugearlo en putoIE le pongo un alert, pero claro, entonces no me deja seleccionar un valor de la lista ya que al hacer clic me salta el alert y no puedo hacer nada más
Enfín, nada grave, pero como he tenido que buscar esta info varias veces he pensado que estaría bien tenerla a mano, y también que estaba buscando un tema para volver a escribir algo.
slideshow en la home
Viendo esta tienda, he decidido hacerme mi propio slideshow.
En el foro americano he encontrado este hilo donde el trabajo ya estaba casi todo hecho, solo he cambiado la disposición de las divs, colocandolas encima una de otras gracias a la propiedad css z-index, y he añadido una pequeña función para que el slideshow se pare cuando el ratón pasa encima.
Gracias a script.aculo.us (que viene ya instalado con Magento) es realmente muy facil conseguir unos efectos muy chulos.
Entonces, para tener un slideshow en la home, primero vamos a crear un bloque estático: CMS->Bloques Estáticos->Agregar un nuevo bloque. Le damos un nombre y un identificador, lo habilitamos y en el campo Contenido de la pestaña Información general añadimos un poco de JavaScript:
<script type="text/javascript">start_slideshow(1, 3, 3000);
function start_slideshow(start_frame, end_frame, delay) {
id = setTimeout(switch_slides(start_frame,start_frame,end_frame, delay), delay);
}
function switch_slides(frame, start_frame, end_frame, delay) {
return (function() {
Effect.Fade('slide' + frame, { duration: 1.0 });
if (frame == end_frame) { frame = start_frame; } else { frame = frame + 1; }
Effect.Appear('slide' + frame, { duration: 1.0 });
if (delay == 1000) { delay = 3000; }
id = setTimeout(switch_slides(frame, start_frame, end_frame, delay), delay);
})
}
function stop_slideshow() {
clearTimeout(id);
}
</script>
y el contenido html con las divs y sus imagenes linkeadas:
<div id="introhomepage" style="height: 230px; position: relative;" onmouseover="stop_slideshow()" onmouseout="start_slideshow(1, 3, 1000)">
<div id="slide1" class="slide" style="position: absolute; top: 0pt; left: 0pt; display: block; z-index: 3; opacity: 1;"><a href='http://www.yourdomain.com/path/to/webpage1.html'><img border='0' src='{{skin url='path/to/image.jpg'}}' /></a></div>
<div id="slide2" class="slide" style="position: absolute; top: 0pt; left: 0pt; display: none; z-index: 2; opacity: 0;"><a href='http://www.yourdomain.com/path/to/webpage2.html'><img border='0' src='{{skin url='path/to/image.jpg'}}' /></a></div>
<div id="slide3" class="slide"style="position: absolute; top: 0pt; left: 0pt; display: none; z-index: 1; opacity: 0;"><a href='http://www.yourdomain.com/path/to/webpage3.html'><img border='0' src='{{skin url='path/to/image.jpg'}}' /></a></div>
</div>
Ahora solo queda incluir este bloque donde queramos, en este caso la homepage, vamos a editarla: CMS->Gestionar las páginas->HomePage y en el campo Contenido de la pestaña Información general añadimos:
{{block type="cms/block" block_id="el_identificador" template="cms/content.phtml"}} Esta claro que hay que adaptar los enlaces y las rutas a las imagenes (estas imagenes tienen que estar en /skin/frontend/default/tutema/images/).
envio gratis por algunos productos
A raiz de este post me ha recordado que tengo que preparar algo así para mi tienda: algunos productos se pueden enviar sin gastos, a través de correos de España, sin certificado. Esta opción tiene que estar disponible unicamente si todos los productos presentes en la cesta disponen de esta opción.
La idea global es crear un atributo Envío gratis para los articulos y despues crear una regla de precios del carrito que ofrezca la opción de envío gratuito si todos los articulos comprados pueden enviarse con esta modalidad.
- Vamos a Catálogo->Atributos->Gestionar los atributos y le damos a Agregar un nuevo atributo y rellenamos la información:
Pestaña Propiedades:Propiedades del atributo
- Código del atributo: envio_gratis_correo
- Alcance: Global
- Tipo de entrada del catálogo...: Desplegable
- Valor único: No
- Valores requeridos: Sí
- Validación de entrada...: Ninguno
- Aplicar a: Todos los tipos de productos
- Usar para crear un productos configurable: Sí
plugin: WYSIWYG en el admin
Fontis acaba de publicar una extension para tener FCKeditor o TinyMCE en los campos de textos del admin.
Para instalarla, el código es:esta estable.
Para configurarla, vamos a Sistema->Configuración->(Avanzado)Admin y en la ultima pestaña, hay 2 desplegables para elegir cual de los 2 editores preferimos y en cuales textareas lo queremos.
Un plugin muy interesante para el TinyMCE es el Ajax File and Image Manager de www.phpletter.com que permite subir imagenes directamente desde nuestro ordenador. Descargamos la ultima versión (1.0 RC 4, de momento), la descomprimos y copiamos el directorio ajaxfilemanager (con su contenido) en /js/fontis/tiny_mce/plugins. Abrimos el archivo /js/fontis/tiny_mce/plugins/ajaxfilemanager/inc/config.base.php y editamos la ruta del directorio donde vamos a guardar las imagenes que se subiran a traves de este plugin. Por defecto viene:../../uploaded/.
Para Magento, para que las imagenes se guarden en el directorio media, cambiamos las lineas 43-44 de a
En este mismo fichero hay que modificar tambien, en la linea 112, reemplazar default por tinymce3.
Ahora tenemos que incluir este plugin en la declaracion del tinyMCE. Abrimos el archivo app/design/adminhtml/default/default/template/fontis/wysiwyg/wysiwyg.phtml y añadimos en la función tinyMCE.init la linea file_browser_callback : "ajaxfilemanager" y despues esta función. Al final, el fichero queda así:
:: Next >>