Creando un producto descargable en Magento

Como ya había comentado (y como ya sabemos los que convivimos a diario con Magento), en la nueva versión de la plataforma contamos con un nuevo y muy esperado tipo de producto: descargable.

Dado que la ansiedad ha sido mucha, les voy a contar mi primera prueba, paso a paso, en el uso de un producto de éste tipo.

Lo primero, será crear un nuevo producto, y simplemente seleccionar el tipo.

Seleccionado producto de tipo descargable en Magento

Ahora pasamos a nuestra tan conocida pantalla de carga de productos, salvo qeu vamos a ver que hay una solapa nueva.

Opciones de carga para los Productos descargables en Magento

Así es, Información de descarga (o como más les guste la traducción) es lo que estamos ansiosos por ver.

Pero seamos ordenados, y vayamos creando nuestro producto con cierto orden, al menos respetando aquellos atributos que son obligatorios para la carga.

En primer lugar, los datos generales.

Datos generales del Producto descargable en Magento

Por supuesto, completo con datos extremadamente ficticios para el ejemplo. Hasta acá todo es como siempre.

Pasemos ahora a las opciones de Precio.

Precio del Producto descargable en Magento

En ésta pantalla también conocemos las opciones, y no cambian los campos obligatorios.

El único detalle es la aparición de un último campo al final del formulario.

Opciones para Google Checkout en los Productos en Magento

Con ésta nueva opción, podemos indicar si el producto estará habilitado para utilizarse con Google Checkout. Cabe aclarar que ésto se aplica no sólo para los productos descargables.

Ahora si, pasamos a las opciones por las cuales nos estábamos babeando como si fuéramos Homero frente a una Duff bien helada.

Opciones de descarga del Producto descargable en Magento

Contamos con dos bloques de opciones, la de Ejemplos/Muestras y la de Links.

Atributos de descarga del Producto descargable en Magento

Para éste primer ejemplo, voy a ingresar los datos mínimos para tener al producto funcionando, así que pasemos al bloque de Links.

Configuración de links del Producto descargable en Magento

Lo que hice fue asignarle un nombre, que será el que más adelante veremos como link de descarga. Le agregamos un precio para el link, el tope de descargas (que funciona por usuario), y el archivo que podrán descargarse.

Una pantalla que no mostré fue la de Stock, pero deberán cargarle alguna cantidad y habilitarlo antes de pasar a la prueba en el frontend.

Suponiendo que la carga quedó resuelta por completo, pasemos a la vista del producto.

Detalle del Producto descargable en Magento

Bien, nuestro producto está funcionando y es posible comprarlo.

Otra vez vemos cosas nuevas. En el caso de los descargables, para poder agregarlo al Carrito, necesitamos elegir que Link (de los que hayamos seteado en el backend) vamos a comprar, y además, la cantidad de este producto.

Selección de opciones del Producto descargable en Magento

Ahora si, agregamos al Carrito y pasamos al Checkout.

Checkout del Producto descargable en Magento

Como ven, además del nombre del producto, vemos el link que hemos decidido comprar.

Todo listo para la compra, vamos a comenzar la última etapa del proceso.

Registración para la compra del Producto descargable en Magento

Acá vamos a notar otro cambio, y se debe al tipo de producto. Cuando compremos un producto descargable, si o si tenemos que registrarnos para hacer la compra, aún cuando hayamos habilitado la compra como invitado.

Hacemos todo el proceso de registración, seleccionamos medio de pago y vamos a llegar a la pantalla de confirmación de la compra.

Confirmación de compra del Producto descargable en Magento

En el mensaje aparece un link para que vayamos a la página de “Mis productos descargables”. (Ahora toma sentido el hecho de tener que estar registrados).

Como usuarios obedientes que somos, seguimos el link.

Descargando un Producto descargable en Magento

Al fin llegamos a la descarga de nuestro producto. Desde ésta sección, vamos a poder ver todos los productos descargables que hayamos adquirido, la referencia a la orden a la que pertenece y la cantidad de descargas que aún tenemos habilitadas.

Por supuesto, luego de hacer mi primer descarga, la pantalla pasó a mostrarme la siguiente información.

Descargas pendientes de un Producto descargable en Magento

Y con esto doy por cerrada la primera aproximación a los tan esperados productos descargables.

Ahora se abren muchísimas posibilidades para la venta productos digitales, lo cual ha de traducirse en mucho más trabajo.

;-)

Tweet about this on TwitterShare on Google+Email this to someoneShare on FacebookShare on LinkedIn

22 pensamientos en “Creando un producto descargable en Magento

  1. doctorlogos

    Hola Damián,

    Me preguntaba si se puede usar esta nueva característica para adjuntar a cada producto un “PDF informativo”, para que el usuario pueda descargárselo.

    Saludos y feliz 2009!

  2. Damián Autor

    ¿Cuando decís a cada producto, a qué tipo de producto te referís?.
    ¡Feliz 2009 para vos también!.

  3. daniel

    Esta posibilidad da problemas si tienes instalado el magento en local. Es que me dice que el link no esta disponible.

  4. Damián Autor

    @Daniel

    ¿Con lo de ésta posibilidad te referís a lo de los productos descargables?.
    ¿Cómo configuraste el entorno local, usando localhost como dominio?.
    (Me tomé la libertad de quitar tu mail del comentario para evitarte la molestia del spam).

  5. jose

    Es posible cambiar el tipo de producto??, es decir, los productos de tipo “simple product” cambiarlos a descargables

    Gracias

  6. Damián Autor

    @jose

    No hice la prueba de convertir entre ese tipo de productos, pero, por ejemplo, de simple a virtual no hay mayores poblemas.
    Este cambio no puede hacerse desde el backend, por lo cual necesitás meterte en la base de datos en la tabla catalog_product_entity, en la columna type_id.

  7. Nino Colman

    Hola Damian, otra vez por acá buscando la misma info, tienes alguna respuesta de la pregunta que hizo doctorlogos? alguien lo ha podido solucionar?

  8. Damián Autor

    @Nino

    En realidad, podrias utilizar el “ejemplo” para eso, pero al ser un producto descargable, no tendria método de envio. Desconozco qué tipo de productos querés probar.

  9. Alexander Moreno

    Seria posible en este tipo de producto crear lo siguiente:

    – Digamos que tengo un producto generico por ejemplo un antivirus: el cual tienen diferentes numeros de licencias para cada venta, como pudiera yo cargar las diferentes licencias y que sea entregada una diferente por cada venta, trate de colocar renglones pero veo que no es por alli como se debe hacer.

    De antemano muchisimas gracias si pudieras ayudarme.

  10. Damián Autor

    @Alexander

    Por defecto no podrías aplicarlo. Para Magento cada producto es un SKU (más allás que hablemos de productos simples, confgiurables, etc). En tu caso, si no me equivoco, vos tendrías un único SKU para el cual un atributo (código de licencia), se iría enviando al comprador ese valor de atributo y debería descontarse de una lista precargada de valores posibles.
    Si lo pensamos como planteaste, como un producto descargable, también tenés la limitante propuesta por Magento, ya que aquello que se entrega mediante los descargables, es cargado primero en el backend.
    Personalmente no he hecho ésta customización, pero creo que deberías meterme con un nuevo tipo de producto (una copia del descargable) y agregarle la lógica faltante. Es decir, que tome ese código de licencia de un set precargado y lo vaya descontando una vez que se entrega.
    No recuerdo en éste momento alguna implementación del mismo tipo como para darte más tips.
    Saludos.

  11. Oriol Mendívil

    Hola Damián, ahora hasta en tu página te ando molestando xD jeje, estoy aplicando productos descargables en la tienda en linea que estoy haciendo pero así como el ejmplo que pusiste del precio en $10 luego el precio y el valor del producto se sume es lo que me pasa… Pero lo que yo quiero hacer es que al seleccionar el producto no me lo sume sino que lo reemplace por los productos que voy seleccionando, existe algún add-on o modulo que solucione este problema o de plano le tengo que poner el valor en $0.00???

    Espero que si sea posible hacer esto que estoy buscando, de antemano muchisimas gracias!

    El ejemplo esta en mi tienda: http://www.vastagousa.net

  12. Damián Autor

    @Oriol

    No estoy seguro si entiendo la idea.
    ¿Vos querés que al agregar un producto descargable incremente precio solamente cuando se selecciona una opción del producto?. En tu caso, sería al seleccionar un album, sólo incrementa valor por canción, ¿a eso te referís?.

    Saludos.

  13. Oriol

    @Damián

    Si, eso es en si, que cuando seleccionen un producto de descarga y los envíe al apartado de este (al producto) se sustituya el valor por el que se va sumando por decir, un ejemplo.

    1. el producto vale US$9.99 y en el catalogo se muestra de esa manera, cuando hacen clic en “agregar al carrito” y los envía al apartado del producto donde seleccionan las opciones o tracks o lo que sea, me suma $9.99 + $0.99 (el valor de la canción)…

    2. entonces bien, lo que quiero es que cuando agreguen los diferentes tracks de descarga o bien un solo artículo, el valor de $9.99 desaparezca y solo aparezca la suma de los artículo(s) seleccionados.

    No se si me explique muy bien, pero en si eso es lo que quiero hacer, solo que no se donde encontrar la variable de precio, o si tengo que inventarme una variable especial para los productos descargables, y de ser así como integrarla a Magento =S

  14. Damián Autor

    @Oriol

    No recuerdo en éste momento alguna extensión que haga eso.
    Lo siguiente es un pensamiento en voz alta: ¿qué pasa si con un poco de JS hacés que, teniendo en cuenta como tenés el catálogo, por defecto el precio del producto sea 0, pero cuadno ingresás, la opción preseleccionada es la del disco completo. Luego (acá entra en juego el JS) hacés que si clickea en en un track desmarca la opción de album completo y si marca en la opción del disco completo, desmarca los tracks.
    ¿Funcionalmente esto no resolvería tu problema?.

  15. Oriol

    creo que si, en ese aspecto, ahora el problema sería hacer que el precio lo agarrara del archivo que contiene el disco completo… alguna sugerencia de como hacer que esto suceda o exactamente donde se encuentra la variable de “price” para ser modificada? de antemano muchas gracias por la ayuda ;)

  16. Damián Autor

    @Oriol

    No estoy seguro de algunas cuestiones que debería revisar para ver si no son más sencillas pero, ¿y si lograras dejar ese valor como default y el resto como no seleccionado?.
    Insisto, no recuerod de memoria la lógica en el frontend para los descargables, pero si el producto vale 0, cada opción tiene su precio, y con JS hacés que la selección de uno deseleccione los otros… estás también a un paso de manejar la preselección de un valor por defecto. ¿No?.

  17. Alexander Moreno

    Por ahora algo que vi que me puede ayudar a implementar es usar el hash que genera la compra al momento de asociarlo a un producto descargable.

    Todas las compras tienen un hash distinto asi sea el mismo producto(s)

    Por lo que tome ese hash a traves de javascript y con una consulta AJAX le pregunto a un subsistema que me envie la licencia asociada a esa compra, si no existe que le entregue una.

    Claro el único detalle es que esto es un subsistema creado por mi, debo estudiar un poco para ver como se aplicaria dentro de magento, con sinceridad no conozco mucho el core de Magento.

  18. Damián Autor

    @Alexander

    No creo que debas pelearte con el hash. Es decir, tendrías que llevar una tabla de licencias, y auquellas que han sido entregadas, vinculadas a un ID de producto (o SKU) y a un ID de cliente. El hash que se usa para agregar al carrito me parece algo anecdótico en éste caso.
    ¿Y si ese proceso (el de traer la licencia) lo hacés en el momento en que por primera vez descargan el software?. Vos podés saber cuántas veces fue descargado un archivo, entonces mientras esté en 0 el contador no pasa nada. Cuando al cantidad asciende a 1 ejecutás ahí tu proceso para obtener la licencia y agregarsela al cliente o enviársela por mail o algún otro tipo de implementación a pensar.
    ¿Sirve esa idea?.

  19. Alexander Moreno

    A ver te explico un poco mejor el proceso, a ver si me das un poco de luz y no tomo la vía extrema.

    Imagínate que compras un juego, ese juego es igual para todo el mundo y cada quien baja el cliente desde el fabricante, así que no me preocupo, pero lo que el cliente me compra en realidad a mi es el CDKEY o la licencia.

    Por lo que si creo un producto descargable mi intención era tener un stock de CDKEY y que cada usuario pudiera ver su CDKEY en sus productos descargable cada llave es distinta para cada cliente.

    Entonces encontré que lo único para cada usuario es ese hash de la descarga y si hacen varias compras son varias hash.

    Termine dándome cuenta que ese downloader es como un proxy para ver lo que estas descargando que puede ser un fichero o un URL, lo que hice fue apuntar a un URL y obtener ese hash a través de Javascript, ya que el valor no pasa a través de las variables del sistema.

  20. Damián Autor

    @Alexander

    Entiendo lo de la diferencia de usar el id y el hash. Entiendo también la lógica que planteás.
    Me hace algo de ruido que estés resolviendo esa lógica con JS.
    Entiendo por lo que decís, que desde tu store no se estaría descargando nada, ¿es verdad?.
    Sólo se compra una licencia. ¿Es ese el approach?.

  21. Alexander Moreno

    Exacto no es un ID de un producto, si no una imagen de una licencia, lo que se me ocurrió leyendo un poco lo que me dijiste es buscar la manera que en el momento que se hace la compra pudiera yo agregar un fichero descargable, lo que no se es como me afecte a las futuras descargas.

    A mi tampoco me gusta mucho la idea de usar JS. pero no consigo otro elemento único que me identifique y desde PHP no puedo obtener acceso al hash.

  22. Damián Autor

    @Alexander

    Yo creo que eso es viable. Es decir, he hecho customizaciones en donde al momento de la confirmación de la orden se disparaban ciertos eventos.
    Creo que entonces podrías ir por ese lado y asociarle a la orden, ya sea como comentario y otra figura a probar, el código único de licencia.
    Saludos.

Los comentarios están cerrados.