Magento - إظهار السمات المخصصة في جدول المنتجات المجمعة

StackOverflow https://stackoverflow.com/questions/1005394

  •  05-07-2019
  •  | 
  •  

سؤال

أحتاج إلى إيجاد طريقة لإظهار قيمة السمة المخصصة بدلاً من "اسم المنتج" الموضح في الصورة أدناه.

Grouped products table
(مصدر: magentocommerce.com)

أنا أعمل مع /app/design/frontend/default/defaultx/template/catalog/product/view/type/grouped.php

الكود أدناه لا يعمل (السمة المخصصة هي سنة الصنع):

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

سيكون موضع تقدير أي مساعدة.

يحرر:لذلك تبين أن الإجابة بسيطة للغاية.ترى ما فشلت في ذكره أعلاه هو أن هناك كان حقا الإخراج...لكنه كان مجرد رقم (على سبيل المثال:52).تبين أن هذا هو المعرف الخاص بقيمة السمة المخصصة (كان نوعًا منسدلًا للسمة المخصصة).

هكذا باختصار
يعمل هذا مع السمات المخصصة لنوع النص:

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

ولكن بالنسبة لجميع الأنواع الأخرى من السمات المخصصة (على ما أعتقد)، يجب استخدام ما يلي:

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

لم أكن لأكتشف هذا دون الإجابة الممتازة التي قدمها آلان ستورم أدناه.شكرا لك سيدي.

هل كانت مفيدة؟

المحلول

وجميع نماذج الماجنتو لديها "getData" طريقة متاحة، الذي سيعود فب-مجموعة من أزواج مفتاح / قيمة. تحاول ذلك في أعلى الملف grouped.phtml (بعد يعرف $ _product)

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

ويجب أن تشاهد الإخراج الذي يبدو شيء من هذا القبيل ما يلي.

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
...     

وهكذا، يمكنك انتزاع مجموعة من الخصائص ومجرد سحب مفتاح الخروج. يمكنك أيضا استخدام / سحر أساليب getX وsetX الراحة الماجنتو ل. على كل النماذج الماجنتو، يمكنك الوصول إلى أي ممتلكات في مجموعة البيانات عن طريق استدعاء أسلوب استنادا إلى إصدار حالة جمل من الاسم،

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

وهكذا، مهما كانت السمة المخصصة الاسم، يجب أن تكون قادرا على الحصول على ذلك باستخدام أعلاه، وإذا كنت غير متأكد من مجرد print_r أو var_dump محتويات مجموعة إرجاعها بواسطة getData ().

وأخيرا، إذا كان سمة مخصصة هي على واحد من المنتجات ذات الصلة منتج بسيط، فسوف يريد شيئا أشبه

$_associatedProducts[0]->getCreatedAt();

نصائح أخرى

كان لي نفس المشكلة.

  1. يجب عليك تحديد موقع grouped.phtmlapp/design/frontend/base/default/template/catalog/product/view/type/grouped.phtml

  2. الحصول على هذا البند، على سبيل المثال$_item[units]

  3. أضف خلية إلى الجدول والصق الصدى $_item['units'];

  4. هذا كل شئ :)

من الاصدار.1.3.وفي 1.4 أيضًا يجب عليك استخدامه $_item لا $_product, بالنسبة لي، هذا يعمل بشكل جيد في الجدول القابل للتجميع أيضًا.

مثال:

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

وهناك الإضافات التي يمكن أن تحل الحل حقا بسهولة. يمكنك العثور على البرنامج المساعد هنا يأخذ خيارات المنتج ويعرضها في شبكة: HTTP: // www.magemechanics.com/product-grid-options.html

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top