Manual de usuario · versión 1.3.1 · complementos local_tiendacursos y block_tiendacursos
(Moodle 4.5 LTS y 5.x).
La tienda permite vender los cursos del aula directamente en Moodle: el visitante elige un curso, paga con Webpay/Khipu/Mach (Flow), Mercado Pago o transferencia, y recibe por correo su usuario y una contraseña temporal. No necesita tener cuenta antes de comprar. Una empresa puede inscribir a varios trabajadores en un solo pago, con descuento por cantidad.
local_tiendacursos-1.2.0.zip y luego (opcional) block_tiendacursos-1.2.0.zip.RA1.). El código vale para un solo dominio; se activa una vez en línea.Sin código de activación la tienda nunca queda cerrada: funciona en la versión gratuita. Una licencia anual o perpetua habilita todo.
| Función | Versión gratuita | Licencia anual o perpetua |
|---|---|---|
| Cursos a la venta, vitrina, bloque y catálogo en portada | Sin límite | Sin límite |
| Medios de pago activos a la vez | 1 (Flow, Mercado Pago o transferencia; la transferencia cuenta como medio de pago) | Todos |
| Estudiantes por compra | 1 (sin compras grupales ni descuentos por cantidad) | Hasta el máximo configurado, con tramos de descuento |
| Cupones de descuento | No | Sí |
| Packs de cursos | No (los packs guardados quedan inactivos) | Sí |
| Plantillas de correo (ver, editar, restaurar, probar) | Sí | Sí |
| Sitios externos (feed, código para pegar e iframe en tu sitio web) | No (los sitios guardados se conservan) | Sí |
| Avisos de vencimiento de acceso a estudiantes | No (la plantilla se puede dejar lista) | Sí |
| Usuarios del panel (Editar / Solo lectura por sección) | No: solo el administrador del sitio | Sí |
| Botón «Contactar a soporte» y aviso de nueva versión | Sí | Sí |
Las funciones de pago se ven en el panel con un candado y el botón «Comprar licencia», que abre la tienda de Norteduc.




La licencia perpetua no vence e incluye las actualizaciones para siempre; la anual, mientras esté vigente.
El administrador entra desde «Checkout para Moodle» en el menú principal (con el número de transferencias por confirmar). Esa entrada la ven solo las personas con acceso al panel. El panel tiene el mismo formato que el de Registro de avances: menú lateral, indicadores, tablas que se ordenan haciendo clic en sus títulos y se filtran con «Buscar», y en el pie el plan vigente y «Contactar a soporte».
| Sección | Para qué |
|---|---|
| Ventas | Pedidos, confirmación de transferencias, matrícula por estudiante y exportación a Excel. |
| Cursos a la venta | Precio, horas, días de acceso y qué cursos se venden. |
| Packs | Varios cursos juntos por un solo precio, con oferta y vigencia (licencia). |
| Cupones | Códigos de descuento (licencia). |
| Compras grupales | Tramos de descuento por cantidad, combinación con cupones y máximo por compra (licencia). |
| Pasarelas de pago | Flow, Mercado Pago y transferencia: modo, credenciales, prueba de conexión y direcciones. |
| Correo | Correo de Moodle o SMTP propio, correo de avisos de venta y correo de prueba. |
| Plantillas de correo | Texto de cada correo, activar o desactivar los opcionales, vista previa, prueba y avisos de vencimiento. |
| Sitios externos | Sitios web autorizados y código para mostrar el catálogo en ellos (licencia). |
| Configuración | Días de acceso, términos y privacidad, enlace en el menú y catálogo en la portada. |
| Usuarios del panel · Licencia | Solo el administrador del sitio. |
| Ver la vitrina · Documentación | Accesos directos para todos los que usan el panel. |
Con licencia, el administrador puede dar acceso al panel a otras personas (ventas, contabilidad, coordinación) desde Usuarios del panel › Agregar usuario: busca la cuenta de Moodle por nombre, correo o usuario y elige, sección por sección, «Editar», «Solo lectura» o «Sin acceso». Nada se concede por defecto: una persona nueva parte con solo lectura en Ventas, Cursos, Packs, Cupones, Compras grupales y Plantillas de correo, y sin acceso a Pasarelas, Correo, Sitios externos y Configuración.



Los ajustes se reparten en tres secciones del panel: Pasarelas de pago (sección 16), Correo (sección 14) y Configuración; los de compras grupales están en Compras grupales.

| Ajuste | Dónde | Qué hace |
|---|---|---|
| Días de acceso por defecto | Configuración | Días de acceso cuando el curso no define los suyos (0 = sin término). |
| Mostrar «Cursos a la venta» en el menú | Configuración | Agrega la vitrina a la navegación principal (también para visitantes). |
| Términos y condiciones · Política de privacidad | Configuración | Textos con página propia, enlazados donde el comprador los acepta. También se puede usar una URL externa para los términos. |
| Catálogo en la portada | Configuración | Tarjetas de packs y cursos al final de la portada del sitio (sección 10). |
| Correo para avisos de venta | Correo | Recibe cada venta y cada transferencia por confirmar. Vacío = correo de soporte del sitio. |
| Máximo de estudiantes por pedido | Compras grupales | Límite de una compra grupal (por defecto 100). |
| Descuento grupal y cupón | Compras grupales | No acumulables (recomendado: se aplica el mayor) o acumulables (primero el grupal y luego el cupón sobre el resto). |
En Cursos a la venta aparece cada curso del aula. Con «Editar» defines la oferta:


Un pack vende varios cursos juntos por un solo precio. En Packs › Nuevo pack defines:


En la vitrina, la portada y el bloque de catálogo el pack sale primero, con su tarjeta propia: etiqueta «Pack», «N cursos», precio normal tachado, «Ahorras $X» y la lista desplegable de cursos.




Un cupón puede ser un porcentaje o un monto fijo, para todos los cursos o uno solo, con fecha de vencimiento y cantidad máxima de usos. Un uso se cuenta solo cuando el pedido queda pagado. Un cupón de 100 % deja el pedido en $0 y la matrícula se hace de inmediato, sin pasar por la pasarela.

Los tramos aplican un descuento automático según la cantidad de estudiantes de un pedido. Ejemplo: 2 → 5 %, 3 a 5 → 10 %, 6 a 10 → 15 %, 11 o más → 20 %. Los tramos no se pueden superponer y solo el último puede quedar abierto («o más»). Un curso puede tener tramos propios: en ese caso usa solo los suyos y no los generales.

En el resumen de compra el cliente ve el descuento aplicado y un aviso del siguiente tramo («Inscribiendo 6 o más estudiantes obtienes 15 % de descuento»). Si además usa un cupón y la combinación es «no acumulables», se aplica el mayor y se le explica.
La vitrina (/local/tiendacursos/index.php) lista los cursos a la venta en tarjetas con portada,
categoría, horas, días de acceso, precio y botón Comprar, con filtro por categoría. Se adapta al teléfono.

Si quien mira ya tiene el curso, la tarjeta cambia:

Se agrega en la portada, el Área personal o un curso (modo edición › Agregar un bloque). Cada bloque se configura por separado: título, cantidad de cursos, categorías, solo destacados, orden (destacados, recientes, precio o nombre), formato tarjetas o lista, y botón «Ver todos los cursos».

Con temas como Boost, la portada del sitio solo admite bloques en el panel lateral. Para mostrar tarjetas en el centro de la portada activa Configuración › Catálogo en la portada (título, cantidad y solo destacados).

El comprador no necesita cuenta. Completa sus datos (nombres, apellidos, RUT validado con dígito verificador, correo, teléfono y empresa opcional), los estudiantes, el medio de pago y acepta los términos.





| Situación del estudiante en el curso | ¿Puede comprar? | Qué pasa al pagar |
|---|---|---|
| Sin matrícula | Sí | Se matricula por los días de acceso del curso. |
| Acceso vigente | No: «ya tiene acceso hasta dd-mm-aaaa» | — |
| Acceso vencido | Sí (Renovar acceso) | Se reactiva la misma matrícula desde hoy por los días del curso; conserva calificaciones y avance. Recibe «Tu acceso fue renovado hasta…». |
| Suspendido por un administrador (con fecha vigente) | No: «contacta a la administración» | — |
En un pedido grupal pueden mezclarse estudiantes nuevos y renovaciones; el panel marca «Renovación».

Primera sección del panel. Muestra indicadores (ventas pagadas, recaudado, por confirmar y estudiantes matriculados), filtros por estado, curso y texto (nombre, RUT, correo o pedido, también de los estudiantes; el orden por columna y la búsqueda se hacen en el servidor porque la lista se pagina) y la exportación a Excel con una fila por estudiante.

| Acción | Cuándo |
|---|---|
| Confirmar pago | Transferencia recibida: matricula a todos y envía los accesos. |
| Verificar con la pasarela | Pago en línea pendiente: consulta el estado real a Flow o Mercado Pago. |
| Anular | Pedido pendiente que no se pagará. |
| Reenviar acceso | Por estudiante. Si la cuenta nunca se usó, genera una contraseña temporal nueva; si no, envía un recordatorio. |
| Reintentar matrícula | Por estudiante, cuando su matrícula falló (los demás del grupo no se ven afectados). |

Todos los correos usan el logo, el nombre y el color de marca del sitio y salen en HTML con versión de texto.


Por defecto la tienda usa la configuración de correo saliente de Moodle. Si el aula envía mal (spam, rechazos) puedes usar una cuenta SMTP propia solo para la tienda: servidor, puerto, seguridad (ninguna, SSL o TLS), usuario, contraseña, remitente, nombre y «responder a».
| Proveedor | Servidor | Puerto / seguridad | Usuario y contraseña |
|---|---|---|---|
| Gmail o Google Workspace | smtp.gmail.com | 587 / TLS (o 465 / SSL) | La cuenta completa y una contraseña de aplicación (Cuenta de Google › Seguridad › Verificación en dos pasos › Contraseñas de aplicaciones). La contraseña normal no funciona. |
| Hosting con cPanel | mail.tudominio.cl | 465 / SSL (o 587 / TLS) | La casilla
completa (cursos@tudominio.cl) y su contraseña. |
Usa como remitente la misma casilla autenticada; si son distintas, la tienda te advierte porque muchos servidores lo rechazan o lo marcan como spam.
En Correo › Enviar correo de prueba se envía un mensaje de prueba y muestra el error exacto con una pista (usuario o contraseña, conexión, cifrado o remitente). La contraseña nunca aparece en pantalla ni en los registros.

Si un correo falla, queda en cola y se reintenta automáticamente (cada vez más espaciado, hasta 12 intentos). El panel avisa cuántos correos siguen pendientes. En la cola no se guardan contraseñas: si se reintenta una bienvenida de una cuenta nunca usada, se genera una contraseña temporal nueva.
En Plantillas de correo están todos los correos que envía la tienda, con cuándo se envía, a quién y su estado:
| Correo | A quién | ¿Se puede desactivar? |
|---|---|---|
| Bienvenida con cuenta nueva (usuario y contraseña temporal) | Cada estudiante | No |
| Bienvenida con cuenta existente | Cada estudiante | No |
| Renovación de acceso | Cada estudiante | No |
| Comprobante al comprador | Quien compra | Sí |
| Datos para transferir | Quien compra | No |
| Nueva venta | Administración | Sí |
| Transferencia por confirmar | Administración | Sí |
| Tu acceso vence pronto | Cada estudiante | Sí (licencia) |
| Tu acceso venció | Cada estudiante | Sí (licencia) |

Al abrir un correo ves la vista previa con datos ficticios (con el logo, nombre y color del sitio) y puedes editar el
asunto, el título y el texto con el editor de Moodle. Las variables se escriben con llaves y se
reemplazan en cada envío: {nombre}, {curso}, {cursos} (lista de cursos de un pack),
{usuario}, {contrasena} (solo en la bienvenida con cuenta nueva), {enlace},
{fecha_termino}, {monto}, {referencia}, {sitio}, etc. La lista de cada
correo está al pie de la página. Al guardar se rechaza una variable que no exista en ese correo y se exige mantener las
obligatorias (en la bienvenida con cuenta nueva, {usuario} y {contrasena}).

{contrasena} se reemplaza solo al enviar.
Cada día (tarea programada «Checkout para Moodle: avisos de vencimiento de acceso», 9:00) la tienda revisa los accesos que compraron sus estudiantes y envía «Tu acceso vence pronto» los días elegidos antes del término (por defecto 7 y 1) y «Tu acceso venció» al día siguiente, con un enlace para renovar el curso o el pack completo. Los días se cambian en la misma página («Días de anticipación»).


Con Sitios externos los cursos y packs a la venta aparecen en tu propio sitio web (WordPress, Wix, una página HTML o un sitio estático). El visitante ve las tarjetas en tu sitio y, al presionar «Comprar», se abre el pago en tu Moodle en una pestaña nueva (o en la misma ventana, si lo eliges). El pago siempre ocurre en el Moodle: Webpay, Flow y Mercado Pago no funcionan dentro de recuadros de otros sitios.

Presiona Agregar sitio y escribe la dirección de tu sitio, por ejemplo https://www.otec-ejemplo.cl. Solo
cuenta el dominio: se ignoran las rutas, y da lo mismo con o sin «www.». Cada sitio recibe una clave pública. La tabla se
ordena por sus títulos y tiene buscador; desde ella puedes Editar, desactivar, generar una nueva clave (la
anterior deja de funcionar al instante) o Borrar. «Último uso» indica cuándo ese sitio pidió el catálogo por última vez.


En Código para pegar elige el sitio, qué mostrar (packs y cursos, solo cursos o solo packs), la categoría, solo destacados, el máximo de tarjetas, el color de los botones, la tipografía, las esquinas y si el pago se abre en una pestaña nueva o en la misma ventana. El código y la vista previa se actualizan solos. Hay tres formas:
| Forma | Para qué sirve |
|---|---|
| 1. Código para pegar (recomendado) | Un <script> que dibuja tarjetas con el color y la
tipografía elegidos, se adapta al celular, es accesible y se carga cuando el visitante llega a esa parte de la página. |
| 2. Iframe de la vitrina | La vitrina del Moodle, sin cabecera ni pie, dentro de tu página. Útil cuando tu plataforma no permite scripts. Solo los sitios autorizados pueden mostrarla. |
| 3. Feed JSON | Los datos del catálogo para que un desarrollador o un sitio estático arme sus propias tarjetas (por ejemplo, al publicar el sitio, lo que además ayuda al posicionamiento en buscadores). |


La sección Instrucciones para tu sitio explica los pasos para WordPress (bloque «HTML personalizado» o widget HTML de Elementor), una página HTML, Wix («Insertar un sitio» con la dirección del iframe) y sitios estáticos (feed JSON).



Los cambios de precios y cursos se ven en los sitios en pocos minutos (el catálogo se guarda en caché un par de minutos).
Permiso de sección: en Usuarios del panel la sección «Sitios externos» parte en «Sin acceso»; con «Solo lectura» la persona ve los sitios y copia el código, con «Editar» además activa la publicación y agrega, quita o cambia claves.
Cada pasarela tiene un modo: Integración (ambiente de pruebas, sin dinero real) o Producción, y credenciales separadas para cada modo. Todo se configura en Pasarelas de pago: «Ofrecer … en el pago», modo, credenciales, direcciones para copiar y prueba de conexión. En la versión gratuita solo puede haber un medio de pago activo: si intentas activar un segundo, el panel lo impide y te dice cuál está activo. El modo se ve en Pasarelas, en Ventas y, solo para administradores, en el formulario de compra («Modo integración: los pagos no son reales»).

Prueba las credenciales guardadas (o unas escritas en el momento, sin guardarlas) de cada modo, sin cobrar nada:

La misma pantalla muestra, con botón Copiar, las direcciones que debes registrar:
| Pasarela | Dónde se registra | Dirección |
|---|---|---|
| Flow | Se envía en cada pago (urlConfirmation); no requiere registro manual. | https://TU-AULA/local/tiendacursos/notify.php?gw=flow |
| Mercado Pago | Tus integraciones › Webhooks (evento «Pagos»). También va en cada preferencia. | https://TU-AULA/local/tiendacursos/notify.php?gw=mercadopago |



sandbox.flow.cl (integración) o www.flow.cl (producción) › Integraciones ›
Datos de integración: API Key y Secret Key.El panel de ventas avisa cuando:
Además, Administración › Informes › Estado del sistema incluye «Checkout para Moodle»: código no válido, varios medios activados en la versión gratuita, pasarelas habilitadas, modo integración, última prueba de conexión, cron, pagos pendientes y correo.

contacto@norteduc.cl con el asunto «Soporte Checkout para Moodle <versión> — <dominio>» y los datos
técnicos (versión de Moodle, versión y plan de la tienda, sitio) ya escritos. Solo lo ven quienes usan el panel.
No. La cuenta se crea al confirmarse el pago, con el RUT sin puntos como usuario.
Se usa esa cuenta, conserva su contraseña y recibe un recordatorio de acceso.
Sí: es un solo pedido y un solo pago; cada estudiante recibe su propio acceso y el comprador el comprobante con la lista. La factura tributaria se emite fuera de la tienda (por ahora la tienda no emite documentos del SII).
Solo si su acceso venció: la compra renueva la misma matrícula. Si está vigente o suspendido no se puede.
Nada se pierde: la pasarela avisa al servidor y, si ese aviso no llega, la tarea programada consulta el estado cada 15 minutos. También puedes usar «Verificar con la pasarela».
No. Vende todos los cursos que quieras; lo limitado es 1 medio de pago, 1 estudiante por compra, sin cupones y sin usuarios del panel.
Sí, en Plantillas de correo, en todas las versiones. Puedes volver al original cuando quieras.
Un cupón «para todos los cursos» aplica al pack. Un cupón creado para un curso específico no aplica a packs.
Sí, con la licencia: en Sitios externos autorizas tu sitio y copias el código. Las tarjetas se ven en tu sitio y el pago se hace en el Moodle (pestaña nueva), que matricula y envía los accesos como siempre.
En el panel de ventas (indicadores y filtros) o exportando a Excel.
| Síntoma | Causa probable | Qué hacer |
|---|---|---|
| Las funciones de pago aparecen con candado aunque compré la licencia | Falta activar el código, es de otro dominio o la licencia anual venció (pasados los 15 días de gracia). | Abre Licencia: muestra el plan, el error exacto y el vencimiento. Escríbenos con «Contactar a soporte». |
| No llegan los avisos de vencimiento | Versión gratuita, el aviso está desactivado, el cron no corre, o el estudiante no fue matriculado por la tienda. | Revisa Plantillas de correo (estado y días) y Alertas y estado del sistema. |
| Un pack no aparece en la vitrina | Inactivo, menos de 2 cursos, un curso oculto, precio $0 o sin licencia. | La columna Estado de Packs dice el motivo. |
| Un usuario del panel no ve una sección o no puede guardar | Su permiso en esa sección es «Sin acceso» o «Solo lectura», o se usa la versión gratuita. | El administrador lo cambia en Usuarios del panel. |
| Pagos en línea quedan «Pendiente» aunque el cliente pagó | El aviso de la pasarela no llega (firewall, Imunify360, ModSecurity, Cloudflare, sitio en mantenimiento). | Permite /local/tiendacursos/notify.php
sin exigir navegador ni cookies; usa «Verificar con la pasarela»; revisa que el cron funcione. |
| «Monto distinto» en el historial | La pasarela informó un monto menor que el pedido. | No se matricula; revisa el pago en la pasarela. |
| Correos no llegan | Configuración de correo del sitio o SMTP propio. | Usa «Probar correo» y sigue la pista; con Gmail, usa contraseña de aplicación; usa remitente = cuenta autenticada. |
| Estudiante con «Error» de matrícula | Problema puntual al crear la cuenta o matricular. | Lee el detalle en el pedido y usa «Reintentar matrícula». |
| Flow: «Flow no reconoce esa API Key» | API Key de otro ambiente. | Credenciales de sandbox van en Integración y las de www.flow.cl en Producción. |
| Mercado Pago: «token de prueba en modo producción» | Token TEST- en Producción. | Usa el access token de producción (APP_USR-) de la cuenta que cobra. |
| Las tarjetas no aparecen en mi sitio (solo el enlace «Ver los cursos a la venta») | La publicación está apagada, el sitio no está autorizado (o está inactivo), la dirección autorizada es otra (http/https, puerto) o la clave cambió. | Revisa Sitios externos; compara la dirección exacta de tu sitio con la autorizada y vuelve a copiar el código. La consola del navegador indica «Revisa que este dominio esté autorizado». |
| El iframe aparece en blanco o con «rechazó la conexión» | El sitio que lo muestra no está autorizado (el navegador bloquea el recuadro), o Wix lo inserta desde un dominio intermedio. | Autoriza la dirección exacta del sitio; en Wix usa «Insertar un sitio» o un botón con enlace a la vitrina. |