WP Manifestindependent plugin directory
manifest / ecommerce / audio-pro-generador-pedidos

Audio Pro - Generador de Pedidos

Plugin de WordPress para crear pedidos de WooCommerce en una sola pantalla, sin carrito ni checkout. Pensado para pedidos por WhatsApp en Perú: DNI/RUC con RENIEC y SUNAT, ubigeo y enlace de pago.

by Daniel Rodríguez · github.com/cuernodechivo/audio-pro-generador-pedidos

★ 0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/cuernodechivo/audio-pro-generador-pedidos/archive/refs/heads/main.zip

Crea pedidos de WooCommerce en una sola pantalla, sin carrito ni checkout. Pensado para tomar pedidos por WhatsApp o teléfono y mandarle al cliente el enlace de pago en menos de un minuto.

Instalación

  1. Descarga el .zip de la última versión en Releases.
  2. WordPress → Plugins → Añadir nuevo → Subir plugin → sube el .zip → Activar.
  3. Entra a WooCommerce → Generar Pedido.

Requiere WordPress 6.0+, PHP 7.4+ y WooCommerce. Funciona solo, y además se integra automáticamente con estos plugins cuando están activos:

  • Ubigeo y Envío Perú — selector Departamento/Provincia/Distrito y costo de envío calculado con tus mismas tarifas, cobertura, envío Flash, recojo en tienda, envío por agencia y métodos internos (Flex, Urbano).

  • Audio Pro — Pedido Imprimible — el correo de nuevo pedido usa tu hoja imprimible, y el panel de éxito trae el botón para imprimir.

  • CURCY – WooCommerce Multi Currency — toda la pantalla trabaja en una sola moneda, elegida arriba del panel de totales (por defecto, la de tu tienda). Si eliges otra, los precios del buscador, el envío y lo que ya tengas escrito se reexpresan al tipo de cambio de CURCY, y el pedido se crea en esa moneda con el sello que CURCY necesita para mostrarlo bien. Si solo tienes una moneda configurada, el selector ni aparece.

  • Comprobante de Pago Perú (Fork corregido) — boleta o factura dentro de la tarjeta del cliente (el documento escrito decide cuál), con DNI o carnet de extranjería, RUC, razón social y DNI de quien recibe, y las mismas validaciones del checkout (8 dígitos, RUC de 11 con dígito verificador y prefijo 10/15/16/17/20). El guardado se delega en el propio plugin, así que el pedido queda con sus mismas claves de metadato (_dni, billing_dni, _ruc…) y sale igual en el correo, en la hoja imprimible y en la columna del listado de pedidos.

  • Factiliza (API, no plugin) — con un token en Generar Pedido → Ajustes, los datos de DNI, RUC y carnet se traen de RENIEC y SUNAT.

Si el plugin de ubigeo no está activo, el generador sigue funcionando: pide la ciudad a mano y el costo de envío se escribe manualmente.

Cómo se usa

Consulta automática de DNI, RUC y carnet (Factiliza)

Si pones un token de Factiliza en Generar Pedido → Ajustes, al lado de los campos de DNI, RUC y carnet aparece un botón Buscar (también funciona pulsando Enter dentro del campo):

  • DNI → nombres y apellidos de RENIEC, y la dirección con su departamento/provincia/distrito ya seleccionados, lo que calcula el envío solo.
  • RUC → razón social y dirección fiscal de SUNAT. Si el contribuyente no está ACTIVO o no está HABIDO, sale un aviso en amarillo antes de que emitas la factura.
  • Carnet de extranjería → nombres y apellidos.

Reglas de llenado, pensadas para no estropear un pedido:

  • El nombre siempre se actualiza con el dato oficial.
  • La dirección y el ubigeo solo se llenan si el campo de dirección está vacío, y van siempre juntos. Si ya escribiste la dirección de entrega que te dio el cliente, la consulta no la pisa: la dirección de RENIEC suele ser la del domicilio declarado, no a donde quieren recibir el pedido.
  • Cuando se usa la dirección oficial, aparece el recordatorio "Revisa la dirección con el cliente antes de enviar".

Detalles de la integración:

  • El token nunca llega al navegador. La consulta sale del servidor de tu tienda; en el HTML de la página no aparece por ningún lado.
  • Cada documento consultado se guarda 30 días: repetir un cliente no gasta otra consulta de tu plan.
  • Antes de llamar a la API se revisa el formato (8 dígitos para DNI, 11 para RUC, 8 a 12 para el carnet), así un número mal escrito no te cuesta una consulta.
  • Sin token el generador funciona igual que siempre, solo que escribiendo los datos a mano.
  • Factiliza devuelve las tildes y la eñe en doble codificación (una "Ñ" llega como "Ã" más un carácter de control). El plugin lo corrige, así que CASERIO PUÑA se guarda bien escrito y los distritos con eñe se reconocen.

Productos con variaciones

Funcionan sin hacer nada especial. Al buscar aparecen las variaciones, no el producto padre (un producto variable no se puede vender sin elegir variación), cada una con sus atributos en el nombre, su propio precio, su propio SKU y su propio stock: Audífonos Studio - Negro, Recto (AUD-STU-NR) · S/299 · 10 en stock.

  • Puedes afinar escribiendo el atributo: studio negro deja solo las negras.
  • Puedes poner varias variaciones del mismo producto como líneas separadas.
  • El stock se descuenta de la variación exacta, no del producto padre.
  • Los atributos viajan al pedido, al panel, a los correos y a la hoja imprimible (Color: Negro / Cable: Recto).
  • Una variación sin SKU propio muestra el SKU del padre.
  • Se listan hasta 30 resultados; si hay más, el buscador lo avisa para que afines la búsqueda en vez de cortar en silencio.

Un pedido en cuatro pasos

  1. Productos — busca por nombre o SKU y pulsa Enter (o toca el resultado). Si el producto ya está en la lista, suma uno. La cantidad se cambia con los botones − y +, y el precio de cada línea se puede editar para un precio pactado.

  2. Cliente — escribe o pega su DNI, RUC o carnet en el primer campo. No hace falta elegir nada antes: el número dice qué es (8 dígitos DNI, 11 RUC, el resto carnet) y con eso:

    • si ya te compró, se cargan los datos de su último pedido —celular, dirección, referencia, distrito— sin gastar consultas de Factiliza;
    • si es nuevo, se traen nombre y dirección de RENIEC / SUNAT (con token);
    • un RUC pone el pedido en factura solo; un DNI, en boleta.

    Después el cursor salta al primer dato que falte (casi siempre el celular). Si el cliente no tiene el documento a mano, busca un pedido anterior por su celular o nombre, o elige Sin comprobante.

  3. Entrega — escribe el distrito ("surco", "miraflores", "callao…") y elige de la lista: departamento, provincia y distrito quedan puestos, y el envío se calcula solo. Aparecen primero los de tus zonas de cobertura. Las tres listas clásicas siguen en "Elegir de la lista".

  4. Crear pedido — en el celular el botón está siempre abajo, junto al total. Descuento, notas, moneda y correos están en Más opciones.

Si falta algo, el pedido no se envía: el campo se marca en rojo con su explicación y la pantalla sube hasta él. Nada de lo escrito se pierde.

Al terminar aparece el pedido creado con:

  • Botón Enviar enlace de pago por WhatsApp (mensaje ya redactado con el número de pedido, el total y el enlace).
  • Enlace de pago con botón Copiar.
  • Botón para imprimir la hoja del pedido.
  • Botón para editarlo en WooCommerce.

Detalles a tener en cuenta

  • Un formulario, un pedido. Un doble toque, el botón "atrás" o una conexión que reintenta ya no crean pedidos repetidos: el segundo envío lleva al pedido que ya se creó. Se comprueba en el servidor, no solo en el navegador.

  • Si el servidor rechaza el pedido, la pantalla vuelve con todo como estaba: productos con sus precios y cantidades, distrito, envío y costo.

  • En el celular, el botón "Ir" del teclado pasa al siguiente campo en vez de enviar el pedido a medio llenar.

  • Los avisos de otros plugins quedan plegados arriba ("Avisos de otros plugins") para que el formulario sea lo primero que se ve.

  • El pedido se crea En espera. Cuando el cliente paga por el enlace, WooCommerce lo pasa solo a Procesando.

  • En ese estado el stock se descuenta de inmediato: la mercadería queda reservada para ese cliente desde que tomas el pedido. Si el pedido se cae, cancélalo y WooCommerce devuelve el stock.

  • WooCommerce normalmente no deja pagar por enlace un pedido En espera. El plugin lo permite, pero solo para los pedidos generados desde esta pantalla: los demás pedidos de tu tienda siguen comportándose igual que siempre.

  • Si el correo del cliente coincide con una cuenta existente, el pedido queda vinculado a esa cuenta.

  • El pedido queda marcado con una nota interna que dice quién lo generó.

  • Si eliges factura, el nombre del pedido pasa a ser el de la persona que recibe (o la razón social), exactamente como hace el checkout.

  • Al elegir boleta los apellidos del cliente son obligatorios: SUNAT los pide y el checkout también los exige.

  • Funciona desde el celular: la pantalla se apila en una columna, los productos se ven como tarjetas y el total con el botón de crear quedan fijos abajo mientras te desplazas.

  • Solo pueden usarlo los usuarios con permiso manage_woocommerce (administrador y gestor de la tienda).

Ganchos para personalizar

// Cambiar quién puede generar pedidos.
add_filter( 'agp_capacidad', fn() => 'edit_shop_orders' );

// Hacer algo justo después de crear el pedido.
add_action( 'agp_pedido_creado', function ( $order, $datos ) {
    // ...
}, 10, 2 );

Cambiar el estado inicial

Los pedidos nacen En espera (on-hold). Para cambiarlo no hace falta tocar el plugin, basta un filtro en el functions.php de tu tema:

add_filter( 'agp_estado_inicial', function () {
    return 'processing'; // o 'pending'
} );

Probado en

WordPress 7.1 · WooCommerce 11.0.1 · PHP 8.5, con los cinco plugins activos y con HPOS encendido y apagado. Se verificaron: búsqueda por nombre y SKU, precio editable por línea, cascada de ubigeo, tarifa de Miraflores (S/7) y Flash de Magdalena (S/10), boleta con DNI y con carnet, factura con RUC (incluido el nombre tomado del responsable), recojo en tienda con fecha y hora, Cusco fuera de cobertura, precarga de cliente desde un pedido anterior, y la hoja imprimible del pedido generado.

Historial

  • 1.5.0 — experiencia de uso, sobre todo en el celular:
    • Campo único DNI, RUC o carnet que reconoce el documento, busca primero en tus pedidos anteriores y luego en Factiliza, y decide boleta o factura. El comprobante dejó de ser una tarjeta aparte.
    • Buscador de distrito en lugar de tres listas encadenadas.
    • Cantidad con botones − / +; "Más opciones" plegable; botón Copiar del enlace de pago; barra fija con el número de productos.
    • Validación antes de enviar, con el error junto a cada campo.
    • Corregido: si el servidor rechazaba el pedido (por ejemplo, faltaban los apellidos en una boleta) se perdían los productos, el distrito y el envío. Ahora se restaura todo.
    • Corregido: un doble toque en el botón creaba dos pedidos iguales. Ahora hay un registro atómico por formulario en el servidor.
    • Páginas más cortas: de 4 a 2,7 pantallas en un celular.
  • 1.4.1 — corregida la doble codificación con la que Factiliza devuelve las tildes y la eñe.
  • 1.4.0 — consulta automática de DNI, RUC y carnet de extranjería con la API de Factiliza, con pantalla de ajustes para el token, caché de 30 días por documento y aviso cuando un RUC no está activo o habido en SUNAT.
  • 1.3.3 — versión móvil: en pantallas de celular la tabla de productos pasa a tarjetas (el campo de precio se cortaba y no se veía el importe completo) y aparece una barra fija abajo con el total y el botón Crear pedido, para no tener que bajar hasta el final.
  • 1.3.2 — al teclear un producto nuevo y pulsar Enter antes de que llegaran los resultados, se agregaba el producto de la búsqueda anterior que seguía en pantalla; ahora el Enter espera a los resultados del texto actual. El buscador muestra hasta 30 resultados (antes 15, que cortaba los productos con muchas variaciones) y avisa cuando quedan más fuera.
  • 1.3.0 — el pedido nace En espera en vez de Pendiente de pago. El cambio de estado se hace cuando el pedido ya tiene sus líneas, para que WooCommerce descuente el stock de verdad y mande el correo de nuevo pedido en la transición; y se permite pagar por enlace los pedidos En espera generados aquí, que WooCommerce bloquearía.
  • 1.2.0 — compatibilidad con CURCY (Multi Currency): se corta la conversión automática que CURCY aplicaba dentro de las llamadas AJAX del panel (hacía que el buscador mostrara precios convertidos mientras el pedido se guardaba en la moneda base) y se añade el selector de moneda del pedido.
  • 1.1.2 — el Enter ya no se pierde si lo pulsas antes de que lleguen los resultados de la búsqueda; al elegir el distrito, el método de envío pasa a la opción que corresponde en vez de quedarse en un método interno.
  • 1.1.1 — compatibilidad con Comprobante de Pago Perú (boleta y factura).
  • 1.0.0 — versión inicial.