Frage

Ich muss einen Weg finden, um den Wert eines benutzerdefinierten Attributs anstelle des „Produktname“ in das Bild, um zu zeigen, unten.


(Quelle: magentocommerce.com )

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

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

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

Jede mögliche Hilfe würde geschätzt.

EDIT: Also die Antwort stellte sich heraus, ganz einfach zu sein. Sie sehen, was ich nicht oben zu erwähnen war, dass es war in der Tat Ausgang ... aber das war es nur eine Zahl (zB: 52). Stellt sich heraus, das die ID für den benutzerdefinierten Attributwert war (es war ein Dropdown Art von 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'))

würde ich nicht ohne die trefflichsten Antwort entdeckt diese wurden von Alan Sturm bereitgestellt, unten. Danke Sir.

War es hilfreich?

Lösung

Alle Magento Modelle haben eine „getData“ Methode zur Verfügung, die eine PHP-Array von Schlüssel / Wert-Paare zurück. Versuchen Sie, diese an der Spitze Ihrer grouped.phtml Datei (nach $ _product definiert)

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

Sie sollten Ausgabe sehen, 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 und greifen nur den Schlüssel herausziehen. Sie könnten auch Methoden Komfort / magic getX und setX Magento nutzen. Auf allen Magento-Modellen können Sie jede Eigenschaft in dem Datenfeld zugreifen, indem ein Verfahren basierend auf dem Kamel Fall Version des Namens aufrufen,

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

, was auch immer Ihre benutzerdefinierten Attributnamen ist, sollten Sie in der Lage sein, sich an den oben verwenden, und wenn Sie sich nicht sicher sind nur print_r oder var_dump den Inhalt des Arrays zurück von getData ().

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

$_associatedProducts[0]->getCreatedAt();

Andere Tipps

Ich hatte das gleiche Problem.

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

  2. Holen Sie sich das Element, zB $_item[units]

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

  4. Das ist alles:)

Von ver. 1.3. und in 1.4 zu müssen Sie verwenden $ _ Artikel nicht $ _ Produkt , für mich das funktioniert gut in gruppierbaren Tabelle zu.

Beispiel:

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

Es gibt Plugins, die Ihre Lösung wirklich leicht lösen können. Sie können das Plugin hier finden, die Produktoptionen nimmt und zeigt sie in einem Raster: http: // www.magemechanics.com/product-grid-options.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top