Guia de uso para instalar los scripts embebibles en una tienda, configurar credenciales, personalizar la experiencia y validar que el flujo quede listo para clientes reales.
Pasos de integracion
wco1... emitida con module: catalog.window.YSVEmbedConfig antes de cargar el script.https://plugins.waopay.app/catalog-m/public/embed.js.Opciones comunes
| Opcion | Uso |
|---|---|
target | Selector del contenedor donde se renderiza el catalogo. |
itemsPage / itemsPageMode | Cantidad por pagina, paginacion normal o limite fijo de productos. |
productColumns | Numero fijo de columnas del catalogo; use 0 para grid responsivo automatico. |
showSidebar / showToolbar | Muestra u oculta categorias, busqueda, conteo y controles de vista. |
breadcrumbs | Controla migas de pan en el detalle de producto. |
hideOnDetail | Oculta selectores del sitio mientras se muestra el detalle del producto. |
seo.productBaseUrl | Permite compartir URLs con metadata server-side del modulo cuando el sitio no renderiza metadata propia. |
theme | Colores y radio visual aplicados solo al modulo. |
buttons | Texto, clases, URLs y atributos para acciones de detalle, cotizacion, carrito y compartir. |
Snippet base
<div id="ysv-catalog"></div>
<script>
window.YSVEmbedConfig = {
target: '#ysv-catalog',
credential: 'wco1.k2026...',
itemsPage: 12,
itemsPageMode: 'paginate',
productColumns: 0,
showSidebar: true,
showToolbar: true,
showViewToggle: true,
showPrices: true,
defaultCatalogView: 'grid',
defaultCurrency: 'MXN',
priceLocale: 'es-MX',
seo: {
shareBaseUrl: window.location.href,
productBaseUrl: 'https://plugins.waopay.app/catalog-m/public/product.php',
siteName: document.title || 'Catalogo'
},
hideOnDetail: ['.page-hero'],
breadcrumbs: {
enabled: true,
showCurrent: true,
homeUrl: '/',
catalogUrl: ''
},
theme: {
primary: '#e8291c',
buttonHover: '#c91f15',
secondary: '#111111',
accent: '#1565c0'
},
texts: {
detailsButton: 'Ver detalles',
addButton: 'Agregar a cotizacion',
cartButton: 'Ver cotizacion',
sidebarButton: 'Ver cotizacion'
},
buttons: {
add: { mode: 'quote', className: 'js-add-to-quote' },
cart: { url: '' },
sidebar: { enabled: true, url: '' }
}
};
</script>
<script async
src="https://plugins.waopay.app/catalog-m/public/embed.js">
</script>
Acciones, eventos y SEO
actions.add, el sitio puede conectar el boton de agregar con su propio carrito o cotizador.window.DipropolCart.addToCart(product) y despues emite eventos como ysv:add, ysv:cart, ysv:share y ysv:details.catalog-m/public/seo-header.php desde el <head> del sitio cuando exista ?product=....https://plugins.waopay.app/catalog-m/public/seo-header.php?product=4l-botella-1&target=https%3A%2F%2Fdominio.com%2Fcatalogo&siteName=Mi%20tienda.seo.productBaseUrl puede apuntar a catalog-m/public/product.php como fallback de compartido.module: catalog.Pasos de integracion
wco1... emitida con module: checkout y origen permitido del sitio.data-product-id de un producto existente en el catalogo WAOPay y cantidad inicial opcional.window.WAOCheckoutConfig antes del script.https://plugins.waopay.app/checkout-m/public/embed.js?v=20260621-3.Opciones comunes
| Opcion | Uso |
|---|---|
addTrigger | Selector de botones que agregan producto al carrito. |
openTrigger | Selector de botones que abren el carrito. |
floatingCart | Controla el boton flotante del carrito y su posicion. |
returnUrl | URL a la que vuelve el cliente despues de completar el flujo. |
messageTargetOrigin | Origen que recibira el postMessage de checkout completado. |
theme | Colores aplicados dentro del checkout sin modificar el sitio anfitrion. |
quickCheckoutTrigger | Selector del boton que inicia checkout rapido usando JSON del carrito del sitio. |
cartJsonProvider | Funcion que entrega las lineas del carrito cuando el cliente hace clic en el boton rapido. |
requestTimeoutMs | Tiempo maximo de espera para preparar carritos grandes o conexiones lentas. |
prefetchCart | Si es true, precarga el carrito guardado al cargar la pagina; por defecto se refresca al abrirlo. |
onAdd, onComplete, onError | Callbacks para analitica, mensajes del sitio o seguimiento de resultado. |
Snippet base
<button class="js-add-product"
data-product-id="55350"
data-product-qty="1">
Agregar producto
</button>
<button class="js-open-cart">
Abrir carrito
</button>
<script>
window.WAOCheckoutConfig = {
credential: 'wco1.k2026...',
addTrigger: '.js-add-product',
openTrigger: '.js-open-cart',
floatingCart: {
show: true,
horizontal: 'right',
vertical: 'bottom'
},
returnUrl: window.location.href,
messageTargetOrigin: window.location.origin,
theme: {
primary: '#e8291c',
buttonHover: '#c91f15',
secondary: '#111111',
accent: '#1565c0'
},
onAdd: function (context) {
console.log('Producto agregado', context);
},
onComplete: function (context) {
console.log('Checkout completado', context);
},
quickCheckoutTrigger: '#wao-fast-checkout',
cartJsonProvider: function () {
return [
{ id: 55350, qty: 2, attributes: { talla: 'M' } },
{ product_id: 190331, quantity: 1, extras: [{ name: 'Grabado', value: 'Omar' }] }
];
},
requestTimeoutMs: 45000,
prefetchCart: false,
onError: function (context) {
console.error(context.error);
}
};
window.addEventListener('wao:checkout:complete', function (event) {
console.log('Evento checkout completo', event.detail);
});
</script>
<script async
src="https://plugins.waopay.app/checkout-m/public/embed.js?v=20260621-3">
</script>
Boton de producto
Cada boton que sube un producto al carrito debe apuntar a un producto que ya exista en el catalogo cargado en WAOPay. El modulo consulta ese producto en WAOPay antes de agregarlo; si el ID no existe o no pertenece al comercio de la credencial, no podra subirse al carrito.
| Atributo | Requerido | Uso |
|---|---|---|
class |
Sí | Debe coincidir con addTrigger, por ejemplo js-add-product. |
data-product-id |
Sí | ID numerico del producto en el catalogo WAOPay. |
data-product-qty |
No | Cantidad inicial sugerida. Si se omite, el modulo usa 1. |
<button class="js-add-product"
data-product-id="55350"
data-product-qty="1">
Agregar producto
</button>
Uso en el sitio
WAOCheckout.add(productId, quantity), WAOCheckout.open(), WAOCheckout.checkout() y WAOCheckout.loadAndCheckout(items) desde scripts propios del sitio.attributes, extras, options e instructions; WAOPay completa precio y titulo antes de cargar el carrito.floatingCart: false o floatingCart: { show: false } oculta el boton flotante.prefetchCart: true precarga el carrito guardado al cargar la pagina; por defecto se evita esa llamada hasta que el cliente abre el carrito.module: checkout y permite el dominio del sitio.onComplete, el evento wao:checkout:complete y onError se ejecutan cuando corresponde.