Vorher muss ich sagen: Ich bin insgesamt n00b auf Magento und was ich wissen muss, ist eher eine "gängige Praxis" oder ein "Standard" darüber, wie etwas in Magento erreicht wird, da ich (in Rekordzeit) a beibehalten muss Magento-Distribution (vielleicht haben die vorherigen Entwickler eine schmutzige Methode entwickelt, um das zu tun, was ich fragen werde, aber wenn ich die Standardmethoden nicht kenne, habe ich noch weniger Chancen, die schmutzigen zu erraten). Für das unten Erklärte erwarte ich nicht, dass Sie den Nagel getroffen haben, aber geben Sie mir eine Anleitung dazu.
Wir werden sehen...
Wenn ich eine Standardsuchabfrage an /index.php/catalogsearch/result/?q= sende, finde ich Produkte, die in vielen "Bundesstaaten" nicht vorhanden sind. Mit "Zuständen" meine ich mögliche diskrete Werte des Attributs "estado" (ein benutzerdefiniertes Attribut für meine Produkte).
Wie ich sehen kann, werden Produkte mit bestimmten Werten für "estado" nicht in den Ergebnissen angezeigt (selbst wenn die Sichtbarkeit so eingestellt ist, dass diese Produkte in die Suchergebnisse aufgenommen werden).
Frage : Gibt es einen Ort, an dem ich einen benutzerdefinierten Filter für meine Produktliste einrichten kann (wie aus der Suchabfrage hervorgeht), damit ich nur Produkte in einem bestimmten Zustand halten kann? Was unterstützt Magento diesbezüglich standardmäßig?
Für "Ort" meine ich eine Option im Admin-Backend oder als allerletzte Option einen Teil von Code, Ereignis, Rückruf, Hook, Interceptor, Middleware oder was auch immer (ich bin ein n00b, daher kenne ich das wahre nicht Der in Magento verwendete Begriff wird in diesen Fällen verwendet, um die Abfrage abzufangen.
Anmerkungen : In app / design / frontend / caramel / template / catalog / product / list.phtml lauten die ersten Zeilen vor der Iteration:
<?php
$_productCollection=$this->getLoadedProductCollection();
$_helper = $this->helper('catalog/output');
?>
<?php if(!$_productCollection->count()): ?>
<p class="note-msg"><?php echo $this->__('There are no products matching the selection.') ?></p>
<p>No encontraste lo que buscabas, <a href="<?php $_SERVER['HTTP_HOST']?>/index.php/pidenos?tipo=pidenos">pídenos</a> y lo buscamos por ti.</p>
<?php else: ?>
<!-- more code here ... -->
Und wie ich sehen kann, wird der Filter hier nicht angewendet, sondern kommt von woanders her, und ich möchte wissen, woher er (normalerweise) kommt.
quelle
Antworten:
in dieser Datei Magento Ausgabe Ergebnissammlung mit allen Filtern, Sortierung, Paginierung usw.
Wählen Sie "Sammlung löschen" (Methode getProductCollection) und wenden Sie dann den Katalogsuchfilter (wo Bedingung) für diese Sammlung und Routensammlung auf die geschichtete Navigation an.
** Sie können
<?php echo $_productCollection->getSelect() ?>
in der Vorlage für die Ausgabe der aktuellen SQL-Abfrage in die Datenbank verwendenquelle