He actualizado la versión de Magento a 2.3.7. Después de eso, tengo un problema extraño en la página de pago que cuando llama a la función ajax, la URL se genera incorrectamente. antes era como
/rest/default/V1/guest-carts/AC72N37Vmo3uGMIXEVQfIDt1ubuZLJws/estimate-shipping-methods
pero después de actualizar la versión de Magento ahora es
/checkout/undefinedrest/default/V1/guest-carts/AC72N37Vmo3uGMIXEVQfIDt1ubuZLJws/estimate-shipping-methods
¿No estoy seguro de dónde se agrega este indefinido dentro de la URL?
Notas de investigación: -
La URL base segura e insegura está configurada correctamente. Lo revisé de nuevo
También navegué al archivo desde donde se genera esta llamada ajax, el archivo es vendor/magento/module-checkout/view/frontend/web/js/model/shipping-rate-processor/new-address.js
Aquí se genera storage.post de la llamada ajax y tiene serviceurl y payload como argumentos.
en la función getRates: si consola.log "serviceUrl", muestra la siguiente URL
rest/default/V1/guest-carts/FsS4QvllSq1vpuxZuC8ycQa0VRMOcQCy/estimate-shipping-methods
lo que parece ser correcto, la función storage.post() toma esto como un argumento y se llama a la solicitud ajax, que luego ingresa a la función .fail()
Entonces, lo que creo es que el problema es dónde se agrega la parte frontal de la URL para realizar la llamada ajax que es http://sitename.local/checkout/undefined ---> y aquí de alguna manera se agrega el indefinido que rompe toda la url
Otros usuarios también encuentran el mismo problema, pero aún no hay una solución disponible.
https://magento.stackexchange.com/questions/256273/undefined-rest-api-checkout-cart https://community.magento.com/t5/Magento-2-x-Programming/Magento2-Wrong-base-url -en-llamada-ajax/td-p/435435
¿Alguien puede ayudarme con esto?
Estoy respondiendo mi propia pregunta ya que pude solucionar el problema yo mismo.
No estoy seguro de si esta solución sería una solución general para todos los que enfrentan un problema similar, pero como en mi caso me ayudó a solucionar el problema, por lo que puede guiar a otros que enfrentan un problema similar, si la solución no es 100% precisa en su escenario. .
Así que en mi proyecto tenía un archivo como
app/design/frontend/Birdbrain/default/Magento_Theme/templates/page/js/require_js.phtmlque tenía el siguiente código dentro
<?php /** * Copyright © 2013-2017 Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ ?> <script> var require = { "baseUrl": "<?php /* @escapeNotVerified */ echo $block->getViewFileUrl('/') ?>" }; </script>Después de eliminar este archivo de la fuente, se solucionó el problema explicado en la pregunta anterior y no surgieron otros problemas al eliminarlo.
Pensamientos: - Cuando revisé mi sistema de control de versiones, descubrí que este archivo se agregó en 2017 y desde entonces no se realizaron cambios en él, por lo que después de actualizar la versión de Magento a 2.3.x, de alguna manera entró en conflicto con algunos códigos más recientes y ya no tenía sentido, por lo que eliminarlo solucionó el problema, al menos para mí.