Hintergrund
Ich entwickle ein Modul, das einige benutzerdefinierte Entitäten erstellt, die die für ein bestimmtes Produkt verfügbaren Optionen in Beziehung setzen / beeinflussen. So funktioniert das:
Wenn ein Produkt geladen wird, wird eine Abfrage für meine benutzerdefinierten Entitäten unter Verwendung von zwei der Produktattribute ausgeführt.
Ich verwende das Ergebnis der Abfrage und präsentiere es in zwei Schritten wie folgt (die erste Auswahl des Kunden wirkt sich auf die verfügbaren Optionen für die zweite aus):
Die Herausforderung
Folgendes muss ich im Frontend erreichen:
1. Überschreiben Sie zwei Logikelemente in der Produktansicht.phtml:
--- Zuerst:
<form action="<?php echo $this->getSubmitUrl($_product) ?>" method="post" id="product_addtocart_form"<?php if($_product->getOptions()): ?> enctype="multipart/form-data"<?php endif; ?>>
... Sie werden feststellen, dass enctype="multipart/form-data"
nur hinzugefügt $_product->getOptions()
wird true
, wenn dies der Fall ist , und meine Produkte werden sie tatsächlich nicht haben (dies würde also zurückkehren false
).
--- Zweite:
<?php if ($_product->isSaleable() && $this->hasOptions()):?>
<?php echo $this->getChildChildHtml('container1', '', true, true) ?>
<?php endif;?>
... auch, weil meine Produkte keine benutzerdefinierten Optionen haben, also $this->hasOptions()
zurückkehren false
und das Rendern von container1 verhindern würden .
2. Ersetzen / überschreiben / überschreiben Sie 'container1' - den untergeordneten Block (ist es ein Block?), Der den HTML-Code für die benutzerdefinierten Optionen "enthält", wie hier gezeigt:
Ich habe einige Beiträge gelesen, in denen behauptet wird, dass das view.phtml
direkte Kopieren und Bearbeiten nicht der richtige Weg ist, aber was ist die Alternative?
Zweitens habe ich gelesen, dass ich entweder remove
oder unSet
das container1
Stück kann - welche Methode soll ich verwenden und wie ersetze ich dann meine eigene richtig container1
?
Vielen Dank!
catalog.xml
es mit denPRODUCT_TYPE_xxxxxx
Griffen geht?