Magento - إظهار السمات المخصصة في جدول المنتجات المجمعة
-
05-07-2019 - |
سؤال
أحتاج إلى إيجاد طريقة لإظهار قيمة السمة المخصصة بدلاً من "اسم المنتج" الموضح في الصورة أدناه.
(مصدر: 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();
نصائح أخرى
كان لي نفس المشكلة.
يجب عليك تحديد موقع grouped.phtml
app/design/frontend/base/default/template/catalog/product/view/type/grouped.phtml
الحصول على هذا البند، على سبيل المثال
$_item[units]
أضف خلية إلى الجدول والصق الصدى
$_item['units'];
هذا كل شئ :)
من الاصدار.1.3.وفي 1.4 أيضًا يجب عليك استخدامه $_item لا $_product, بالنسبة لي، هذا يعمل بشكل جيد في الجدول القابل للتجميع أيضًا.
مثال:
<?php echo $_item->getAttributeText('your attribute'); ?>
وهناك الإضافات التي يمكن أن تحل الحل حقا بسهولة. يمكنك العثور على البرنامج المساعد هنا يأخذ خيارات المنتج ويعرضها في شبكة: HTTP: // www.magemechanics.com/product-grid-options.html