Was ich bisher versucht habe
Wie der Titel beschreibt. Wie kann man verschiedene Layouts pro Produkt basierend auf einem Wert für dieses Produkt implementieren (in diesem Fall eine benutzerdefinierte EAV für die Produkteinheit)?
Zuerst dachte ich, ich würde einen benutzerdefinierten Produkttyp für diese Art von Produkten erstellen. Das würde gut funktionieren. Sie können die Produkttypen für vorhandene Produkte zwar nicht ändern.
Dann dachte ich, ich könnte ein neues Seitenlayout erstellen, obwohl Sie dem Produktlayout keinen Inhalt hinzufügen können.
Zuletzt dachte ich, ich würde einfach alle diese Produkte in eine Kategorie einfügen und dort die Produktansicht ändern (über Design> Layout Update XML), aber dies würde bedeuten, dass der Endbenutzer XML schreibt, was ich nach Möglichkeit vermeiden möchte. Gleiches gilt für das Ändern des XML-Designs für Design> Layout-Aktualisierung für jedes Produkt.
Andere Information:
Ich habe ein Magento-Modul erstellt, das das Produktbild durch eine andere Ansicht ersetzen soll. Derzeit habe ich (in meinem Modul) die Datei view / frontend / layout / catalog_product_view.xml mit meinem benutzerdefinierten Inhalt überschrieben (Entfernen der Originalbild- / Videoblöcke und Hinzufügen meiner eigenen Blöcke). Dies funktioniert einwandfrei, obwohl ALLE Produkte jetzt das neue Layout haben.
Alle Produkte sind derzeit einfache Produkte
$layout->getUpdate()->addHandle('your_handler_name');
, Ich verstehe den Handler nicht, ich habe auch F & E für den Layout-Handler, Ressourcen machen mich nicht verständlich. Wenn Sie mir helfen können ODER einige nützliche Links.your_handler_name.xml
your_handler_name
wäre benutzerdefinierter Name jeder Name, den Sie hier geben können, erstellen Sie einfach eine Datei mit diesem NamenSie können dies mit XML für Massenprodukte tun. Dafür müssen Sie den Helfer überschreiben und ein Attribut dafür erstellen. Lassen Sie sich von mir beschreiben.
Überschreiben Sie die Hilfsfunktion in Ihrem benutzerdefinierten Modul und ändern Sie sie in der Datei di.xml , um die Hilfsfunktion zu überschreiben.
app / code / YourCompany / YourModule / etc / di.xml
in der Datei YourCompany \ YourModule \ Helper \ Product \ view.php .
Hier habe ich ein benutzerdefiniertes Attribut für ein benutzerdefiniertes Layout-Handle hinzugefügt. Jetzt können Sie eine benutzerdefinierte Layoutdatei erstellen, um dieses Attribut zu verwenden.
Lassen Sie uns eine benutzerdefinierte Handle-Datei erstellen.
Erstellen Sie eine Layoutdatei in Ihrem benutzerdefinierten Design / Modul.
catalog_product_view_customlayout_1.xml
Hier können Sie Ihre benutzerdefinierten Änderungen festlegen. Es wird auf alle Produkte angewendet , deren Attibute-Wert " Ja " " Ja " ist.
quelle