การจัดการคุณสมบัติของผลิตภัณฑ์ที่จัดกลุ่ม


9

ฉันกำลังทำงานเพื่อสร้างร้าน Magento ใหม่ (นี่เป็นครั้งแรกของฉันกับ Magento)

ฉันต้องการจำลองร้านค้าที่มีอยู่สำหรับหน้าผลิตภัณฑ์ของฉันอย่างน้อยก็ในรูปแบบ:

http://www.panamericantool.com/cobalt-drills/drill-stops.html

http://www.panamericantool.com/screw-driver-bits/paint-cutters.html

ฉันพบว่าฉันต้องใช้ผลิตภัณฑ์ที่จัดกลุ่มกับผลิตภัณฑ์ที่เรียบง่ายเพื่อสร้างสิ่งที่ฉันทำ

ในตัวอย่างข้างต้นแต่ละผลิตภัณฑ์มีคุณลักษณะแยกกันฉันถือว่าสิ่งเหล่านี้ทำผ่านชุดคุณลักษณะที่แตกต่างกันใน Magento

อย่างไรก็ตามพวกเขาจะแสดงส่วนหัว / ค่าของตารางที่แตกต่างกันในธีมได้อย่างไร

ฉันรู้ว่าฉันสามารถทำได้->getAttributeName()หรือ->getAttribute('attribute_code')ในgrouped.phtmlไฟล์ แต่สิ่งนี้จะส่งผลในจำนวนที่มากมายif (->getAttributeName() != '')...และฉันต้องเปลี่ยนแม่แบบเมื่อเพิ่มมากขึ้น

ฉันแน่ใจว่ามีวิธีการรับคุณลักษณะทั้งหมดและวนรอบพวกเขา แต่แล้วคุณจะแยกความแตกต่างระหว่างพูดmeta_descriptionคุณลักษณะ ( $_product->getData()วิธีกลับด้วยวิธี) และคุณลักษณะที่ฉันต้องการแสดงในตารางได้อย่างไร

ฉันจะทำสิ่งที่คล้ายกับสิ่งที่พวกเขามีได้อย่างไร

ฉันยังกังวลเกี่ยวกับประสิทธิภาพการทำงานร้านจะมีผลิตภัณฑ์ 5k ที่เปิดตัวอาจเติบโตเป็น 25k-30k เมื่อเราเพิ่มสต็อกที่เหลือของเรา หลายสิ่งเหล่านี้ต้องการคุณสมบัติที่แตกต่างกัน แต่ฉันเดาว่าฉันสามารถแบ่งปันคุณลักษณะระหว่างชุดคุณลักษณะโดยไม่มีปัญหาประสิทธิภาพมากเกินไป


ปรับปรุง:

ฉันพบสิ่งนี้เพื่อรับคุณลักษณะของผลิตภัณฑ์ทั้งหมด แต่ฉันก็ยังไม่รู้วิธีง่ายๆในการแสดงค่าบางอย่างในตารางผลิตภัณฑ์ที่จัดกลุ่ม

$attributes = Mage::getModel('catalog/product_attribute_api')->items($_product->getAttributeSetId());
foreach($attributes as $_attribute){
    print_r($_attribute);
}

ทำไมไม่ใช้คุณสมบัติ "มองเห็นได้ในมุมมองผลิตภัณฑ์บน Front-end" ของแอตทริบิวต์เพื่อพิจารณาว่าจะแสดงในหน้าผลิตภัณฑ์หรือไม่
BlueC

คำตอบ:


2

นี่คือสิ่งที่คุณต้องการ:

$product->getResource()->getAttribute('attribute_code')->getStoreLabel();

แต่นี่จะได้รับคุณลักษณะเดียวฉันต้องการวิธีแสดงคุณลักษณะที่แตกต่างกันสำหรับผลิตภัณฑ์ต่าง ๆ - ตามลิงก์ที่ฉันรวมไว้ใน OP หรือไม่
Tom Green

2

ทำไมไม่สร้างแอททริบิวที่บอกให้แอททริบิวแสดง

ฉันสิ้นสุดการสร้างโมดูลที่โหลดค่าของแอตทริบิวต์ข้อความสองรายการสำหรับผลิตภัณฑ์ที่จัดกลุ่มซึ่งเป็นสตริงรหัสแอตทริบิวต์ เป็นผู้ช่วยหลักที่ Explodes สตริงรายการแอ็ตทริบิวต์และวนซ้ำเพื่อโหลดข้อมูลแอ็ตทริบิวต์ผลิตภัณฑ์ที่เกี่ยวข้อง

สร้างคุณลักษณะที่ฉันเรียกว่าของฉัน:

grouped_attr_array

เพิ่มแอททริบิวให้กับแอททริบิวต์การออกแบบของผลิตภัณฑ์ที่จัดกลุ่มในชุดผู้ดูแลระบบจากนั้นเป็นแอททริบิวที่คั่นด้วยเครื่องหมายอัฒภาคในข้อมูลผลิตภัณฑ์

torque_range;torque_increments;torque_accuracy

ฉันดึงรหัสนี้จากโมดูลของฉัน มันกำลังทำการโหลดเพิ่มเติมหรือซ่อนของแอตทริบิวต์เริ่มต้นตามค่าของคุณลักษณะและโมดูลนั้นซับซ้อนกว่าเล็กน้อย แต่เพื่อให้ได้ข้อมูลที่แสดงในตารางนี่คือฟังก์ชั่นหลักบางอย่าง หวังว่ามันจะทำให้คุณมีความคิดที่จะสร้าง นี่คือการใช้ magento 1.9.2

ผู้ช่วยของโมดูล:

public function findAttributes($product, $attributes)
{
    //determined by attribute with id to add additional attributes to the table
    //string needs to be ; separated in ADMIN
    $strattributes = $product->getResource()->getAttribute('grouped_attr_array')->getFrontend()->getValue($product);
    if ($strattributes) {
        $strattributes = explode(';', $strattributes, 5);
        foreach ($strattributes as $additionAttribute) {
            //make sure these are valid attributes
            if ($product->getResource()->getAttribute($additionAttribute)) {
                array_push($attributes, $additionAttribute);
            }
        }
    }
}

public function groupedAttrDump($groupedProduct, $attributes)
{
    $cells = [];
    foreach ($attributes as $attrCode) {
        $attrText = $groupedProduct->getResource()->getAttribute($attrCode);
        if($attrText){
            array_push($cells, $attrText->getFrontend()->getValue($groupedProduct));
        }
    }
    return $cells;
}

public function groupedAttrHeaders($currentProduct, $attributes)
{
    $theads = [];
    foreach ($attributes as $attrCode) {
        $headerText = $currentProduct->getResource()->getAttribute($attrCode);
        if($headerText){
            $headerText = $headerText->getStoreLabel();
            array_push($theads,$headerText);
        }

    }
    return $theads;
}

รับข้อมูลจากผู้ช่วยใน GROUPproduct.phtml

$attrrSetName = Mage::getModel("eav/entity_attribute_set")->load($_product->getAttributeSetId())->getAttributeSetName();
$tableAttributes = Mage::helper('groupedtable')->findAttributes($_product, $attrrSetName);

TH ของ

     <?php foreach (Mage::helper('groupedtable')->groupedAttrHeaders($_product, $tableAttributes) as $attrLabel ): ?>
        <th><?php echo $attrLabel ?> </th>
     <?php endforeach; ?>

TD เป็นตาราง

<?php foreach (Mage::helper('groupedtable')->groupedAttrDump($_associatedProduct, $tableAttributes) as $attr ):?>
        <td><?php if($attr != 'No'){ echo $attr; } ?></td>
   <?php endforeach; ?>

ฉันต้องการสร้างวิธีการเลือกแอตทริบิวต์นั้นตามคุณลักษณะที่มีอยู่ของร้านค้า อาจมีวิธีที่ดีกว่ามากในการทำเช่นนี้ ยังไม่ได้รับสิ่งนั้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.