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
| Variable | Valor | Descripción |
|---|---|---|
gtmTestABCookieName | "Test_AB" | Nombre de la cookie que determina el segmento. |
gtmTestABSegmentName | "segment_A" | Único segmento que activa el script. |
gtmTestABSkus | Lista de 110 SKUs | Idéntica a la del script de PDP. |
Lógica de segmentación
| Condición | Acción |
|---|---|
Cookie = segment_A | Itera los 110 SKUs y elimina del DOM el tile y su variante en swatches. |
Cookie ≠ segment_A | Sin acción. |
| Cookie ausente | Sin 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:
| Selector | Qué se elimina | Por qué el parent |
|---|---|---|
.gtm-product-tile[data-pid="<sku>"] | Se elimina su parentElement | El 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
| Aspecto | Test A/B PDP | Test A/B PLP |
|---|---|---|
| Página de aplicación | PDP | PLP |
| Acción para segmento A | Deshabilita botón + texto "SOLD OUT" | Elimina el tile del producto del listado |
| Acción para segmento B | Re-habilita botón si estaba deshabilitado | Sin acción |
| Iteración | Actúa solo sobre el producto actual | Itera los 110 SKUs buscando en todo el DOM |
| CSS | No | No |
| Eventos GTM | No | No |
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