Skip to main content

GTM — Test A/B Sold Out PLP

Contraparte en PLP del script Test A/B Sold Out PDP. Forma parte del mismo test A/B (Test_AB), con la misma cookie y los mismos SKUs, pero en lugar de modificar el estado del botón en la ficha de producto, elimina directamente los tiles de esos productos del listado para los usuarios del segmento A.

Sin CSS, sin variables GTM, sin eventos

El script no tiene estilos propios, no usa variables de plantilla GTM y no emite ningún evento al dataLayer.


Configuración hardcodeada

VariableValorDescripción
gtmTestABCookieName"Test_AB"Nombre de la cookie que determina el segmento.
gtmTestABSegmentName"segment_A"Único segmento que activa el script.
gtmTestABSkusLista de 110 SKUsIdéntica a la del script de PDP.

Lógica de segmentación

CondiciónAcción
Cookie = segment_AItera los 110 SKUs y elimina del DOM el tile y su variante en swatches.
Cookie ≠ segment_ASin acción.
Cookie ausenteSin acción.

A diferencia de la variante PDP, el segmento B no realiza ninguna acción: los productos siguen visibles en el listado por defecto.


Elementos eliminados del DOM

Por cada SKU de la lista, el script busca hasta dos elementos y los elimina:

SelectorQué se eliminaPor qué el parent
.gtm-product-tile[data-pid="<sku>"]Se elimina su parentElementEl tile es hijo de un <li> u otro wrapper — hay que subir un nivel para quitarlo del grid.
.gtm-product-tile__variants-list-item[data-pid="<sku>"]El elemento en síEl item de variante es directamente el nodo a eliminar.

Si alguno de los dos elementos no existe en el DOM, el script lo ignora sin lanzar errores.


Diferencias respecto al script de PDP

AspectoTest A/B PDPTest A/B PLP
Página de aplicaciónPDPPLP
Acción para segmento ADeshabilita botón + texto "SOLD OUT"Elimina el tile del producto del listado
Acción para segmento BRe-habilita botón si estaba deshabilitadoSin acción
IteraciónActúa solo sobre el producto actualItera los 110 SKUs buscando en todo el DOM
CSSNoNo
Eventos GTMNoNo

Flujo de ejecución

fnGtmInitTestAbPlp() ← llamada directa al cargar el tag

├─ fnGtmTestAbToGetCookieValue()
│ └─ Lee document.cookie, busca "Test_AB=..." → devuelve valor o null

├─ Si cookie ≠ "segment_A" → fin

└─ Si cookie = "segment_A":
└─ Para cada sku en gtmTestABSkus:
├─ Busca .gtm-product-tile[data-pid="<sku>"]
│ └─ Si existe → elimina su parentElement
└─ Busca .gtm-product-tile__variants-list-item[data-pid="<sku>"]
└─ Si existe → elimina el elemento