Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

Page 1 of 2
Produktseite - Kategorie ID’s oder Namen von Produkt auslesen. 
 
mdpixels
Jr. Member
 
Total Posts:  6
Joined:  2010-06-22
 

Hallo alle,

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.

Über jede Hilfe wäre ich extrem dankbar.

Gruß aus München

 
Magento Community Magento Community
Magento Community
Magento Community
 
ZeOner
Member
 
Avatar
Total Posts:  55
Joined:  2008-03-06
Hannover
 

hallo,

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.

mfg

ZeOner

 
Magento Community Magento Community
Magento Community
Magento Community
 
mdpixels
Jr. Member
 
Total Posts:  6
Joined:  2010-06-22
 

Erstmal vielen dank für deine Antwort.

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 schaus mir mal an.

Danke nochmal.

 
Magento Community Magento Community
Magento Community
Magento Community
 
mdpixels
Jr. Member
 
Total Posts:  6
Joined:  2010-06-22
 

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.

Vielleicht hilft der Denkanstoss ja jemandem.

 
Magento Community Magento Community
Magento Community
Magento Community
 
ssimon
Jr. Member
 
Total Posts:  28
Joined:  2010-06-16
 

Bei sieht es etwa so aus (in product/view )

$_category      Mage::getModel"catalog/category" )->loadarray_pop$_product->getCategoryIds() ) );

war bisher recht zuverlässig, solange die Kategorie eindeutig ist.

 
Magento Community Magento Community
Magento Community
Magento Community
 
caffein
Member
 
Avatar
Total Posts:  34
Joined:  2010-04-30
 

Hi!

Ich hoffe Ihr könnt mir hier helfen! smile

Der Post ist schon älter, aber ich hätte eine ähnliche Frage!

Wie kann ich aus der Datenbank die aktuelle Produkt ID auslesen?
Wo in der Datenbank findet man denn die aktuelle Produkt ID?

catalog_product_website -> product_id ???

Wenn ja, wie kann ich den letzten aktuellen Wert auslesen und darstellen?

Danke & Gruß

 
Magento Community Magento Community
Magento Community
Magento Community
 
Siggi_Schmitz
Enthusiast
 
Avatar
Total Posts:  811
Joined:  2011-07-03
 

Du kannst das aktuelle Produkt mit Mage::registry(’current_product’) holen.
Die ID dann halt mit Mage::registry(’current_product’)->getId()

 
Magento Community Magento Community
Magento Community
Magento Community
 
caffein
Member
 
Avatar
Total Posts:  34
Joined:  2010-04-30
 

Danke für die schnelle Antwort!

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? wink

Gruß

 
Magento Community Magento Community
Magento Community
Magento Community
 
Siggi_Schmitz
Enthusiast
 
Avatar
Total Posts:  811
Joined:  2011-07-03
 

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?

 
Magento Community Magento Community
Magento Community
Magento Community
 
caffein
Member
 
Avatar
Total Posts:  34
Joined:  2010-04-30
 

Ich würde gerne die Anzahl der Produkte im Header darstellen!
(also die Anzahl der globalen Produktanzahl)

 
Magento Community Magento Community
Magento Community
Magento Community
 
Siggi_Schmitz
Enthusiast
 
Avatar
Total Posts:  811
Joined:  2011-07-03
 

Also man geht in eine Kategorie, die meinetwegen 100 Produkte hat, dann soll im Header die Anzahl ausgegeben werden, korrekt?
Dann versuch`s mit

Mage::registry(’current_category’)->getProductCount();

 
Magento Community Magento Community
Magento Community
Magento Community
 
caffein
Member
 
Avatar
Total Posts:  34
Joined:  2010-04-30
 

Aus ALLEN Kategorien! Nicht nur aus einer!

Also die Produktanzahl des gesamten Shops. smile

 
Magento Community Magento Community
Magento Community
Magento Community
 
Siggi_Schmitz
Enthusiast
 
Avatar
Total Posts:  811
Joined:  2011-07-03
 

Achsooo, ok, jetzt verstehe ich grin

Dann müßtest du alle Kategorien durchgehen und die Anzahl addieren, zb. mit:

$count 0;

foreach (
Mage::getModel(’catalog/category’)->getCollection() as $category{
    $count 
+= $category->getProductCount();
}

echo $count;

Sollte getProductCount nichts zurückgeben, dann mußt du die Zeile ändern zu:

$count += Mage::getModel(’catalog/category’)->load($category->getId())->getProductCount();

 
Magento Community Magento Community
Magento Community
Magento Community
 
caffein
Member
 
Avatar
Total Posts:  34
Joined:  2010-04-30
 

In beiden fällen bekomme ich eine Fehlermeldung.

Notice: Use of undefined constant ’catalog - assumed ‘ ’catalog’

btw: wir nutzen magnto 1.4.1.0 - eventl. ist das ja wichtig

 
Magento Community Magento Community
Magento Community
Magento Community
 
Siggi_Schmitz
Enthusiast
 
Avatar
Total Posts:  811
Joined:  2011-07-03
 

Ah sorry, sind die falschen Hochkommas bei catalog/category, ändere

Mage::getModel(’catalog/category’)

zu

Mage::getModel(’catalog/category’)

 
Magento Community Magento Community
Magento Community
Magento Community
 
caffein
Member
 
Avatar
Total Posts:  34
Joined:  2010-04-30
 

Du meinst sicherlich

Mage::getModel('catalog/category')

Funktioniert. Die Ausgabe zeigt 6304. Wir haben aber nur 1237 Produkte!?

Ich denke die Ausgabe ist im Prinzip richtig, da wir die Produkte in mehreren Kategorien anzeigen kommt es zu 6304 Produkten.

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top
Page 1 of 2