Magento 2 customer-data.js: 90: 23 [objeto Objeto]


11

Estoy usando Magento 2.2 con el tema de Porto y obtengo un [object Object]error de JavaScript en la customer-data.jslínea 90 de la consola después de iniciar sesión en la tienda y actualizar la página o cambiar a otra página.

Probé esto en Firefox, Chrome, IE 11 y Edge y solo aparece en Firefox (el navegador que más uso).

No está causando ningún problema grave (no hasta donde puedo ver), pero me gustaría resolver este problema.

objeto Error de objeto

línea donde ocurre el error

La línea 90 del customer-data.jsarchivo es: "throw new Error(jqXHR);".

Dentro del objeto jqXHR hay un mensaje de respuesta JSON:

La fuente de la sección {"mensaje": "\" acuerdo de facturación de PayPal \ "\" no es compatible "}

He visto un par de sugerencias, pero la mayoría giraba en torno a la limpieza de caché y archivos estáticos.

Intenté: borrar el caché de Firefox y las cookies, limpiar los archivos estáticos de Magento, el caché y el caché de almacenamiento, pero nada funcionó hasta ahora ...

Y no estoy realmente seguro de qué más hacer ... cualquier ayuda sería apreciada.

Editar / Solución

La causa del error fue que había deshabilitado el módulo Paypal pero no borré el caché local / de almacenamiento del navegador.

Dentro de este caché había una cierta llamada al módulo de PayPal que no se pudo procesar, por lo que devolvió un error JS como este.

Borrar este caché solucionó el problema.


Primero, verifique qué hay dentro del Objeto jqXHR. El método de construcción de la clase Error esperaba el mensaje de cadena (u Objeto con toStringmétodo).
Siarhey Uchukhlebau

@SiarheyUchukhlebau Edité la pregunta con el contenido de jqXHR.
Lez

¿Dónde encontraste el jqXHR Oject?
krybbio

@krybbio Puede verlo mientras se depura en la línea 90 del archivo customer-data.js. También puede verlo en el depurador de su navegador en la pestaña de red (el nombre depende del navegador) -> verá un "código de error 400 - solicitud incorrecta" y dentro de la solicitud verá la URL de solicitud y el mensaje de respuesta.
Lez

Respuestas:


39

Literalmente he desperdiciado unos días tratando de depurar este problema y finalmente obtuve una solución o solución definitiva, lo llamaría. ¡Espero que pueda salvar a algunas otras personas el dolor de cabeza que tengo actualmente!

Noté por primera vez que aparece este error cuando cambio de compilación del lado del cliente a compilación del lado del servidor en Stores->Configuration->Advanced->Developer->Frontend Development Workflow

Luego, determiné que customer-data.jsusa localStorage dentro del navegador para almacenar una variedad de información, para que pueda borrar el Magento Cache todo lo que quiera y aún tendrá problemas.

TLDR:

La solución en Google Chrome es presionar F12 para abrir la barra de herramientas del desarrollador, luego seleccione la pestaña Aplicación. Borre el almacenamiento local, el almacenamiento de sesión y las cookies. Vuelva a cargar la página y todo debería estar bien. Tendrá que hacer esto también en su página de administración.

Crédito: https://github.com/magento/magento2/issues/6410#issuecomment-243704461


55
¿Cómo arreglar esto para todos los usuarios de la tienda? Puedo ver que muchos usuarios ven este error en una nueva reliquia y supongo que no borrarán su almacenamiento local (pero probablemente abandonen la página).
bpoiss

Gracias por esta respuesta - me ahorró muchas horas :)
artwoz

También recibí este error, resultó que fue causado por encabezados ya enviados por otro módulo. Ayuda agregar un console.log (jqXHR) justo antes de que se produzca el error. Ver también magento.stackexchange.com/questions/198333/… en la parte inferior
Isolde

Intenté todas las cosas que dijiste pero el mismo problema. screencast.com/t/XEueQ00Foqs3
Pratik Mehta

Afortunadamente encontré esto antes de pasar muchas horas, intenté invalidar la sección mal nombrada en algún momento, y esto se almacenó en caché.
Joel Davey

1

Este error dice que los datos de origen no se especifican en el sectionSourceMapubicado en la Magento\Customer\CustomerData\SectionPoolclase. Los paypal-billing-agreementdatos se definen en el archivo vendor/magento/module-paypal/etc/frontend/di.xml:

<type name="Magento\Customer\CustomerData\SectionPool">
    <arguments>
        <argument name="sectionSourceMap" xsi:type="array">
            <item name="paypal-billing-agreement" xsi:type="string">Magento\Paypal\CustomerData\BillingAgreement</item>
        </argument>
    </arguments>
</type>

Por lo tanto, probablemente el módulo de PayPal se deshabilitó en la tienda o algún módulo de terceros lo ha deshabilitado de la manera no correcta.

Para depurar ese problema, abra el archivo vendor/magento/module-customer/CustomerData/SectionPool.phpy verifique qué secciones se están cargando en el getSectionsDatamétodo. Además, puede intentar llamar al método en getSectionsData(['paypal-billing-agreement'])algún lugar desde un código personalizado y verificar paso a paso por qué estos datos no se están cargando.


1
Parece que tengo el módulo de Paypal deshabilitado en la aplicación / etc / config.php pero no estaba deshabilitado "de la manera correcta", por lo que causó este problema. ¡Gracias por las sugerencias!
Lez

@Lez, me alegra ayudarte
Siarhey Uchukhlebau

1

Para mí, pude ver que el problema tenía algo que ver con el artículo que acababa de agregar al carrito.

ingrese la descripción de la imagen aquí

Así que ejecuté la siguiente consulta en la base de datos para eliminar todos los elementos de presupuesto de mi cuenta de usuario:

DELETE FROM quote WHERE customer_email = 'my.user.email@example.com';

Después de eso, el problema desapareció :)


0

Elimine los registros de las entradas de "Tema de Porto" de la tabla "tema". Los registros se crearán automáticamente nuevamente. Vuelva a asignar sitios web con este tema de Oporto y verifique.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.