Programmatische Möglichkeiten, mit der Erweiterung zu arbeiten

Geändert am Mi, 14 Jun, 2023 um 10:02 VORMITTAGS

M2E Pro basiert auf Magento-Kernfunktionalität. Das Modul identifiziert alle Produkt-Updates, die über die Magento-Schnittstelle vorgenommen wurden und synchronisiert sie auf den Kanälen. 

Es ist auch möglich, Magento Produktdaten (Menge, Preis, Status usw.) ohne Verwendung der Magento-Kernfunktionalität zu aktualisieren. Aber M2E Pro erkennt nicht die Änderungen, falls sie über folgende gemacht werden:

  • direkte SQL-Injektionen

  • verschiedene Import/Export/Update-Tools.

Es gibt zwei programmatische Methoden, um M2E Pro über Änderungen der Magento Produktdaten auf dem Laufenden zu halten:

  • Objektmethode (Modell) beobachtet die Änderungen in allen Magento Produkt-Attributen und informiert M2E Pro darüber. 

  • Strukturelle Methode (Modell) verfolgt die Änderungen nur in den wichtigsten Magento-Produkteigenschaften, wie Preise, Menge und Status. Dann informiert es M2E Pro über diese Änderungen.

Um die Modelle in Ihrem Magento-Dateisystem zu finden, folgen Sie diesem Pfad:

app/code/Ess/M2ePro/PublicServices

Wenn Sie Magento Produkt-Informationen mit Hilfe des Magmi Import-Tools aktualisieren, empfehlen wir ein dediziertes M2E Pro Plug-in. Es ermöglicht die korrekte Wiedergabe der Produkt-Updates.

Objektmethode

Die Objektmethode erlaubt es Ihnen, Änderungen in allen Attributen zu verfolgen, die in den Magento Product Einstellungen verwendet werden. Es löst automatisches Hinzufügen/Entfernen von Produkten aus M2E Pro Listings (Regeln automatisch hinzufügen/entfernen), sowie Liste, Relist, Stop, und alle verfügbaren Optionen von Revise Rules in der Synchronisierungsrichtlinie.

Diese Methode beginnt die Abholung von Änderungen ab dem Zeitpunkt der Registrierung Magento Produkte (d.h. fügen Sie sie zur Beobachtung hinzu).

Code-Snippet zum Erstellen eines M2E Pro Objektmodells

Das folgende Code-Snippet zeigt, wie ein M2E Pro Object Model erstellt wird.

// $this->_objectManager Instanz von \Magento\Framework\ObjectManagerInterface

$model = $this->_objectManager->create('\Ess\M2ePro\PublicServices\Product\ObjectChange');

// Sie haben eine Produkt-ID für die Beobachtung

$model->observeProduct(561);

// Sie haben '\Magento\Catalog\Model\Product' Objekt für die Beobachtung

$product = $this->productFactory->create();

$product->load(561);

$model->observeProduct($product);

// Änderungen an diesen Produkten über direkte sql machen

$model->applyChanges();

Wie die Objektmethode verwendet wird

Folgen Sie diesen Schritten, um ein M2E Pro Object Modell richtig zu implementieren und es die Erweiterung über alle Änderungen von Magento Produkt Daten zu informieren. Bevor Sie beginnen, überprüfen Sie das Code-Snippet oben.

Schritt 1. Erstellen Sie ein M2E Pro Objektmodell. 

Schritt 2. Registrieren Sie die Magento-Produkte, in denen Sie Änderungen beobachten möchten. Es gibt zwei Möglichkeiten, dies zu tun – entweder verwenden Sie die $model->observeProdukt Methode und geben Sie die Produkt-ID durch sie oder verwenden Sie ein Objekt der Klasse ‘\Magento\Catalog\Model\Product’.

Schritt 3. Sobald die Produkte registriert sind, können Sie Daten für diese Produkte mithilfe von SQL-Injektionen oder auf andere Weise manipulieren.

Schritt 4. Initiieren Sie die applyChanges() Methode für alle registrierten Produkte. Während diese Methode läuft, beobachtet M2E Pro automatisch alle Produktänderungen, die außerhalb von Magento Core-Modellen entstanden sind.

Wichtig! Wir empfehlen nicht, für jedes Produkt ein individuelles M2E Pro Objektmodell zu erstellen. Die beste Praxis hier ist, alle erforderlichen Magento-Produkte zu registrieren, die notwendigen Änderungen vorzunehmen und die applyChanges()-Methode für alle diese Produkte am Ende initiieren. Auf diese Weise werden Sie für jedes Produkt einzeln eine Spritze statt eine Vielzahl von Spritzen herstellen.

Außerdem ist die Objektmethode für eine große Anzahl von Produktänderungen (z.B. in 10.000) nicht geeignet, da sie sehr ressourcenaufwendig ist. Diese Methode beobachtet Änderungen in allen Magento-Attributen und verlangsamt die Ausführung des Codes. Infolgedessen funktionieren Ihre Import/Update-Tools (falls vorhanden) mit geringem Tempo.

Strukturelle Methode

Mit der strukturellen Methode können Sie M2E Pro über Änderungen an bestimmten Eigenschaften Ihrer Magento-Produkte informieren, wie Preise, Menge, und Status.

Diese Methode erfordert nur Benachrichtigungen, um Änderungen an bestimmten Magento Produktdaten zu bestätigen.

Strukturelle Methode löst die folgenden automatischen Aktionen von M2E Pro aus: 

  • Liste, Relist, Stop-Regeln der Synchronisierungsrichtlinie

  • Preis/Mengenrevise Regeln

Der Rest der automatischen Aktionen wird nicht gestartet, wenn Sie das Strukturmodell verwenden.

Code-Snippet zum Erstellen eines M2E Pro Objektmodells

Das unten stehende Code-Snippet zeigt, wie sich ein M2E Pro Strukturmodell hinsichtlich Preis, Menge und Status ändert.

// $this->_objectManager instance of \Magento\Framework\ObjectManagerInterface

$model = $this->_objectManager->create('\Ess\M2ePro\PublicServices\Product\SqlChange');

// notify M2E Pro about some change in product with ID 17

$model->markProductChanged(17);

// make price change to product with ID 18 and then notify M2E Pro

$model->markPriceWasChanged(18);

// make QTY change to product with ID 19 and then notify M2E Pro

$model->markQtyWasChanged(19);

// make status change to product with ID 20 and then notify M2E Pro

$model->markStatusWasChanged(20);

// make attribute 'custom_attribute_code' value change from 'old' to 'new' in product with ID 21

// in store with ID 1 and then notify M2E Pro

$model->markProductAttributeChanged(21, 'custom_attribute_code', 1, 'old', 'new');

$model->applyChanges();

Wie man die strukturelle Methode benutzt

Folgen Sie diesen Schritten, um ein M2E Pro Strukturmodell richtig zu implementieren und es die Erweiterung über die einzelnen Magento Produkt-Änderungen zu informieren. Bevor Sie beginnen, überprüfen Sie das Code-Snippet oben.

Schritt 1. Erstellen Sie ein M2E Pro Strukturmodell. Sie können wählen, ob Sie Änderungen auf zwei Arten erkennen möchten:

  • $model->markPriceWasChanged / $model->markQtyWasChanged / $model->markStatusWasChanged – wenn Sie nur Daten bearbeiten müssen

  • $model->markProductChanged – wenn Sie Daten in allen drei Magento-Attributen auf einmal bearbeiten müssen

Schritt 2. Änderungen an Magento Product Attributes vornehmen (zum Beispiel über direkte SQL-Anfragen).

Schritt 3. Initiieren Sie die applyChanges() Methode des Strukturmodells für alle Produkte. Während diese Methode läuft, beobachtet M2E Pro automatisch alle Produktänderungen, die außerhalb von Magento Core-Modellen entstanden sind.

Wichtig! Wir empfehlen nicht, für jedes Produkt ein individuelles M2E Pro Strukturmodell zu erstellen. Die beste Praxis hier ist es, ein Modell für alle benötigten Magento-Produkte zu erstellen die notwendigen Änderungen vornehmen und die applyChanges()-Methode für alle diese Produkte am Ende einleiten. Auf diese Weise werden Sie für jedes Produkt einzeln eine Spritze statt eine Vielzahl von Spritzen herstellen.

Benutzen Sie immer das Strukturmodell für eine große Anzahl von Magento-Produkten Änderungen. Verglichen mit der Objekt-Methode funktioniert die strukturelle Methode schneller und ist nicht ressourcenschonend. 

Benutzen Sie diese Methode nicht, wenn Ihr System alle automatischen M2E Pro Aktionen nutzt.

Anstelle von programmatischen Methoden Sie können die Track Direct Database Changes Option aktivieren, um den Magento Produktpreis und die Menge der Änderungen zu erkennen, die ohne die Kernfunktionalität von Magento vorgenommen wurden. Klicke hier um detailliert über diese Option zu erfahren.

Objektmethode vs Strukturelle Methode

Dieser Vergleich kann Ihnen helfen, herauszufinden, welche Methode am besten funktioniert, je nach Ihren Bedürfnissen die Anzahl der Magento-Produkte und die Art der Änderungen, die Sie vornehmen, verfügbare Systemressourcen, etc.

Kriterium

Objektmethode

Strukturelle Methode

Kriterium

Objektmethode

Strukturelle Methode

Magento Produktdatenänderungen für die Verfolgung verfügbar

Jedes Attribut in den Magento Produkteinstellungen verwendet

Nur Preise, Menge und Statusattribute in Magento

Geeignet für große Magento-Inventare 

Nein

Ja

Schwierigkeitsgrad

Einfacher zu implementieren

Komplexer ist, erfordert tiefgreifende technische Fertigkeiten

Betriebsgeschwindigkeit

Langsam

Schneller

Auswirkung auf Systemressourcen

Ressourcenintensiv

Erzeugt keine erhebliche Belastung des Systems

War dieser Artikel hilfreich?

Das ist großartig!

Vielen Dank für das Feedback

Leider konnten wir nicht helfen

Vielen Dank für das Feedback

Wie können wir diesen Artikel verbessern?

Wählen Sie wenigstens einen der Gründe aus
CAPTCHA-Verifikation ist erforderlich.

Feedback gesendet

Wir wissen Ihre Bemühungen zu schätzen und werden versuchen, den Artikel zu korrigieren