คำถามติดแท็ก eav

คำถามเกี่ยวกับการใช้งาน Entity Attribute Value (EAV) ของ Magento

1
เหตุใดจึงไม่มีการจัดทำดัชนีใหม่สำหรับ EAV และแท็กบางส่วน
คำถามนี้ทำให้ฉันงุนงงไม่นาน เหตุใดจึงมีการแก้ไขข้อผิดพลาดในการปรับปรุงใน Magento 1.13.xx เรียกว่าการจัดทำดัชนีใหม่บางส่วนไม่ครอบคลุมตัวทำดัชนี "คุณสมบัติของผลิตภัณฑ์" และ "ข้อมูลรวมแท็ก" ทำไมทั้งสองต้องทำดัชนีใหม่ด้วยตนเอง? ตามความเห็นของฉันดัชนี EAV เป็นหนึ่งในสิ่งที่สำคัญที่สุด การไม่มีการจัดทำดัชนีใหม่บางส่วนหมายความว่าหลังจากการขายแต่ละครั้ง (และบางคนมี) ดัชนีจะไม่ถูกต้องซึ่งหมายความว่าการนำทางแบบเลเยอร์ไม่ถูกต้องอีกต่อไปซึ่งส่งผลให้เกิดการแสดงข้อมูลที่ไม่สอดคล้องและสูญเสียการขาย ฉันขาดอะไรที่ชัดเจนหรือไม่ ปรับปรุง: ดังนั้นนี่คือคำอธิบายของข้อผิดพลาดนี้ เมื่อมีการขายและสินค้าหมดการนำทางแบบแบ่งชั้นจะสะท้อนถึงการเปลี่ยนแปลงของคุณลักษณะของผลิตภัณฑ์สำหรับผลิตภัณฑ์ที่เรียบง่าย แต่ไม่ใช่สำหรับการกำหนดค่า (ยังไม่ได้ทดสอบการรวมกลุ่มและจัดกลุ่ม) ดังนั้นสมมติว่าในแคตตาล็อกของคุณคุณมีผลิตภัณฑ์ที่สามารถกำหนดค่าได้เช่นเสื้อยืดที่มีขนาดแตกต่างกันและคุณลักษณะ "ขนาด" คือ "กรองได้ (พร้อมผลลัพธ์)" จากนั้นในการนำชั้นของหมวดหมู่หรือผลการค้นหาที่เหมาะสมคุณจะมีส่วนขนาดที่ทุกใช้ได้ขนาดมีการระบุไว้ หากหลังจากการขายหนึ่งขนาดขนาดหนึ่งหมดคุณคาดว่าจะหายไปจากการนำทางแบบเลเยอร์ สิ่งนี้จะไม่เกิดขึ้นหากคุณไม่รีเฟรชดัชนีแอตทริบิวต์และล้างแคชบล็อก จุดบกพร่องนี้สำคัญมาก มันเป็นภัยคุกคามสองทาง ขั้นแรกลูกค้าปลายทางที่เห็นขนาดของเขาในการนำทางแบบเลเยอร์แล้วเห็นว่าไม่สามารถใช้งานได้จริงจะทำให้ร้านค้าของคุณตกอยู่ในความยุ่งยาก สิ่งที่แย่กว่านั้นคือเมื่อสินค้ากลับมาอยู่ในสต็อกจะไม่สามารถมองเห็นได้ในระบบนำทางแบบเลเยอร์ดังนั้นลูกค้าปลายทางจะไม่สามารถซื้อได้ ดังนั้นจึงเป็นการยากที่จะประมาทจำนวนการสูญเสียรายได้

6
วิธีสร้างเอนทิตี EAV
วิธีสร้างเอนทิตี EAV นี่เป็นคำถามที่ปรากฏขึ้นบนเว็บเป็นจำนวนมาก มีบางบทความบล็อกที่ดีที่อธิบายวิธีการทำ แต่ไม่มีพวกเขาพอใจสำหรับฉัน ดังนั้นฉันจึงตัดสินใจที่จะตอบคำถามด้วยตนเองและอธิบายว่าฉันทำได้อย่างไร ... และดูเหมือนว่าจะทำงาน มีรหัสจำนวนมากในที่นี่ เพื่อที่จะอ่านอย่างถูกต้องเรียงคำตอบโดย 'เก่าที่สุด'
35 admin  module  eav 

3
ลบแอตทริบิวต์ EAV ที่กำหนดเองออกจากฐานข้อมูล
ฉันต้องการลบแอตทริบิวต์ EAV ที่ไม่ได้ใช้โดยตรงจากฐานข้อมูลก่อนที่ฉันจะย้ายร้านค้าของฉันอยู่ สามารถพบแอตทริบิวต์ได้ในeav_attributeตารางฉันสามารถลบแอตทริบิวต์จากตารางนี้ได้หรือไม่ ปลอดภัยไหม หรือฉันต้องแก้ไขตาราง EAV อื่น ๆ ด้วยหรือไม่

2
Magento การเพิ่มรหัสการแจ้งหนี้ใหม่แต่ละครั้งเพิ่มขึ้น 5 หรือไม่
ฉันต้องเพิ่มรหัสใบแจ้งหนี้ใหม่แต่ละรายการด้วย 5 ฉันได้ลองใช้รหัสด้านล่าง แต่เปลี่ยนใบแจ้งหนี้การจัดส่งคำสั่งซื้อและใบลดหนี้ทั้งหมด ฉันต้องการรหัสใบแจ้งหนี้ใหม่แต่ละใบเพิ่มขึ้น 5 รายการเพิ่มขึ้น 5 ครั้งและเพิ่มใบลดหนี้ 3 รวมทั้งคำสั่งขายที่เพิ่มขึ้น 1 (ปกติ) ฉันจะทำสิ่งนี้ได้อย่างไร คนใดคนหนึ่งช่วยฉัน class Mage_Eav_Model_Entity_Increment_Numeric extends Mage_Eav_Model_Entity_Increment_Abstract { public function getNextId() { $last = $this->getLastId(); if (strpos($last, $this->getPrefix()) === 0) { $last = (int)substr($last, strlen($this->getPrefix())); } else { $last = (int)$last; } $next = $last + 5; return …

3
วัตถุประสงค์ของตาราง 'eav_'
ฉันสงสัยอยู่เสมอว่าอะไรคือความหมายของตาราง: eav_entity eav_entity_datetime eav_entity_decimal eav_entity_int eav_entity_store eav_entity_text มันว่างเปล่าเสมอ พวกเขาถูกสร้างขึ้นในรุ่นก่อน 1.6 ในapp/code/core/Mage/Eav/sql/eav_setup/mysql4-install-0.7.0.phpและต่อมาพวกเขาดำเนินการกับสคริปต์การติดตั้งสำหรับรุ่น 1.6+ /app/code/core/Mage/Eav/sql/eav_setup/install-1.6.0.0.php ฉันเห็นว่ามีรูปแบบทรัพยากรที่เชื่อมโยงกับหนึ่งในตารางMage_Eav_Model_Resource_Entity_Store(อาจมีคนอื่น ๆ ) แต่ไม่มีอะไรเกิดขึ้น จะมีการใช้งานใด ๆ กับตารางเหล่านี้หรือนี่คือ "คุณสมบัติ" อื่น ๆ ที่ได้รับการเริ่มต้นและไม่ได้ดำเนินการเช่นเดียวกับรุ่นรูปแบบหรือผู้ดูแลระบบสวดมนต์ยกตัวอย่างเช่น
19 database  eav 

3
คุณสมบัติไม่มีตัวตั้งค่าที่สอดคล้องกันในคลาส Magento \ Quote \ Api \ Data \ AddressInterface ขณะเปลี่ยนขั้นตอนชำระเงิน
1 - ฉันเพิ่มแอตทริบิวต์ eav ให้กับ customer_address $attributesInfo = [ 'reference' => [ 'label' => 'Reference', 'type' => 'varchar', 'input' => 'text', 'position' => 100, 'visible' => true, 'required' => false, ], ]; foreach ($attributesInfo as $attributeCode => $attributeParams) { $customerSetup->addAttribute('customer_address', $attributeCode, $attributeParams); } 2 - ฉันเพิ่มแอตทริบิวต์ส่วนขยายในโมดูลของฉัน <extension_attributes for="Magento\Quote\Api\Data\AddressInterface"> <attribute code="reference" …

2
วิธีรับคุณลักษณะ“ ป้ายกำกับตัวเลือก / ข้อความแอตทริบิวต์” ที่มี“ ค่าคุณลักษณะ” (ตัวเลือก _ID)
สมมติว่าฉันมีแอททริบิวต์ที่เป็นชุดของตัวเลือก (ดร็อปดาวน์ / เลือกหลายรายการ) ฉันสามารถดึงค่าคุณสมบัติสำหรับผลิตภัณฑ์ที่กำหนด: $store_id = [something]; $productId = [something]; // this is a select/multiselect $attribute_code = [something]; $option_id = Mage::getResourceModel('catalog/product')->getAttributeRawValue($productId, $attribute_code, $store_id ); $option_label = ??? ตอนนี้ฉันได้ attribute option_id ซึ่งเป็นค่าตัวเลข ... ... วิธีที่ดีที่สุดในการโหลดป้ายกำกับส่วนหน้าสำหรับค่าคุณลักษณะของฉันคืออะไร (ไม่โหลดสินค้าเต็ม) การแก้ปัญหาขอบคุณMarius : // Not loading the product - just creating a simple instance $product …

6
Magento 2 - วิธีการรับค่าตัวเลือกคุณลักษณะของเอนทิตี eav?
ฉันจะรับค่าตัวเลือกคุณลักษณะของเอนทิตี eav ได้อย่างไร ฉันพบวิธีแก้ปัญหาเฉพาะสำหรับ magento 1.x แต่ M2 ฉันไม่รู้ M1: $attr = Mage::getResourceModel('eav/entity_attribute_collection')->setCodeFilter('specialty')->getData()[0]; $attributeModel = Mage::getModel('eav/entity_attribute')->load($attr['attribute_id']); $src = $attributeModel->getSource()->getAllOptions(); ใครรู้แสดงทีละขั้นตอนขอบคุณ!
18 magento2  database  eav 

3
Magento 2: โต๊ะแบนยังคงเป็นเรื่องน่าสนใจใช่ไหม
โต๊ะแบนยังเป็นสิ่งที่เราต้องกังวลใน Magento 2 หรือไม่? ฉันรู้ว่ามี UI ที่เราสามารถเปิดใช้งานตารางแบนได้ แต่ฉันไม่แน่ใจว่าพวกเขาได้รับการทดสอบดีเพียงใดและถ้าพวกเขาต้องการอีกต่อไป ถ้าตารางแบนมียังคงเป็นสิ่งที่ - ที่ / เมื่อทำคุณลักษณะสำหรับตารางแบนได้รับการสร้างขึ้นและ / หรือสร้างใหม่ สิ่งนี้เกิดขึ้นเมื่อทำดัชนีใหม่หรือไม่ หรือการกระทำ UI อื่น ๆ สามารถกระตุ้นการสร้างตารางแบนได้หรือไม่ มันเกิดขึ้นที่php bin/magento setup:di:compile? สถานที่อื่น ๆ? วีโอไอพีจะตัดสินใจอย่างไรหากต้องการทำให้แอททริบิวเป็นแอททริบิวต์แฟลต? จะทั้งหมดคุณลักษณะ EAV บี้? หรือมีคนอื่นซึ่งอาจจะไม่?

3
วีโอไอพี 2: ความแตกต่างระหว่าง row_id และ entity_id ในตาราง% _entity คืออะไร?
ใน Magento 1 ไม่มีคอลัมน์ที่เรียกrow_idในตารางเอนทิตีคุณเพิ่งได้รับentity_id: CREATE TABLE `catalog_category_entity` ( `entity_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Entity ID', `entity_type_id` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Entity Type ID', `attribute_set_id` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Attriute Set ID', `parent_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Parent Category ID', …
17 magento2  database  eav 

3
วิธีที่ถูกต้องในการใช้งาน getExtensionAttributes ()
ฉันสงสัยว่าอะไรคือวิธีที่เหมาะสมในการนำโมเดล EAV ที่ขยายได้ ฉันเห็นว่าในMagento\Catalog\Model\ProductวิธีการgetExtensionAttributes()ใช้งานเช่นนี้ public function getExtensionAttributes() { $extensionAttributes = $this->_getExtensionAttributes(); if (!$extensionAttributes) { return $this->extensionAttributesFactory->create('Magento\Catalog\Api\Data\ProductInterface'); } return $extensionAttributes; } แต่สำหรับคนอื่น ๆ เช่นลูกค้าหรือรุ่นหมวดหมู่มันเป็นเพียงแค่ public function getExtensionAttributes() { return $this->_getExtensionAttributes(); } ซึ่งสามารถนำไปสู่ผลลัพธ์NULLถ้าคีย์extension_attributesไม่ได้ตั้งค่าก่อน ในทางปฏิบัติฉันต้องการคนแรก วิธีนี้ทำให้ฉันมั่นใจได้เสมอว่าจะได้รับอินสแตนซ์Magento\Framework\Api\ExtensionAttributesInterfaceแม้ว่าตัวแบบนั้นเพิ่งจะถูกทำให้เป็นตัวอย่าง แต่ทำไมมันไม่ใช้ในโมดูลอื่นแล้ว? เป็นการแยกแบบจำลองข้อมูลใหม่ที่เราเห็นในโมดูลลูกค้าหรือไม่ ถ้าเป็นเช่นนั้นเราควรจะเริ่มต้นคุณลักษณะส่วนขยายได้อย่างไร

1
เมื่อเราดู eavSetup มีค่าอะไรบ้างสำหรับประเภทและอินพุต
เมื่อสร้างติดตั้งสคริปต์สำหรับวีโอไอพี 2 สิ่งที่มีค่าที่มีอยู่สำหรับชนิดและชิ้นส่วนป้อนข้อมูลของeavSetup->addAttribute()? หรือฉันจะหาคำตอบได้ที่ไหน? $eavSetup->addAttribute( \Magento\Catalog\Model\Product::ENTITY, 'some_attr', [ 'type' => '', 'backend' => '', 'frontend' => '', 'label' => 'Test Attribute', 'input' => '', 'class' => '', 'source' => '', 'global' => \Magento\Catalog\Model\Resource\Eav\Attribute::SCOPE_GLOBAL, 'visible' => true, 'required' => false, 'user_defined' => false, 'default' => 0, 'searchable' => false, 'filterable' => …

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

1
_data ของรูปแบบ EAV
ฉันเข้าใจว่า _data ของโมเดลที่เรียบง่าย (เช่นcataloginventory/stock_item) เป็นอาร์เรย์ของคู่ของค่าฟิลด์ซึ่งสอดคล้องกับฟิลด์ของตารางฐานข้อมูล ฉันอยากรู้ว่าเนื้อหาของ _data สำหรับรุ่น EAV ดังนั้นฉันจึงตรวจสอบ _data ของการcatalog/productใช้ฟังก์ชัน debug () การค้นหาคือมันมีคู่ค่าเขตข้อมูลของcatalog_product_entityและยังมีคุณลักษณะบางอย่างของหน่วยงานนี้ พวกเขาสมเหตุสมผลกับฉัน จุดที่ฉันไม่เข้าใจคือมีคู่อยู่ด้วย: ... [stock_item (Mage_CatalogInventory_Model_Stock_Item)] => Array ( [item_id] => 1 [product_id] => 1 [stock_id] ...... ) ... cataloginventory/stock_itemซึ่งเป็นตัวอย่างของ นี่ไม่ใช่แอตทริบิวต์ของแคตตาล็อก / เอนทิตีผลิตภัณฑ์หรือฟิลด์ในcatalog_product_entityทำไมจึงถูกรวมอยู่ด้วย มีแบบแผนของ _data สำหรับรุ่น EAV หรือไม่?
9 product  catalog  eav 

4
ทำไมรหัสคุณลักษณะมีความยาวสูงสุด
เมื่อพยายามสร้างคุณลักษณะฉันพบว่าความยาวสูงสุดของรหัสคุณลักษณะคือ 30 อักขระ ปรากฎว่านี่ไม่ใช่ข้อ จำกัด จริง ๆ - มันเป็นค่าโดยพลการอย่างสมบูรณ์ที่กำหนดโดย Mage_Eav_Model_Entity_Attribute::ATTRIBUTE_CODE_MAX_LENGTH. ถ้าอย่างนั้นทำไมถึงมีข้อ จำกัด ? และทำไมค่าเริ่มต้น 30 แทนที่จะเป็นเช่น 255 ซึ่งเป็นขีด จำกัดจริงของคอลัมน์ฐานข้อมูล PS หากใคร ๆ สามารถนึกถึงแท็กที่ดีกว่าสำหรับคำถามนี้ได้โปรดอัปเดตพวกเขา
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.