2009-06-17 12 views
5

Ich muss einen Weg finden, um den Wert eines benutzerdefinierten Attributs anstelle des "Produktnamens" zu zeigen, der im Bild unten gezeigt wird.Magento - Benutzerdefinierte Attribute in gruppierter Produkttabelle anzeigen

Grouped products table http://www.magentocommerce.com/images/uploads/grouped_prod_front.gif

Ich arbeite mit /app/design/frontend/default/defaultx/template/catalog/product/view/type/grouped.php

Der folgende Code nicht (funktioniert das benutzerdefinierte Attribut ist yawmade):

<?php if (count($_associatedProducts)): ?> 
<?php foreach ($_associatedProducts as $_item): ?> 
    <tr> 
     <td><?php echo $this->htmlEscape($_item->getYearmade()) ?></td> 

Jede Hilfe wäre willkommen.

EDIT: Also die Antwort erwies sich als ziemlich einfach. Du siehst, was ich oben nicht erwähnt habe, war, dass dort tatsächlich ausgegeben wurde ... aber das es nur eine Nummer war (zB: 52). Es stellte sich heraus, dass dies die ID für diesen benutzerdefinierten Attributwert war (es war ein Dropdown-Typ eines benutzerdefinierten Attributs).

So zusammenfassend
Dies funktioniert für benutzerdefinierte Attribute vom Typ Text:

echo $this->htmlEscape($_item->getYearmade()) 

Aber auch für alle anderen Arten von benutzerdefinierten Attribut (glaube ich), sollte die folgenden verwendet werden:

echo $this->htmlEscape($_item->getAttributeText('yearmade')) 

Ich hätte das ohne die beste Antwort von Alan Storm unten nicht entdeckt. Danke mein Herr.

+0

Diejenigen, die noch Antworten geben, beachten Sie, dass diese Frage vor 3 Jahren gepostet wurde. Die Codebase von Magento hat sich seitdem weiterentwickelt, also werden Ihre Ergebnisse natürlich anders aussehen. –

Antwort

3

Alle Magento-Modelle verfügen über eine "getData" -Methode, die ein php-Array von Schlüssel/Wert-Paaren zurückgibt. Versuchen Sie, diese an der Spitze Ihrer grouped.phtml Datei (nach $ _product definiert ist)

print('<pre>');print_r($_product->getData());print('</pre>'); 

sollten Sie eine Ausgabe, die etwa wie folgt aussieht.

Array 
(
    [store_id] => 1 
    [entity_id] => 3437 
    [entity_type_id] => 4 
    [attribute_set_id] => 27 
    [type_id] => grouped 
    [sku] => 
    [category_ids] => 
    [created_at] => 2009-04-16 03:37:51 
...  

So können Sie eine Reihe von Eigenschaften greifen und einfach den Schlüssel herausziehen. Sie können auch die magento getX- und setX-Methoden von Magento verwenden. Auf allen Magento-Modellen können Sie jede Eigenschaft in dem Datenfeld zugreifen, indem Sie eine Methode auf dem Kamel Fall Version des Namens basiert Aufruf

$created_at = $_product->getCreatedAt(); 
$_product->setCreatedAt($date); 

Also, was auch immer Ihre benutzerdefinierten Attributnamen ist, sollten Sie in der Lage zu bekommen Bei der Verwendung des oben genannten, und wenn Sie nicht sicher sind, nur print_r oder var_dump den Inhalt des Arrays von getData() zurückgegeben.

Schließlich, wenn das benutzerdefinierte Attribut auf einen der verwandten Produkten einfaches Produkt ist, will Sie werden etwas mehr wie

$_associatedProducts[0]->getCreatedAt(); 
+0

Ich kann keine benutzerdefinierten Attribute mit dem obigen Code erhalten. Ich mache etwas falsch? Ich habe eine benutzerdefinierte Kategorie namens "product_type" und ich möchte ihren Wert auf der Seite "grouped.phtml" zeigen. – Landitus

+0

Wie erstellen Sie das Produktobjekt? –

0

Von ver. 1.3. und in 1.4 müssen Sie auch verwenden $ _item nicht $ _product, für mich funktioniert das gut in gruppierbare Tabelle zu.

Beispiel:

<?php echo $_item->getAttributeText('your attribute'); ?> 
1

Ich hatte das gleiche Problem.

  1. Sie müssen lokalisieren grouped.phtml app/design/frontend/base/default/template/catalog/product/view/type/grouped.phtml

  2. das Einzelteil erhalten, Beispiel $_item[units]

  3. eine Zelle in der Tabelle hinzufügen und Echo $_item['units'];

  4. Das ist alles ein:)

Verwandte Themen