Ir directamente al contenido

Ajustes de cookies

Elija por tipo qué cookies permite. Puede cambiar su elección en cualquier momento en Ajustes de cookies, al pie de cada página. Declaración de privacidad

Necesarias

Siempre activadas

Necesarias para iniciar sesión, conservar su carrito y recordar sus preferencias. Siempre están activadas.

¿Qué cookies?
  • weboke_sessie, weboke_klant, weboke_remember: su sesión y mantener la sesión iniciada
  • weboke_basket: su carrito
  • wkBtwIncl: mostrar los precios con o sin IVA
  • wok_cookies: su elección de cookies, 12 meses

Mide qué anuncio lleva a una visita o a un pedido, para no pagar por anuncios que no sirven de nada.

¿Qué cookies?
  • Google Ads a través de Google Tag Manager (_gcl_au, _gcl_aw), hasta 90 días
  • OpenAI Ads, anuncios en ChatGPT
  • wok_aff: a través de qué socio llegó a nosotros (programa de afiliados), 60 días

4,6

País e idioma

Cada país tiene su propio sitio, con los precios y el IVA de ese país.

Ver

Módulo 3 · 3.3

Productos digitales y virtuales

Módulo 3: Productos · Tiempo de lectura: 11 minutos

Objetivo de aprendizaje: Tras esta lección podrá vender productos digitales y virtuales de forma segura: elegirá un método de descarga seguro, protegerá la carpeta de descargas, establecerá límites y gestionará correctamente el derecho de desistimiento en los contenidos digitales.

Conceptos clave: producto virtual, producto descargable, enlace de descarga, límite de descargas, caducidad, método de descarga (Forzar descargas, X-Accel-Redirect / X-Sendfile, Solo redirección), woocommerce_uploads, .htaccess, nginx, directorios de descarga aprobados (Approved download directories), acceso tras el pago, contenido digital, consentimiento expreso, renuncia al derecho de desistimiento

Virtual y descargable: dos casillas distintas

En un producto simple o en una variación verá dos casillas. Se parecen, pero hacen cosas diferentes:

  • Virtual (Virtual) significa: no se envía nada. WooCommerce no cobra gastos de envío y no pide dirección de envío al finalizar la compra (si todo lo que hay en el carrito es virtual). Piense en una cata de té presencial, una tarjeta regalo que envía por correo electrónico o un taller en línea.
  • Descargable (Downloadable) significa: tras el pago, el cliente recibe uno o varios archivos. WooCommerce crea un enlace de descarga por cliente y lo muestra en el correo de confirmación y en Mi cuenta > Descargas.

Un libro de recetas digital en pdf suele ser ambas cosas: no se envía nada por correo postal y hay un archivo. Un libro de recetas impreso con un pdf gratuito es descargable pero no virtual: el libro sí se envía por correo postal.

Theehuis Example vende el "Receptenboek Thee en Taart" (libro de recetas de té y tartas) en pdf por € 9,95. Casillas: virtual y descargable.

Cómo funciona una descarga y por qué importa el método

Si sube un archivo a un producto descargable, WooCommerce lo guarda en la carpeta wp-content/uploads/woocommerce_uploads/. Por defecto añade una cadena aleatoria de caracteres al nombre del archivo (ajuste "Append a unique string to filename for security", activado por defecto). El cliente nunca recibe esa dirección, sino un enlace a su tienda con una clave de pedido y un código de descarga. En cada clic, WooCommerce comprueba: ¿pertenece esta descarga a un pedido pagado, no se ha agotado el límite, no ha caducado? Solo entonces el cliente recibe el archivo.

Cómo llega después el archivo al cliente lo elige en WooCommerce > Ajustes > Productos > Productos descargables, en el método de descarga (File download method):

MétodoCómo funcionaSeguridad
Forzar descargas (Force downloads, por defecto)PHP lee el archivo y lo envía él mismoLa dirección real permanece oculta. Los archivos grandes pueden atascarse en algunos servidores o chocar con el límite de tiempo de PHP
X-Accel-Redirect / X-SendfilePHP comprueba, el servidor web envía el archivoIgual de seguro y mejor para archivos grandes; el servidor web debe admitirlo (en Apache se necesita el módulo mod_xsendfile, nginx admite X-Accel-Redirect). Consulte a su proveedor de alojamiento
Solo redirección (Redirect only)WooCommerce redirige al cliente a la dirección real del archivoInseguro: quien tenga la dirección puede compartirla y el archivo se puede obtener sin comprarlo. El propio WooCommerce lo califica de "Insecure"

Elija por tanto Forzar descargas o X-Sendfile. La redirección es solo una solución de emergencia, y el ajuste "Allow using redirect mode (insecure) as a last resort" hace que WooCommerce recurra a la redirección si el otro método falla; déjelo desactivado salvo que sepa por qué lo necesita.

Proteger la carpeta

Con Forzar descargas o X-Sendfile, la carpeta woocommerce_uploads debe estar cerrada a los visitantes normales. De lo contrario, alguien que adivine el nombre del archivo o lo saque de un enlace filtrado podría descargar el archivo directamente. Por eso WooCommerce coloca dos archivos en esa carpeta durante la instalación:

  • un index.html vacío, para que la carpeta no muestre una lista de archivos;
  • un .htaccess con deny from all (con el método Solo redirección: Options -Indexes).

Ese archivo .htaccess funciona en Apache y LiteSpeed (como en WebOké y en muchos otros alojamientos compartidos). En nginx, el servidor web no lee .htaccess. Allí debe haber una regla en la configuración del servidor que bloquee la carpeta. En un alojamiento nginx gestionado, a veces se encarga el proveedor; en un VPS propio debe hacerlo usted. WooCommerce lo comprueba por sí mismo y muestra un aviso en la administración (y en Salud del sitio) si la carpeta no parece protegida.

Algunos puntos a tener en cuenta:

  • Un 200 vacío no es una prueba. Si solicita la carpeta y ve una página en blanco, puede ser el index.html vacío mientras los propios archivos siguen accesibles. Por eso, pruebe también un archivo (el ejercicio lo hace).
  • Archivos externos. En un producto también puede indicar un enlace a un archivo situado en otro lugar. Para ello WooCommerce tiene la lista de directorios de descarga aprobados (Approved download directories): solo los archivos de esas carpetas o de esas direcciones pueden usarse como descarga. Así nadie con permisos de administración sobre un producto puede ofrecer como descarga, por error o a propósito, cualquier archivo del servidor. Mantenga esa lista corta.
  • Copias de seguridad y staging. La carpeta se incluye en su copia de seguridad. En un entorno de staging también están, por tanto, sus archivos de pago: proteja el staging (lección 7.3).

Límites y acceso

Para cada producto descargable o cada variación puede configurar:

  • Límite de descargas (Download limit): cuántas veces puede descargar el cliente. Vacío significa ilimitado. Un límite de, por ejemplo, 5 limita que se comparta, pero genera quejas cuando alguien se compra un portátil nuevo. Elija algo razonable y ayude a los clientes que lo pidan.
  • Caducidad de la descarga (Download expiry): tras cuántos días deja de funcionar el enlace.

Ajustes generales en Productos descargables:

  • Las descargas requieren iniciar sesión (Downloads require login), desactivado por defecto. Activado significa que los invitados no pueden descargar nada; actívelo solo si también exige cuentas de cliente.
  • Acceso tras el pago (Grant access to downloadable products after payment), activado por defecto: el cliente puede descargar en cuanto el pedido tiene el estado Procesando, es decir, justo después de un pago correcto. Si está desactivado, solo a partir de Completado.

Desistir en contenidos digitales

Con una tetera normal, el cliente tiene 14 días para pensárselo (lección 5.2). Con una descarga es complicado: quien tiene el pdf, lo tiene, también después de desistir. Por eso existe una excepción, pero solo con condiciones. En la UE figura en el artículo 16 de la Directiva 2011/83/UE; en los Países Bajos, en el artículo 6:230p, letra g, del Código Civil neerlandés (BW). No hay derecho de desistimiento en el contenido digital que no se suministra en un soporte material si:

  1. el suministro ha comenzado con el consentimiento expreso previo del consumidor;
  2. el consumidor ha declarado que con ello renuncia a su derecho de desistimiento; y
  3. usted ha facilitado una confirmación de ello (en la confirmación del contrato, en un soporte duradero como el correo del pedido).

Si falta cualquiera de las tres, el cliente conserva su derecho de desistimiento, aunque ya haya descargado. En Bélgica y Alemania rige la misma norma de la UE en su propia legislación (véase la lección 5.2). En España, la misma norma de la UE se recoge en el Texto refundido de la Ley General para la Defensa de los Consumidores y Usuarios (TRLGDCU).

WooCommerce no lo gestiona automáticamente. Necesita:

  • una casilla obligatoria al finalizar la compra, solo cuando haya contenido digital en el carrito, con un texto como "Acepto que el suministro comience de inmediato y sé que con ello pierdo mi derecho de desistimiento";
  • el mismo texto como confirmación en el correo del pedido para esos productos;
  • la frase adecuada en su información sobre el desistimiento indicando que esto se aplica a las descargas.

Hay extensiones que añaden una casilla así; el bloque de finalizar compra también ofrece opciones para campos adicionales. Evalúelas como cualquier plugin. Una casilla que viene marcada de antemano no cuenta como consentimiento expreso (lección 5.4).

Tenga en cuenta la diferencia con los servicios virtuales, como un taller en una fecha concreta. Ahí se aplican las normas de los servicios, con otras excepciones. Lea la lección 5.2.

Resumen

  • Virtual = no se envía nada; descargable = archivos tras el pago. Un pdf suele ser ambas cosas.
  • Elija Forzar descargas o X-Accel-Redirect / X-Sendfile; Solo redirección es inseguro.
  • La carpeta woocommerce_uploads debe estar cerrada: .htaccess en Apache y LiteSpeed, una regla del servidor en nginx. Pruebe un archivo real, no solo la carpeta.
  • Mantenga corta la lista de directorios de descarga aprobados y establezca límites razonables.
  • Sin derecho de desistimiento en las descargas solo con consentimiento expreso, renuncia al derecho y una confirmación; WooCommerce no lo hace automáticamente. En España, esta norma figura en el TRLGDCU.

Cuestionario

1. Theehuis Example vende un libro de recetas impreso con un pdf gratuito. ¿Qué casillas activa?



2. ¿Por qué es inseguro el método de descarga "Solo redirección"?



3. Su tienda funciona con nginx. ¿Basta entonces el archivo .htaccess de WooCommerce en woocommerce_uploads?



4. Un cliente compra un pdf, lo descarga de inmediato y desiste dos días después. Al finalizar la compra no había ninguna casilla sobre la pérdida del derecho de desistimiento. ¿Qué se aplica?



5. ¿Para qué sirve la lista de "directorios de descarga aprobados"?



Ejercicio

Ejercicio A3.3: ¿Están protegidas sus descargas? Este ejercicio solicita rutas que no están enlazadas y, por eso, solo funciona con su propia tienda. Primero demuestra que el dominio es suyo: crea un registro TXT _weboke-cursus.<su dominio> con el código que recibe, o coloca un archivo /.well-known/weboke-cursus-<code>.txt con ese código dentro. Después introduzca la dirección de su tienda y, si lo desea, la ruta de un archivo descargable tal como WooCommerce la muestra en el producto (empieza por /wp-content/uploads/woocommerce_uploads/). El programa solicita la carpeta (sin seguir redirecciones, solo el principio) y, si introdujo una ruta, una sola vez las cabeceras de ese archivo. Verde si la carpeta devuelve 401, 403 o 404, o una página sin lista de archivos, y el archivo devuelve 401, 403 o 404. Naranja si no introdujo ningún archivo: entonces solo se ha comprobado la carpeta, y una página en blanco no dice lo suficiente. Rojo si la carpeta muestra una lista de archivos, o si el archivo se puede descargar sin más (200): en ese caso cualquiera con la dirección puede obtenerlo sin comprarlo. El programa solo guarda los códigos de estado, nunca el archivo.

Pregunta para usted (no se corrige): ¿qué método de descarga está configurado en su tienda y cómo ha resuelto el desistimiento en sus productos digitales?

Ejercicio A3.3: ¿Están protegidas sus descargas?

Esta comprobación consulta rutas que solo se revisan en su propia tienda. Haga clic primero en "Mostrar mi código" y añada ese código como registro TXT en _weboke-cursus.<su dominio> o como archivo en su sitio (consulte la explicación junto al código).



No guardamos lo que escriba ni lo que encontremos. Su navegador recuerda sus respuestas y si ha superado el ejercicio. Si ha iniciado sesión, en Mis cursos solo guardamos que el ejercicio estaba (casi) correcto; allí también puede eliminarlo.

Para saber más

La base de conocimientos describe la situación en WebOké (LiteSpeed, .htaccess funciona); con otros proveedores funciona de forma similar, salvo en nginx.

Un momento…

Configure sus dominios

Configure para cada dominio los servidores de nombres, la vinculación a su hosting y quién será el titular.

Cargando sus dominios…