Changelogs
store: iguala el carrito y el cuadro de ítem al diseño original
15 de julio de 2026 a las 07:11adevopg · 8e16ba8
Comparado contra el store original (ultimowow /es/store-bennu) con una sesión real: markup, CSS y clases que aplica su power.js. Cinco causas distintas: - Los nombres de ítem salían azules: el layout declaraba `const whTooltips`, que queda en el ámbito léxico del script y NO crea propiedad en `window`, que es de donde tooltips.js lee la config -> se ignoraba entera. Ahora `window.whTooltips`, con colorLinks+iconizeLinks (el original no define whTooltips y usa esos defaults; sus enlaces acaban con clases `icontinyl q4`). renameLinks sigue en false: el texto sale de nuestra BD, en español. - tooltips.js solo recorre el DOM al cargar, así que los enlaces que monta React (hoja del árbol, carrito) no se teñían. Se pasan por $WowheadPower.refreshLinks(), igual que hace el original tras cada AJAX. - globals.css redefinía .item-box/.item-name/.item-img-box/.max-left-table2, que el tema nw-ryu ya trae del original, y con más especificidad ganaba la cascada. El peor: un `border-collapse` que anulaba el `border-spacing: 0 8px` del tema, que es lo que separa las filas del carrito. - Faltaban la caja "Carrito - <REINO>" y "Personaje seleccionado: <nombre>" (coloreado por clase), que el original sí tiene. - El total de la columna "Cant" mostraba el número de líneas en vez de la suma de cantidades: un ítem que entrega un mazo de 20 debe contar 20, no 1. Verificado con navegador contra un build de producción: el nombre del ítem sale con clases `icontinyl q4` y color rgb(163,53,238), el mismo valor exacto que devuelve el original.
Fix: /store no mostraba nada al elegir personaje
15 de julio de 2026 a las 00:34adevopg · 742567c
El selector funcionaba: el fetch del catálogo respondía y React montaba el árbol entero, pero el tema lo tenía oculto y no se veía nada en pantalla. Son reglas del store original (BENNU), que ocultaba estos elementos y los revelaba con jQuery (.show()/slideToggle()). En el port a React la visibilidad la decide el montaje del componente, y el tema nw-ryu se carga el último para ganar la cascada, así que hay que deshacerlas con !important: - #store-div: ocultaba el árbol completo (el síntoma reportado). - #store-list li ul: habría ocultado las subcategorías al desplegarlas. Además, el <ul> anidado comparte clase con el <span> que lo abre (igual que en el markup original), así que el display:inline-block de los spans deformaba la lista. Esas reglas pasan a ir atadas a `span`.
store: pagar también con Stripe y SumUp (tarjeta), además del saldo PD/PV
15 de julio de 2026 a las 00:14adevopg · f0b0064
Selector de forma de pago en el carrito (Saldo PD/PV · Stripe · SumUp), como el resto de servicios. Con tarjeta, el carrito se convierte a euros (100 PD = 1 €, 200 PV = 1 €), se guarda como pedido y se entrega tras confirmarse el pago. - BD: tabla home_store_order (ref, cuenta, personaje, items, importe) para no depender del límite de metadata de la pasarela (sql/home_store_order.sql). - lib/store: storeEuroTotal, createStoreOrder, fulfillStoreOrder. - paid-services: servicio 'store' (fulfill = enviar el pedido por order_ref); la entrega la dispara service-success/reconciliación/webhook como los demás. - /api/store/send: rama provider stripe/sumup (crea pedido + checkout, mínimo 1 €/0,50 €) además del pago con saldo. - StoreBrowser: selector Saldo/Stripe/SumUp; con tarjeta redirige a la pasarela. - i18n Store (payMethod/payBalance/payStripe/paySumUp/confirmCard/amountTooLow) y Paid.store (title/success). Verificado: euros 200PD+28PV=2,14 €, pedido y fulfill por order_ref (SOAP real pendiente, worldserver caído).
store: añade la sección plegable "Novedades" (changelog)
15 de julio de 2026 a las 00:00adevopg · 5a903ef
Replica el bloque Novedades del diseño original: fieldset plegable con el changelog (Noviembre 2024) y sus objetos enlazados a wowhead (icono zamimg tiny + color por calidad). components/StoreNews.tsx (client, toggle con flecha rotate/rotate2 del tema), incluido en la caja de info de /store. i18n Store.newsTitle/newsIntro/newsDate (es/en).
Implementa la tienda /store (catálogo BENNU: 750 categorías, 3068 ítems)
14 de julio de 2026 a las 23:54adevopg · 026fbcb
Porta la tienda de ítems/transfiguración del sistema antiguo: elegir personaje → árbol de categorías (3 niveles) → carrito → enviar por correo. Se paga con el saldo PD o PV de la cuenta (cada ítem lleva su precio y moneda). - BD: home_store_category (árbol por code "1-1-1") + home_store_item (mismos item_id, nombres, iconos, precios y moneda que el original; 2947 en PD, 121 en PV). Seed en sql/store_catalog.sql, extraído del HTML real. - lib/store.ts: getStoreCatalog (árbol anidado), getStoreBalances, priceStoreCart (precios REALES de BD), purchaseStoreCart (cobro atómico PD+PV con FOR UPDATE y reembolso si el envío SOAP falla; `.send items` troceado a 12/correo). - API: GET /api/store/catalog (tras elegir personaje) y POST /api/store/send. - components/StoreBrowser.tsx: selector de personaje, árbol colapsable (ítems montados solo al abrir), carrito con totales PD/PV, enviar, modal de resultado. - página /store con la info y el título "Tienda - REINO". Enlaces de ítems e iconos por wowhead/zamimg (con tooltip y locale). El enlace ya existía en AccountTools. i18n namespace Store (es/en). CSS del árbol/carrito/modal. Verificado: catálogo E2E (750 cats/3068 ítems), cobro atómico + reembolso y detección de saldo insuficiente (cuenta 15). SOAP real sin probar (worldserver caído en este entorno).


