ich hab ein kleines Problem.
Wenn ich über das Kategorie-Menü auf ein Produkt komme kann ich ohne Probleme die Kategorie mit:
$_product->getCurrentCategory()->getName() oder was auch immer
auslesen.
Wenn ich allerdings vom Warenkorb komme habe ich darauf keinerlei Zugriff mehr, und somit geht mein ganzes Template den Bach runter.
Hat jemand ne ahnung wie ich trotz der Warenkorbverlinkung an die Kategorie des Produkts komme?
Ich suche jetzt schon ne ganze weile nach ner Lösung, finde aber ums verrecken nichts was mir weiterhilft.
getCategoryIds() scheint überhaupt nicht zu funktionieren in meinem Fall.
dein problem ist ein konzeptionelles problem von magento.
da es in magento möglich ist, ein produkt in beliebig vielen kategorien abzulegen, verlinkt magento z.b. aus dem warenkorb zwar auf das produkt, aber nicht auf das produkt in einer bestimmten kategorie, da es ja beliebig viele sein könnten.
dementsprechend gibt es zu dem zeitpunkt keine kategorie!
ein möglicher lösungansatz den ich bei uns im shop benutze:
ich habe den produkt controller überschrieben, welcher beim laden des produktes alle kategorien des produktes lädt, und die erste passende als aktive kategory setzt.
ein anderer ansatz wäre, dem produkt ein attribut mit seiner default kategorie zu spendieren und diese zu benutzen, wenn gerade keine aktive kategorie vorhanden ist.
Das mit dem extra Attribut habe ich mir auch schon überlegt, allerdings müssen die Jungs die dann den Shop verwalten schon mehr als genug eintragen. Deswegen habe ich das erstmal verworfen. Aber wenn ich mir das genauer überlege krieg ich das vielleicht durch eine modifikation im Backend automatisiert hin.
Ich habe das ganze jetzt mit einer direkten Datenbankabfrage gelöst weil es mir als einfachste möglichkeit erschien.
In der Tabelle: “catalog_category_product” sind die jeweiligen ID’s zugewiesen.
Da man über: $_product->getId() in der “product/view.phtml” IMMER an die Produkt-ID kommt beziehe ich mir nun mit dem einfachen SQL-Befehl:
“SELECT category_id FROM `catalog_category_product` WHERE product_id = $pid AND (category_id >= 3 AND category_id <= 7)”
die passende Oberkategorie des Produkts.
Ich glaub ich hab es falsch erklärt.
Ziel ist es die aktuelle Anzahl der Produkte auszulesen und auf der Website darzustellen.
“Es befinden sich momentan XXXX Produkte im Katalog”
Und nicht die ID des momentan angezeigten Produktes!
eventl so in der Art:
<?php // get current product from Mage:registry $currentproduct = Mage::registry('catalog_product_website');
// general product data echo $currentproduct->getProduct_id(); ?>
Nur müsste immer die letzte ID ausgelesen werden?
Oder liege ich damit völlig daneben?
An welcher Stelle willst du die Ausgabe machen? Auf ner Kategorieseite? Dann müßtest du nur die aktuelle Kategorie laden und dann die Anzahl der Produkte ausgeben, willst du das machen?