ฉันมีหลายหมวดหมู่และแทนที่จะใช้การตั้งค่าใหม่กับทุกหมวดหมู่ทีละรายการฉันต้องการทราบหรือไม่ว่านี่เป็นไปได้ที่จะใช้การตั้งค่าใหม่กับหมวดหมู่ทั้งหมดพร้อมกันหรือไม่
ขอบคุณ!
ฉันมีหลายหมวดหมู่และแทนที่จะใช้การตั้งค่าใหม่กับทุกหมวดหมู่ทีละรายการฉันต้องการทราบหรือไม่ว่านี่เป็นไปได้ที่จะใช้การตั้งค่าใหม่กับหมวดหมู่ทั้งหมดพร้อมกันหรือไม่
ขอบคุณ!
คำตอบ:
ไม่มีวิธีการทำเช่นนี้จาก UI
วิธีที่ฉันทำตามปกติคืออัพเดทค่าในฐานข้อมูล ไม่ใช่วิธีที่แนะนำ แต่ใช้งานได้
สมมติว่าคุณต้องการอัปเดตis_anchor
แอตทริบิวต์เป็น '1' สำหรับทุกหมวดหมู่
SELECT * FROM eav_attribute where attribute_code = 'is_anchor'
แบบสอบถามด้านบนควรให้is_anchor
แอตทริบิวต์แก่คุณ ฉันบันทึกที่ผลลัพธ์ฉันเห็นว่ารหัสคุณลักษณะคือ 51 (อาจแตกต่างกันสำหรับคุณ) และเป็นbackend_type
ซึ่งหมายความว่าค่าสำหรับแอตทริบิวต์อยู่ในตารางint
catalog_category_entity_int
UPDATE `catalog_category_entity_int` set value = 1 where attribute_id = 51 and parent_id <> 0;
แบบสอบถามนี้จะกำหนดค่า 1 สำหรับ is_anchor แอตทริบิวต์ (รหัส 51) สำหรับทุกประเภทยกเว้น parent = 0
'รากของรากทุกประเภทด้วย
หลังจากที่ฉันเรียกใช้แบบสอบถามฉันจะจัดทำดัชนีหมวดหมู่ตามลำดับใหม่
catalog_category_entity_int
set value = 1 โดยที่ attribute_id = (SELECT attribute_id จากeav_attribute
ที่ attribute_code = 'is_anchor');
catalog_category_int
set value = 1 โดยที่ attribute_id = 51 และ parent_id <> 0; แต่ข้อผิดพลาด: # 1146 - ตาราง 'magento1.catalog_category_int' ไม่มีอยู่จริง
ฉันไม่แน่ใจว่าคุณเปลี่ยนแปลงการตั้งค่าใดในหมวดหมู่ของคุณ แต่ถ้าอยู่ในรายการตัวเลือกในหน้านี้การใช้ Magento REST API น่าจะเป็นตัวเลือกที่ดีที่สุดของคุณ
ระบุรหัสแอตทริบิวต์ของแอตทริบิวต์ is_anchor ก่อน:
SELECT * FROM eav_attribute where attribute_code = 'is_anchor';
เราได้รับคุณสมบัติ id 51 ในฐานข้อมูลของฉัน ตอนนี้เรียกใช้แบบสอบถามต่อไปนี้
UPDATE catalog_category_entity_int set value = 1 where attribute_id = 51;
แทนที่ 51 ด้วยรหัสคุณลักษณะของคุณเอง และสร้างดัชนีเหล่านี้ขึ้นมาใหม่