Vue Storefront: Importar directorio desde Magento 2

Finalmente, pude ver los datos de Magento (categor铆as y productos) en la aplicaci贸n Vue Storefront (VSF). Este es ya el cuarto art铆culo ( 1 , 2 , 3 ), en el que describo el proceso de explorar las posibilidades de integrar VSF con una tienda electr贸nica basada en Magento 2, y el primero donde los datos de Magento se deslizaron en el navegador del cliente.


KDPV


Debajo del gato hay un enlace a los scripts de implementaci贸n y una breve descripci贸n de los pasos.


Prop贸sito


Mostrar en la parte del cliente datos sobre categor铆as / productos obtenidos de Magento.


Esquema


Ahora las dependencias entre los componentes de la aplicaci贸n se me presentan as铆:


shemka


Ambiente de trabajo


En la iteraci贸n actual, nuevamente utilic茅 la versi贸n mediana del servidor Linux Ubuntu 18.04 LTS de 64 bits (2x CPU de 2198 MHz, 4 GB de RAM, disco de 10 GB) en la nube Exoscale .


Scripts de implementaci贸n


Puse los scripts para implementar los componentes de la aplicaci贸n en un proyecto separado: flancer64 / vsf_mage2_setup .


Pasos de implementaci贸n:


  1. Actualizaci贸n de un sistema operativo vac铆o, instalaci贸n de servicios y aplicaciones adicionales (Elasticsearch, Redis, yarn, ...) .
  2. vue-storefront .
  3. vue-storefront-api .
  4. mage2vuestorefront .
  5. Inicie la replicaci贸n de datos de Magento 2 a VSF .

Configuraci贸n de implementaci贸n


En el momento de escribir esto, la configuraci贸n de implementaci贸n se ve as铆:


 #!/usr/bin/env bash # ========================================================================= # Local configuration template. # Copy this file to `./cfg.local.sh`. # ========================================================================= export HOST_VSF="255.255.255.255" # ip address or domain name for VSF host (VSF Front/API, Elasticsearch & Redis) export HOST_MAGE="mage2.host.com" # ip address or domain name for Magento 2 host # address of REST API of source Magento instance export URL_MAGE_REST="http://${HOST_MAGE}/rest" export URL_MAGE_IMG="http://${HOST_MAGE}/media/catalog/product" export INDEX_NAME="vue_storefront_catalog" # Magento integration options # see: "How to integrate Magento2 with your local instance?" # at: https://medium.com/the-vue-storefront-journal/vue-storefront-how-to-install-and-integrate-with-magento2-227767dd65b2 export MAGE_CONSUMER_KEY="..." export MAGE_CONSUMER_SECRET="..." export MAGE_ACCESS_TOKEN="..." export MAGE_ACCESS_TOKEN_SECRET="..." export MAGE_CURRENCY_CODE="..." 

Implementaci贸n de aplicaciones


Clono las secuencias de comandos para implementar los componentes en un host limpio y establezco la configuraci贸n de implementaci贸n local:


 $ cd ~ $ git clone https://github.com/flancer64/vsf_mage2_setup.git $ cd vsf_mage2_setup/ $ cp cfg.init.sh cfg.local.sh $ nano cfg.local.sh ... 

Despu茅s de eso ejecuto los scripts de implementaci贸n, del primero al cuarto:


 $ cd ~/vsf_mage2_setup/ $ bash ./bin/step01_env.sh $ bash ./bin/step02_vsf_front.sh $ bash ./bin/step03_vsf_api.sh $ bash ./bin/step04_mage2vsf.sh 

El contenido de los scripts se puede ver en github'e. Como resultado, los siguientes componentes se instalar谩n y configurar谩n en un host vac铆o:


  • B煤squeda el谩stica
  • Redis
  • vue-escaparate
  • vue-storefront-api
  • mage2vuestorefront

Las configuraciones de componentes se pueden ver en los scripts de implementaci贸n adecuados.


Script de replicaci贸n de datos Magento2 => VSF


En el cuarto paso, ~/mage2vuestorefront/src/run.sh un script de replicaci贸n de datos ~/mage2vuestorefront/src/run.sh Lo doy en su totalidad (con la excepci贸n de los datos confidenciales):


 #!/usr/bin/env/bash # Exit immediately if a command exits with a non-zero status. set -e ROOT=$(cd "$(dirname "$0")/" && pwd) export TIME_TO_EXIT="2000" # Setup connection to Magento export MAGENTO_CONSUMER_KEY="87...20l" export MAGENTO_CONSUMER_SECRET="7f...95x" export MAGENTO_ACCESS_TOKEN="ox...lq3" export MAGENTO_ACCESS_TOKEN_SECRET="5d...6o0" # Setup default store export MAGENTO_URL="http://mage2.host.com/rest" export INDEX_NAME="vue_storefront_catalog" # Perform data replications node --harmony ${ROOT}/cli.js taxrule --removeNonExistent=true node --harmony ${ROOT}/cli.js attributes --removeNonExistent=true node --harmony ${ROOT}/cli.js categories --removeNonExistent=true node --harmony ${ROOT}/cli.js productcategories node --harmony ${ROOT}/cli.js products --removeNonExistent=true 

Replicaci贸n de datos


Script ./bin/step05_sync_data.sh :


 #!/usr/bin/env/bash ## ************************************************************************ # Script to synchronize data between Magento2 and VSF. ## ************************************************************************ # shellcheck disable=SC1090 # root directory (set before or relative to the current shell script) DIR_ROOT=${DIR_ROOT:=$(cd "$(dirname "$0")/../" && pwd)} # Exit immediately if a command exits with a non-zero status. set -e echo "========================================================================" echo "Read local configuration." echo "========================================================================" . "${DIR_ROOT}/cfg.local.sh" echo "========================================================================" echo "Rebuild indexes and get data from Elasticsearch." echo "========================================================================" cd ~/mage2vuestorefront/src bash run.sh echo "========================================================================" echo "Reconfigure VSF API." echo "========================================================================" cd ~/vue-storefront-api rm -f ./var/catalog.json npm run dump npm run db rebuild -- --indexName="${INDEX_NAME}" 

El script ~/mage2vuestorefront/src/run.sh recupera datos de Magento 2 accediendo a la API web de Magento, por lo que no funciona con bastante rapidez. Los desarrolladores de VSF tienen una alternativa ( magento2-vsbridge-indexer ), la us茅 en un art铆culo anterior .


Despu茅s de transferir datos de Magento 2 a Elasticsearch, debe actualizar la configuraci贸n de la API de VSF.


Todo esto se hace as铆:


 $ cd ~/vsf_mage2_setup/ $ bash ./bin/step05_sync_data.sh 

Conclusi贸n


Bueno, las categor铆as y productos de Magento se han "infiltrado" en la aplicaci贸n VSF. Ahora debe configurar el movimiento inverso, de modo que los datos del VSF (cesta, pedidos) ingresen a Magento 2 y aseg煤rese de que los clientes registrados en Magento 2 tambi茅n puedan iniciar sesi贸n en VSF.


Referencias


Source: https://habr.com/ru/post/478544/


All Articles