Hola buenas, qué tal?
Estoy desarrollando un search-resolver personalizado para integrar un motor de búsqueda externo en una tienda VTEX IO. Mi implementación está basada en los siguientes recursos:
- GitHub - vtex-apps/search-resolver · GitHub
- VTEX Search Protocol
- GitHub - vtex-apps/search-engine-example: Example implementation for a Search Engine integration app · GitHub
El resolver implementa las queries definidas por vtex.search-graphql, incluida productSearch y productSearchV3.
Actualmente funciona correctamente en estos casos:
- Carruseles de productos.
- Sugerencias de productos del autocomplete.
El problema ocurre al confirmar una búsqueda presionando ENTER. La navegación llega correctamente a la página de resultados (PLP), pero el renderizado inicial no utiliza mi search-resolver. Los productos mostrados corresponden a VTEX Intelligent Search.
Luego de revisar las solicitudes y los logs, observamos una diferencia según el contexto de ejecución:
- En las consultas ejecutadas desde el cliente, la request incluye mi workspace y productSearch es resuelta por mi app.
- En el renderizado inicial SSR de la PLP, asociado a __pickRuntime=queryData, la solicitud aparentemente no propaga el workspace.
- Como consecuencia, la query parece resolverse en otro contexto y termina utilizando la implementación nativa de Intelligent Search.
En otras palabras:
-
Client-side request
- mi workspace
- custom search-resolver
- external search engine -
Initial SSR request
- workspace ausente o no propagado
- default resolver
- VTEX Intelligent Search
Ya realizamos las siguientes pruebas:
- Desinstalamos las apps que consideramos que podían generar un conflicto con el resolver.
- Verificamos que exista un único search-resolver en el workspace.
- Probamos la integración en otra tienda con una configuración compuesta únicamente por apps nativas.
- Confirmamos mediante logs que las consultas del autocomplete llegan a nuestra app.
- Confirmamos que la consulta del renderizado inicial de la PLP no llega a nuestra app.
Apps instaladas:
Edition Apps in qacoolboxpe at workspace buscador
vtex.admin 4.66.0
vtex.admin-account-details 1.1.5
vtex.admin-api-keys 1.2.0
vtex.admin-apps 4.7.0
vtex.admin-audit 2.29.8
vtex.admin-binding 0.28.2
vtex.admin-catalog-facelift 0.4.0
vtex.admin-cms 1.35.5
vtex.admin-cms-graphql-rc 1.43.0
vtex.admin-collections 0.169.4
vtex.admin-coupons 0.14.1
vtex.admin-defense-mode 0.5.0
vtex.admin-docs 0.13.0
vtex.admin-home 3.10.3
vtex.admin-inventory 0.53.13
vtex.admin-login 1.33.1
vtex.admin-logistics 1.45.3
vtex.admin-master-data-usage 1.0.2
vtex.admin-offer-quality 0.7.1
vtex.admin-offer-status 0.8.0
vtex.admin-orders 0.193.3
vtex.admin-pages 4.59.2
vtex.admin-payment-affiliations 1.10.3
vtex.admin-pickup-points 2.15.1
vtex.admin-planner 0.1.2
vtex.admin-pricing-settings 1.8.0
vtex.admin-promotions 2.2.0
vtex.admin-promotions-storage-manager 0.4.3
vtex.admin-sales-performance 1.5.3
vtex.admin-sellers 1.8.1
vtex.admin-sku-binding 0.7.0
vtex.admin-sponsor 1.3.1
vtex.admin-suggestions 2.42.0
vtex.admin-user-roles 0.35.2
vtex.admin-users-v2 1.0.2
vtex.admin-v4-docs 0.2.0
vtex.admin-vendor-invite 0.15.1
vtex.admin-wallet-hub 0.4.1
vtex.agentic-cx 3.0.4
vtex.app-install-monitor 0.1.1
vtex.asset-server 0.19.5
vtex.auth-admin 3.70.0
vtex.auth-server 0.18.0
vtex.billing 0.25.0
vtex.broadcaster 0.9.0
vtex.builder-hub 0.320.0
vtex.cartman 0.4.0
vtex.checkout 0.6.0
vtex.checkout-session 0.5.0
vtex.client-admin-settings 0.15.2
vtex.colossus-legacy-proxy 2.7.0
vtex.developer-docs-integration 0.5.6
vtex.dotnet-messenger-sender 0.1.7
vtex.evolution-manager-graphql 0.15.3
vtex.file-manager 0.12.4
vtex.frontend-metrics-gateway 0.7.0
vtex.fulfillment-locations-app 0.1.2
vtex.google-pay 1.2.12
vtex.invoice-notifier 0.8.2
vtex.lgpd-service 0.0.49
vtex.marketplace-network 0.34.1
vtex.messages-templates 0.11.0
vtex.messenger-core 0.1.9
vtex.mkp-category-mapper-ui 1.24.0
vtex.my-account 1.30.1
vtex.my-authentication 1.9.0
vtex.my-orders-packages 0.5.0
vtex.myuser-io 2.21.1
vtex.notification-generator 0.7.0
vtex.omnishipping 1.21.7
vtex.order-auth 1.10.0
vtex.orders-broadcast 0.3.3
vtex.pix-payment 0.13.4
vtex.promotions-simulator 0.4.2
vtex.received-offers 0.4.0
vtex.request-capture 2.3.0
vtex.reverse-registry 0.6.14
vtex.rewriter 1.69.3
vtex.sales-performance-graphql 0.8.2
vtex.seller-provisioner 0.2.1
vtex.seller-welcome 0.4.1
vtex.shipping-preview 0.15.0
vtex.si-survey-admin 0.10.0
vtex.sms-messenger-sender 0.1.0
vtex.smtp-messenger-sender 0.1.0
vtex.sno 0.0.3
vtex.sse-server 0.3.3
vtex.store 2.147.2
vtex.store-sitemap 1.11.1
vtex.support-center 1.4.0
vtex.toolbelt-telemetry 0.1.3
vtex.transform-handlebars-email 0.1.12
vtex.transform-handlebars-sms 0.1.4
vtex.transform-render-email 0.1.7
vtex.transform-render-sms 0.1.7
vtex.workspace-analytics 0.2.0
Installed Apps in qacoolboxpe at workspace buscador
acalderom.payme-flex 2.1.3
braindw.braindw-io 0.14.26
fpaypartnercl.fpay 0.1.0
mercadopago.mercadopago-app 2.17.0
pagoefectivope.pagoefectivoapp 2.0.1
pagoefectivope.pagoefectivov2 0.1.0
powerpaypartnerpe.powerpay 0.1.0
qacoolboxpe.checkout 1.3.14
qacoolboxpe.keep-alive-example 0.0.1
qacoolboxpe.service-account 2.0.4
qacoolboxpe.service-catalogo 1.1.1
qacoolboxpe.service-data 1.0.3
qacoolboxpe.service-utils 2.0.4
qacoolboxpe.store-account 2.0.10
qacoolboxpe.store-comparator 1.1.10
qacoolboxpe.store-components 0.0.38
qacoolboxpe.store-coolcase 1.0.5
qacoolboxpe.store-form 1.0.9
qacoolboxpe.store-logistic 0.0.20
qacoolboxpe.store-menu 0.0.6
qacoolboxpe.store-theme 0.0.46
synerisepartnerar.synerise-integration 1.6.38
vtex.ab-tester 0.27.5
vtex.admin-channels 5.38.2
vtex.admin-graphql-ide 3.9.0
vtex.admin-search 1.95.0
vtex.critical-css-extractor 0.7.1
vtex.facebook-fbe 1.14.3
vtex.file-manager-graphql 0.7.7
vtex.graphql-server 1.77.1
vtex.messages 1.72.0
vtex.oct8ne 3.3.53
vtex.orders-graphql 0.119.2
vtex.render-server 8.180.1
vtex.reviews-and-ratings 3.20.1
vtex.routes-bootstrap 0.6.1
vtex.store-graphql 2.177.3
vtex.store-locator 0.10.15
vtex.wish-list 1.19.1
vtexarg.abtester 1.0.15
vtexventures.personal-shopper-free 0.14.2
wepay4u.wepay4u 0.1.0
woowup.woowup 5.5.0
Linked Apps in qacoolboxpe at workspace buscador
qacoolboxpe.search-resolver 1.104.0
Comportamiento esperado:
La query productSearch utilizada durante el renderizado inicial SSR de la PLP debería resolverse mediante el search-resolver instalado en el workspace, igual que las consultas realizadas desde el cliente.
Comportamiento actual:
La consulta inicial de la PLP parece ejecutarse fuera del contexto del workspace y termina utilizando el resolver nativo de Intelligent Search.
¿Existe alguna configuración adicional para hacer que el renderizado SSR de search-result utilice el resolver instalado en el workspace?
Muchas gracias!