Ein weiterer Beitrag im Rahmen einer Werbekampagne zur Bewerbung Ihres Empfehlungslinks. In der ersten und zweiten Veröffentlichung habe ich den Frontserver, den API-Server und zwei Hilfsdienste (Elasticsearch & Redis) angesprochen, die vom API-Server verwendet werden. In diesem Schritt habe ich versucht, einige Daten aus einem vorhandenen Magento-Projekt in meine Test-VSF-Anwendung hochzuladen.
Im dritten Schritt sind einige Fortschritte zu verzeichnen. Die PWA-Anwendung im Browser meldet keinen Fehler mehr und zeigt eine mehr oder weniger anständige Startseite an. Auch wenn nicht mit den Daten, die in meinem Magento-Projekt waren. Jede Veränderung ist besser als Stampfen.

Unter der Katze finden Sie eine Beschreibung, wie Sie Daten aus Ihrem Magento-Store in die Vue StoreFront-Anwendung hochladen, damit dem Client stattdessen Demodaten angezeigt werden. Ja, das Ergebnis ist wieder nicht sehr gut, aber für die Werbekampagne ist dies nicht das Wichtigste.
Zweck
Richten Sie die Datenübertragung von der Magento-Anwendung zur VSF-Anwendung ein.
Schema
Zu diesem Zeitpunkt haben die Komponenten, die an der Arbeit von VSF I beteiligt sind, in dieser Form dargestellt:

Arbeitsumgebung
In der aktuellen Iteration habe ich die mittlere Version des Linux Ubuntu 18.04 LTS 64-Bit-Servers (2x 2198 MHz CPU, 4 GB RAM, 10 GB Festplatte) verwendet, weil Die kleine Version wurde nach dem Starten aller Dienste langsamer, als vue-storefront
. Es ist unwahrscheinlich, dass irgendjemand daran zweifelt, dass 4 GB RAM doppelt so gut sind wie 2 GB.
Vorherige Schritte
Die Aktionen der vorherigen Schritte können mit dem folgenden Skript beschrieben werden:
Integrationsmöglichkeiten
Im Internet habe ich zwei Möglichkeiten für die Integration von Magento-Store und VSF gefunden:
- magento2-vsbridge-indexer : Magento-Modul, das direkten Zugriff auf Magento-Daten hat und während der Indexierung Informationen in Elasticsearch hochlädt;
- mage2vuestorefront : Eine eigenständige Anwendung, die Daten von Magento über die Web-API empfängt und auch auf Elasticsearch hochlädt.
Vorerst verzichte ich auf Fragen der Datenübertragung von Vue StoreFront nach Magento.
Gemessen an der Festschreibungszeit ist das erste Projekt lebhafter als das zweite, und die Entwickler selbst empfehlen , diesen Ansatz zu verwenden:
Verwenden Sie dieses Modul anstelle von mage2vuestorefront, wenn Sie Probleme mit der Indizierungsleistung haben. Beide Projekte werden derzeit unterstützt.
Daher berücksichtige ich die zweite Integrationsoption ( mage2vuestorefront
) nicht, obwohl sie in meinem Diagramm oben angezeigt wird.
VS Brücke
Installieren des Magento-Moduls:
$ composer config repositories.divante vcs https://github.com/DivanteLtd/magento2-vsbridge-indexer $ composer require divante/magento2-vsbridge-indexer $ composer config repositories.divante vcs https://github.com/DivanteLtd/magento2-vsbridge-indexer-msi $ composer require divante/magento2-vsbridge-indexer-msi
Nach der Installation des Moduls erscheinen neue Indizes:

VS Bridge-Konfiguration
Abschnitt "Allgemeine Einstellungen":

Abschnitt "Elasticsearch Client":

Abschnitt "Indexeinstellungen":

Abschnitt "Cache-Einstellungen erneut vornehmen":

Abschnitt "Katalogeinstellungen":

Daten in Elasticsearch füllen
Daten von Magento zu Elasticsearch werden beim Indizieren übertragen:
$ bin/magento indexer:reindex ... Vsbridge Product Indexer index has been rebuilt successfully in 00:00:01 Vsbridge Category Indexer index has been rebuilt successfully in 00:00:00 Vsbridge Attributes Indexer index has been rebuilt successfully in 00:00:02 Vsbridge Cms Block Indexer index has been rebuilt successfully in 00:00:00 Vsbridge Cms Page Indexer index has been rebuilt successfully in 00:00:04 Vsbridge Review Indexer index has been rebuilt successfully in 00:00:00 Vsbridge Tax Rule Indexer index has been rebuilt successfully in 00:00:00
Überprüfen Sie die Datenfüllung
$ curl "http://89.145.166.192:9200/_cat/indices?pretty&v" health status index uuid pri rep docs.count docs.deleted store.size pri.store.size yellow open vue_storefront_magento_2_1574139073 x-Ft7Lt6RCu073dBWuvbvQ 5 1 295 0 1.7mb 1.7mb yellow open vue_storefront_magento_1_1574139076 yGlA_GGqQu-T0vyxrLE07A 5 1 268 0 1.2mb 1.2mb
Konfigurieren von vue-storefront
und vue-storefront-api
In den VS Bridge-Einstellungen lautet das Präfix für Indizes in Elasticsearch vue_storefront_magento
, und die Storefront-ID wird als vue_storefront_magento
verwendet:

Entsprechend den Empfehlungen der Entwickler und analog zur Standardkonfiguration ( ~/vue-storefront/config/default.json
):
{ "elasticsearch": { "index": "vue_storefront_catalog" }, "storeViews": { "de": { "elasticsearch": { "index": "vue_storefront_catalog_de" } }, "it": { "elasticsearch": { "index": "vue_storefront_catalog_it" } } } }
Ich registriere mich in der lokalen Konfiguration für den ~/vue-storefront/config/local.json
( ~/vue-storefront/config/local.json
):
"elasticsearch": { "index": "vue_storefront_magento_1" }, "storeViews": { "de": { "elasticsearch": { "index": "vue_storefront_magento_1" } }, "it": { "elasticsearch": { "index": "vue_storefront_magento_2" } } }
und in der lokalen Konfiguration für den API-Server (``):
"elasticsearch": { ... "indices": [ "vue_storefront_magento_1", "vue_storefront_magento_2" ] }
Ich habe versucht, mich in der lokalen Front-Konfiguration zu registrieren:
"elasticsearch": { "index": "vue_storefront_magento" }
Analog zum Beispiel des Entwicklers, aber im Browser erhalte ich eine bereits vertraute Fehlerseite. Entweder fehlt Elasticsearch der Index vue_storefront_magento
, oder es ist etwas im vue_storefront_magento
.
Ich habe keine Indizes manuell erstellt, sondern das VS Bridge-Plug-in verwendet. Daher habe ich erwartet, dass alle erforderlichen Indizes erstellt werden, aber nein, alles war wie gewohnt. Daher füge ich das Suffix _1
zu elasticsearch.index
lokalen Front-Konfiguration hinzu.
Anwendungen neu erstellen und starten
$ pm2 stop all $ cd ~/vue-storefront && yarn build && yarn start $ cd ~/vue-storefront-api && yarn build && yarn start
Die PWA-Anwendung sollte unter der Adresse " http : //89.145.166.192∗000/ " verfügbar sein ( natürlich habe ich die Infrastruktur nach den Tests "getötet", sollte es also sein, aber nicht ) und sollte dem Bild, das ich habe, sehr ähnlich sein ganz am Anfang des Artikels veröffentlicht.
Fazit
Das Pairing nach "Magento-to-VSF" wird auf einem recht guten Niveau durchgeführt. Die Indizierung von Daten ist sowohl termin- als auch ereignisbezogen möglich (zumindest angekündigt). Es belastet zwei Punkte:
- Anbindung an die 5.x-Version von Elasticsearch. Ich musste nacheinander ein Downgrade von 7.x auf 6.x und von 6.x auf 5.x durchführen, bevor VS Bridge anfing, Daten auf ES hochzuladen. Wie stark ist VSF speziell an 5.x gebunden und was passiert, wenn die Entwickler von Elasticsearch die "fünf" nicht mehr unterstützen?
- Hardcode-Demofenster in der Standard-Front-Konfiguration. Grundsätzlich sollte die Standardkonfiguration Basisdaten enthalten, die nicht von der jeweiligen Anwendungsimplementierung abhängen, und die Konfiguration der
./config/local.json
sollte auf der Ebene ./config/local.json
. In diesem Fall wird klar, welche Daten beim Starten Ihrer Anwendung geändert werden müssen und welche für alle (die meisten) Implementierungen gelten.
Vielen Dank an alle, die es gelesen haben. Klicken Sie auf meinen Empfehlungslink und Gott gibt mir Kraft für den nächsten Schritt. VSF ist natürlich eine beeindruckende Anwendung, aber zu verstehen ist, als würde man durch einen Sumpf laufen. Er bekam ein Bein, das andere steckte fest.