Zum Einrichten eines Magento-Shops müssen nicht nur selbstinstallierbare Erweiterungen entwickelt werden, sondern es sind auch viele manuelle Eingaben erforderlich, z. B. das Erstellen von Attributen, Kategorien, Produkten, CMS-Seiten für Preisregeln usw. die Änderungen an der Systemkonfiguration.
Ich möchte Sie dabei unterstützen, die beste Strategie für die Bereitstellung eines Magento-Stores von der Entwicklung über die Bereitstellung bis hin zur Produktionsumgebung zu skizzieren.
Eine meiner Strategien ist das Schreiben eines "Bereitstellungsmoduls", mit dem die oben genannten Entitäten programmgesteuert erstellt werden. Dies ist jedoch eine sehr zeitaufwendige Aufgabe, und manchmal scheint es mir ein wenig übertrieben zu sein.
Vor kurzem habe ich begonnen, mit Selenium IDE Admin-Aufgaben zu reproduzieren, aber die Zeit, die zum Einrichten aller Testsuiten erforderlich ist, ist nicht weit von der oben genannten Zeit entfernt.
Eine optimale Lösung könnte die Verwendung eines Moduls sein, mit dem Sie einen Schnappschuss eines Magento-Systems erstellen und auswählen können, was Sie bereitstellen möchten.
Damit:
- Was ist Ihre Strategie für die Bereitstellung?
- Gibt es ein Modul, das einen Schnappschuss eines Magento-Systems erstellen kann, mit dem Sie auswählen können, was Sie bereitstellen möchten?
- Wenn es ein solches Modul nicht gibt und es eine vernünftige Lösung darstellt, ist jemand daran interessiert, seinen Beitrag zur Entwicklung dieses Moduls zu leisten?
Danke!
Antworten:
Meine Meinung ist, alles zu schreiben. Normalerweise habe ich ein Basis-Konfigurationsmodul für alles, was funktional nicht direkt mit einem bestimmten Modul zusammenhängt. (Beispiel: Benutzerdefinierte URL wird für die vorherige Site-URL in die neue Site-URL umgeschrieben)
Die Denkweise dahinter ist, dass, wenn die Site mit einer neuen Datenbank neu installiert werden muss, alles so zurückkommt, wie Sie es hatten. Dies hilft auch darin, dass ich die uat-Site regelmäßig mit einer Kopie der Live-Datenbank aktualisiere. Die Module in uat arbeiten dann weiter, während sie sich wieder in ihre Konfiguration einfügen.
Änderungen an Portokosten, Warenkorbregeln usw. (im Grunde genommen Dinge, die Kunden selbst in admin verwalten) gelten als "flüchtige Daten" und werden nicht in Skripten erfasst. Dies beinhaltet Produktdaten. Der Kunde hat die Option und wird aufgefordert, neue Importe zuerst auf der uat-Site zu testen.
Kunden werden angewiesen, keine Attribute zu erstellen, sondern diese über eine Ticketanfrage erstellen zu lassen. Auf diese Weise kann ich auch Informationen darüber sammeln, was der Client für das Attribut beabsichtigt, und manchmal habe ich einen besseren Vorschlag oder kann besseren Code erstellen, da ich weiß, welche Attribute vorhanden sind. Außerdem kann ich anhand auswählbarer Attribute sicherstellen, dass die Daten korrekt sind reinigen.
Ja, Skripterstellung dauert länger, aber es wird viel länger dauern, um die Konfigurationseinstellungen einer ganzen Site später manuell neu zu erstellen. Es kann auch peinlich sein, wenn Sie etwas vergessen und verursachen, dass die Site nicht richtig funktioniert, oder wenn ein neuer Entwickler auf einer lokalen Site arbeitet, auf der einige wichtige Konfigurations-Setups fehlen.
quelle
Ich hatte vor einigen Monaten einige Nachforschungen angestellt. Hier sind die Websites, auf die Sie verweisen können.
Magento-Basis-URLs undEntwicklungs-
/ Staging-InstallationenMagento-Entwicklung und -BereitstellungMagento Git-Handbuch und Arbeitsablauf
Schnelleres Dumping einer Magento-MySQL-Datenbank für Branching
quelle
Ich möchte mich bei Ihnen allen bedanken, da mich Ihre Überlegungen dazu inspiriert haben, eine Erweiterung mit dem Namen "Mageploy" zu entwickeln, mit der das Problem der synchronen Verwaltung verschiedener Umgebungen gelöst werden soll.
http://www.mageploy.com
Mageploy muss noch erweitert, gut dokumentiert und vollständig getestet werden, auch wenn ich es bereits in einigen Projekten mit einigen Vorteilen verwende.
Es ist Open Source und jede Hilfe oder jeder Vorschlag wird geschätzt.
Grüße
quelle
In Bezug auf das Installieren von Skripten und das Erstellen von Entitäten bin ich der Ansicht, dass ein Modul, wenn es von einem Modul benötigt oder erwartet wird, als Teil eines Installationsskripts erstellt werden sollte.
In letzter Zeit verwenden wir in Bezug auf Entwicklung / Phase / Produktion die Staging-Site als Masterkopie der Datenbank für Inhalte, da dies bedeutet, dass der Client zusammenarbeiten kann. In der Vergangenheit war es wahrscheinlich das größte Problem, den Inhaltseintrag mit dem Kunden zu koordinieren, insbesondere im Hinblick auf das Hochladen von Produkten.
Wie haben Sie gedacht, dass der Schnappschuss funktionieren würde? Ich denke, in einer idealen Welt hätten Sie ein Tool, das den Unterschied zwischen zwei Datenbanken für bestimmte Typen (Produkte, Kategorien, CMS usw.) aufzeigt und es Ihnen ermöglicht, die Änderungen ineinander zu verschmelzen, aber mir ist nichts verfügbares wie Das.
quelle
Meiner Meinung nach hat das Erstellen und Bearbeiten von Attributen, Kategorien, Produkten und Preisregeln nichts mit einer "Bereitstellungsstrategie" zu tun. All diese Artikel sind für einen Shop ziemlich einzigartig und erfordern in den meisten Fällen ein angemessenes Maß an Analyse und Recherche der von Ihnen angebotenen Produkte verkaufen werden.
Wenn Sie "one size fits all" -Shops mit einer ähnlichen Konfiguration aller von Ihnen genannten Elemente erstellen, können Sie einfach einen "Snapshot" -Export Ihrer Datenbank durchführen, nachdem Sie alle erforderlichen Einstellungen für jeden Shop vorgenommen haben.
quelle
Ich möchte zwei hervorragende zeitsparende Tools hinzufügen:
quelle