Magento

คำถาม & คำตอบสำหรับผู้ใช้แพลตฟอร์ม Magento e-Commerce

1
มีเหตุผลที่ดีที่จะใส่รหัสเดียวกันทั้งในลองและจับบล็อก?
ในไฟล์: app/code/core/Mage/Adminhtml/Block/Widget/Grid/Column/Renderer/Datetime.phpภายในrender()วิธีการดูเหมือนว่ามีการเรียกใช้รหัสเดียวกันทั้งในบล็อก try และ catch ข้อยกเว้นไม่ได้จัดการเลย ฉันอยากรู้ว่าเหตุผลอะไร (ถ้ามี) สำหรับการเขียนโค้ดเช่นนี้: try { $data = Mage::app()->getLocale() ->date($data, Varien_Date::DATETIME_INTERNAL_FORMAT)->toString($format); } catch (Exception $e) { $data = Mage::app()->getLocale() ->date($data, Varien_Date::DATETIME_INTERNAL_FORMAT)->toString($format); }

10
ข้อผิดพลาด 404 ไม่พบข้อผิดพลาดสำหรับหน้าผู้ดูแลระบบ
ฉันติดตั้ง Magento สำเร็จแล้ว แต่หน้าผู้ดูแลระบบให้ข้อผิดพลาด: ไม่พบ 404 กรุณาแนะนำวิธีแก้ปัญหาสำหรับเรื่องนี้ ต่อไปนี้เป็นข้อผิดพลาด: 404 Not Found nginx/1.10.0 (Ubuntu)


3
จะเพิ่มบล็อก CMS โดยทางโปรแกรมใน Magento 2 ได้อย่างไร
ฉันต้องเพิ่มบล็อก CMS ผ่านสคริปต์การติดตั้ง / อัปเกรด ฉันได้เรียนรู้วิธีเพิ่มหน้า CMS "ปกติ" ดังที่เห็นในสคริปต์ด้านล่าง แต่เนื่องจากฉันไม่พบวิธีเพิ่มบล็อก CMS ในรหัสของ Magento 2 บน Google หรือที่นี่ฉันจึงค่อนข้างติดขัด namespace [Vendor]\[Module]\Setup; use Magento\Cms\Model\Page; use Magento\Cms\Model\PageFactory; use Magento\Framework\Setup\ModuleContextInterface; use Magento\Framework\Setup\ModuleDataSetupInterface; use Magento\Framework\Setup\UpgradeDataInterface; class UpgradeData implements UpgradeDataInterface { /** * Page factory. * * @var PageFactory */ private $pageFactory; /** * Init. * * …

6
จะลบฟิลด์ บริษัท ออกจากกระบวนการชำระเงินใน Magento 2 ได้อย่างไร
จะลบฟิลด์ บริษัท ออกจากกระบวนการชำระเงินใน Magento 2 ได้อย่างไร ฉันกำลังมองหาเทมเพลต แต่ไม่พบ อัปเดต:มีวิธีใดในการลบฟิลด์นี้ผ่านโครงร่างหรือแม่แบบ

1
Magento2: วิธีที่ดีที่สุดในการเพิ่มฟิลด์วิธีการชำระเงินที่กำหนดเองคืออะไร
ฉันได้ตั้งค่าวิธีการชำระเงินใหม่ใน Magento 2 ด้วยฟิลด์วิธีการชำระเงินที่กำหนดเอง (เช่น "po_number" จากวิธีการชำระเงินแบบวีโอไอพี / ออฟไลน์ ) และส่วนหน้าทำงานได้อย่างสมบูรณ์แบบ (การแสดงฟิลด์การตรวจสอบและอื่น ๆ ) อย่างไรก็ตามหากฉันต้องการสั่งซื้อสินค้าวีโอไอพีคำขอ WebAPI จะเกิดข้อผิดพลาดต่อไปนี้: "Property \" CustomField \ "ไม่มี setter ที่สอดคล้องกันในคลาส \" Magento \ Quote \ Api \ Data \ PaymentInterface \ " มันดูเหมือนว่าวีโอไอพีจะตรวจสอบข้อมูลที่กำหนดเองกับอินเตอร์เฟซการชำระเงินหลักที่วิธีการเช่นgetPoNumberและsetPoNumberมีการกำหนด ฉันพยายามเพิ่มฟิลด์ที่กำหนดเองผ่านแอตทริบิวต์ส่วนขยาย: <extension_attributes for="Magento\Quote\Api\Data\PaymentInterface"> <attribute code="custom_field" type="Vendor\Module\Api\Data\MethodInterface[]" /> </extension_attributes> และสร้างอินเตอร์เฟสด้วยวิธีการเฉพาะ: <?php namespace Vendor\Module\Api\Data; use …

3
Magento 2 Admin Panel ค้างตลอดไปจนกว่าจะรีเฟรชหน้า
นับตั้งแต่ทำงานกับ Magento 2 ฉันมีปัญหาที่น่ารำคาญ: ฉันเข้าสู่แผงผู้ดูแลระบบหรือสลับไปยังหน้าอื่นภายในแผงการดูแลระบบ หน้าเริ่มโหลดบางครั้งก็ปรากฏขึ้นบางส่วน แต่ก็หยุดตลอดไป (อย่างน้อยก็หลายนาที) บางครั้งมันก็แสดงให้เห็นอย่างสมบูรณ์ แต่เบราว์เซอร์ยังระบุว่า "กำลังโหลด" และการนำทางไม่ทำงาน แต่ฉันไม่เห็นล้มเหลว คำขอในคอนโซลของเบราว์เซอร์ หากฉันกดF5ขณะที่แขวนอยู่หน้าจะโหลดเกือบจะในทันที (อย่างน้อยก็ส่วนใหญ่) ดูเหมือนจะไม่เกี่ยวข้องกับเหตุการณ์ใด ๆ เพราะฉันได้รับพฤติกรรมนี้แม้ว่าจะไม่ได้ทำการเปลี่ยนแปลงใด ๆ ในแผงผู้ดูแลระบบหรือในรหัสเพียงแค่การนำทาง แต่ผมสังเกตเห็นความสัมพันธ์ที่เป็นไปได้กับแคชโมฆะ ความคิดใด ๆ ที่อาจทำให้เกิดปัญหานี้? ฉันไม่เชื่อว่าเป็นปัญหาทั่วไปเกี่ยวกับการอนุญาตหรือคุกกี้เนื่องจากการพูดโดยทั่วไปจะใช้งานได้จากแผงควบคุมของผู้ดูแลระบบ Magento ทำงานในโหมดนักพัฒนาซอฟต์แวร์บน Linux

2
วิธีเพิ่ม bootstrap.js ใน magento2
ฉันพยายามรวม bootstrap js ในธีม magento2 ของฉัน แต่ปัญหาคือเมื่อฉันรวม bootstrap js ในชุดรูปแบบของฉัน เวลานั้นคอนโซลให้ข้อผิดพลาดที่ bootstrap ต้องการ jQuery ถ้าอย่างนั้นฉันจะทำยังไง ??? ใครช่วยได้บ้าง
13 magento2  jquery 

4
ยกเลิกขั้นตอนการลบบล็อกใน layout.xml
ฉันต้องการยกเลิกการลบบล็อก บล็อกจะถูกลบออก vendor/magento/theme-frontend-blank/Magento_Checkout/layout/checkout_index_index.xml <referenceBlock name="minicart" remove="true"/> <referenceContainer name="header.panel" remove="true"/> <referenceBlock name="top.search" remove="true"/> <referenceBlock name="catalog.compare.link" remove="true"/> <referenceBlock name="catalog.topnav" remove="true"/> <referenceContainer name="footer-container" remove="true"/> ตามเอกสารremove=falseหนึ่งสามารถยกเลิกข้อความกำจัดด้วย ดังนั้นฉันจึงสร้างไฟล์ในธีมของฉันค่ะ Magento_Checkout/layout/checkout_index_index.xml <referenceBlock name="minicart" remove="false"/> <referenceContainer name="header.panel" remove="false"/> <referenceBlock name="top.search" remove="false"/> <referenceBlock name="catalog.compare.link" remove="false"/> <referenceBlock name="catalog.topnav" remove="false"/> <referenceContainer name="footer-container" remove="false"/> แต่มันไม่ทำงาน ตามปัญหา GitHub นี้มันไม่ใช่ข้อผิดพลาด แก้ไข: ที่นี่ยังโพสต์ฟอรั่มที่เกี่ยวข้อง
13 magento2  layout 

4
Magento 2: Remove block ขึ้นอยู่กับการตั้งค่า
ฉันพยายามที่จะยกเลิกการบล็อกจากหน้าบาง (ไม่ว่าจะเป็นส่วนหน้าหรือแบ็กเอนด์) trueแต่ถ้าเป็นธงตั้งค่าบางอย่างที่มีการตั้งค่า ลองยกตัวอย่าง ฉันต้องการลบบล็อกที่มีชื่อdashboardจากแผงควบคุมของผู้ดูแลระบบ บล็อกถูกกำหนดในadminhtml_dashboard_index.xmlไฟล์จากMagento_Backendโมดูล: <referenceContainer name="content"> <block class="Magento\Backend\Block\Dashboard" name="dashboard"/> </referenceContainer> ขอบคุณคำตอบของอดัมที่ฉันสามารถทำได้ในadminhtml_dashboard_index.xml <body> <referenceBlock name="dashboard" remove="true" /> </body> แต่ฉันต้องการที่จะใช้มันขึ้นบากและลบบล็อกนี้เท่านั้นถ้าการตั้งค่าการกำหนดค่าที่มีเส้นทางที่มีค่าdashboard/settings/remove เลย์เอาท์ xml นั้นยอดเยี่ยม แต่ฉันก็จะใช้วิธีสังเกตการณ์ด้วยเช่นกัน1


1
การละเมิดข้อ จำกัด ด้านความซื่อสัตย์: 1,062 รายการที่ซ้ำกันสำหรับคีย์ 'UNQ_SALES_FLAT_INVOICE_INCREMENT_ID'
ฉันกำลังช่วยผู้ขายติดตามสาเหตุของการทำธุรกรรมการชำระเงินที่ล้มเหลว (ระหว่างวันที่มีคำสั่งซื้อสูง) ซึ่งล้มเหลวด้วยข้อผิดพลาดต่อไปนี้ SQLSTATE [23000]: การละเมิดข้อ จำกัด ด้านความซื่อสัตย์: 1062 รายการที่ซ้ำกัน '51986' สำหรับคีย์ 'UNQ_SALES_FLAT_INVOICE_INCREMENT_ID' UNQ_SALES_FLAT_INVOICE_INCREMENT_IDดัชนีคีย์ที่ไม่ซ้ำกันในincrement_idคอลัมน์ในsales_flat_invoiceตาราง เมื่อฉันดูในตารางนี้สำหรับincrement_idข้อผิดพลาดที่กล่าวถึง ( 51986) ฉันพบว่ามีใบแจ้งหนี้increment_idอยู่ในนั้นแล้วและเป็นการสั่งซื้อจากลูกค้ารายอื่น คำถาม 2 ข้อของฉันเกี่ยวข้องกับสิ่งนี้ โดยปกติแล้ว Magento CE 1.9.0.1 จะมีการสร้าง ID ใบแจ้งหนี้อย่างไร มีปัญหาในสต็อก Magento CE 1.9.0.1 ที่มีรหัสใบแจ้งหนี้ที่ขัดแย้งกันสำหรับคำสั่งใกล้เคียงกันหรือไม่? ฉันตระหนักถึง ID ที่เพิ่มขึ้นของ51986วิธีที่ร้านค้ามีส่วนขยายบางอย่างสำหรับการเปลี่ยนรหัสที่เพิ่มขึ้นที่ติดตั้งไว้ แต่ฉันต้องการตรวจสอบให้แน่ใจว่าไม่มีวิทยาศาสตร์ที่เป็นที่รู้จักที่ไม่มีสิ่งนี้มาก่อนที่จะลงเส้นทางนั้น


1
Magento 2 ถอนการติดตั้งโมดูล
เห็นได้ชัดว่าตอนนี้ Magento 2 รองรับสคริปต์ถอนการติดตั้งที่อนุญาตให้แก้ไข db schema เมื่อทำการถอนการติดตั้งโมดูล (horay !!) ตามที่อธิบายไว้ในที่นี้สามารถใช้งานได้กับโมดูลที่ติดตั้งผ่านผู้แต่งเท่านั้น (ฉันหวังว่ามันจะทำงานในอนาคตสำหรับโมดูลทั้งหมด แต่นั่นเป็นปัญหาที่แตกต่างกัน) สมมติว่าผมมีโมดูลที่เรียกว่า โมดูลนี้ทำ 3 สิ่งที่ฉันต้องการจะลบเมื่อถอนการติดตั้ง Testing_Demo testing_demoเพิ่มตารางที่เรียกว่า ดังนั้นฉันต้องวางมันลง demoเพิ่มแอตทริบิวต์ผลิตภัณฑ์ที่เรียกว่า ดังนั้นสิ่งนี้ต้องถูกลบออก มีการตั้งค่าบางอย่างในอาจจะหรืออาจจะไม่ถูกเก็บไว้ในตารางsystem->configuration การตั้งค่าทั้งหมดเหล่านี้มีเส้นทางcore_config_data testing_demo/...ดังนั้นสิ่งเหล่านี้จำเป็นต้องถูกลบออกด้วย สคริปต์การถอนการติดตั้งโมดูลของฉันควรมีลักษณะอย่างไร

1
Magento 2 getTable พฤติกรรม
TL; DR:มีวิธีใดใน Magento 2 ที่จะสร้างวิธีการgetTableจากแบบจำลองการรวบรวมทรัพยากรเพื่อส่งคืนชื่อตารางเดียวกันสำหรับพารามิเตอร์ที่แตกต่างกัน 2 ตัว? คำอธิบายรายละเอียด ฉันจะเริ่มต้นด้วยตัวอย่างจากวีโอไอพี 1. สมมติว่าผมมีตารางที่เรียกว่า ฉันต้องการประกาศตารางนี้ในแบบนี้module_entiti1_entity2config.xml <module_resource> <class>....</class> <entities> <entity1_entity2> <table>module_entiti1_entity2</table> </entity1_entity2> </entities> </module_resource> จากนั้นฉันจะได้รับชื่อตารางจากแบบจำลองการรวบรวมทรัพยากรเช่นนี้: $collection->getTable('module/entity1_entity2'); แต่ถ้าฉันต้องการฉันสามารถใช้นามแฝงหลายรายการสำหรับตารางเดียวกัน หากconfig.xmlส่วนของฉันกลายเป็น <module_resource> <class>....</class> <entities> <entity1_entity2> <table>module_entiti1_entity2</table> </entity1_entity2> <entity2_entity1> <table>module_entiti1_entity2</table> </entity2_entity1> </entities> </module_resource> ฉันสามารถดึงข้อมูลตารางของฉันได้ 2 วิธี: $collection->getTable('module/entity1_entity2'); $collection->getTable('module/entity2_entity1'); ใน Magento 2 ไม่มีการประกาศตารางเพิ่มเติมอีก ฉันจะได้รับชื่อตารางของฉันเช่นนี้ มีวิธีบอก magento หรือไม่ว่าพารามิเตอร์จะส่งคืนชื่อตารางเดียวกันกับพารามิเตอร์หรือไม่$collection->getTable('module_entity1_entity2') module_entity2_entity1module_entity1_entity2

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