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

คำถามทั่วไปเกี่ยวกับ Magento 2 ไม่ใช่เฉพาะรุ่นรอง ใช้แท็กนี้เพื่อแยกความแตกต่างจาก Magento 1. หากคุณมีปัญหากับรุ่นที่เฉพาะเจาะจงโปรดใช้แท็ก 'Magento-2.x' ที่เหมาะสมแทน ฟังก์ชันการทำงานระหว่าง Magento 2 รุ่นรองอาจแตกต่างกัน

2
วิธีที่ถูกต้องในการอัพเดทพาเรนต์ของธีมใน Magento 2
ใน Magento 2 คุณสามารถระบุธีมหลักในtheme.xmlไฟล์ของธีม <theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd"> <title>Theme Title</title> <parent>Package/base-theme</parent> <media> <preview_image>media/preview.jpg</preview_image> </media> </theme> ครั้งแรกที่วีโอไอพีเห็นชุดรูปแบบจะใช้ค่านี้เพื่อตั้งค่าparent_idในthemeตาราง นี่คือที่มาของความจริงสำหรับผู้ปกครองของชุดรูปแบบ อย่างไรก็ตามหากคุณพยายามเปลี่ยนค่านี้หลังจากที่เพิ่มธีมเข้าไปในระบบวีโอไอพีจะไม่สามารถอัปเดตparent_idคอลัมน์ได้และMagento\Theme\Model\Themeวัตถุอินสแตนซ์จะยังคงมีธีมหลักดั้งเดิมอยู่ (แม้ว่าคุณจะล้างแคช) ฉันสามารถแก้ไขได้โดยเปลี่ยนparent_idค่าด้วยตนเอง- ดูเหมือนแฮ็ค parent_idโดยปกติจะตั้งอยู่ที่ไหนในรหัสหลักของ Magento และการกระทำของผู้ใช้ที่ทำให้เกิดสิ่งนี้ นั่นคือมีวิธีที่จะบอก Magento "โปรดโหลดชุดรูปแบบนี้อีกครั้ง"

1
ฉันจะดีบักการประมวลผลไฟล์เลย์เอาต์ใน Magento 2 ได้อย่างไร
ตามข้อกำหนดของชุดรูปแบบ magento 2 เกี่ยวกับการประมวลผลไฟล์เค้าโครง: แอปพลิเคชั่น Magento ประมวลผลไฟล์เลย์เอาต์ตามลำดับต่อไปนี้: 1 / รวบรวมไฟล์เลย์เอาต์ทั้งหมดจากโมดูล ลำดับจะถูกกำหนดโดยลำดับโมดูลในรายการโมดูลจาก app / etc / config.php 2. / กำหนดลำดับของธีมที่สืบทอด [, ... ,] 3. / วนซ้ำลำดับของธีมจากบรรพบุรุษล่าสุดเป็นปัจจุบัน: เพิ่มไฟล์โครงร่างธีมที่ขยายทั้งหมดลงในรายการ ข แทนที่ไฟล์เลย์เอาต์ที่ถูกแทนที่ในรายการ 4. / รวมไฟล์เลย์เอาต์ทั้งหมดจากรายการ ฉันจะดีบักและดูไฟล์เลย์เอาต์สำหรับทุกขั้นตอนของกระบวนการนี้ได้อย่างไร

5
Magento2: แนวทางปฏิบัติที่ดีที่สุดในการแก้ไขไฟล์ css
pub/static/frontend/Magento/luma/en_US/css/styles-l.cssฉันต้องการที่จะแก้ไขไฟล์ CSS เริ่มแรกไฟล์นี้ไม่มีอยู่ในโฟลเดอร์ pub / static และมีอยู่ใน vendor/magento/theme-frontend-blank/web/css/styles-l.less (it's styles-l.less) เมื่อฉันใช้เนื้อหาสแตติกโดยใช้php bin/magento setup:static-content:deployไฟล์ 2 ไฟล์จะถูกสร้างขึ้นใน pub / static ที่เกี่ยวข้องกับมัน 1. pub/static/frontend/Magento/luma/en_US/css/styles-l.less 2. pub/static/frontend/Magento/luma/en_US/css/styles-l.css ฉันเป็นนักพัฒนาที่ได้รับการสนับสนุนและในขณะที่กำลังพัฒนาโมดูลฉันมักจะลบสิ่งที่มีอยู่ใน pub / static (ยกเว้น. htaccess) pub/static/frontend/Magento/luma/en_US/css/styles-l.cssดังนั้นฉันก็ไม่ได้ดูเหมือนจะเป็นตัวเลือกที่ดีที่สุดในการแก้ไขโดยตรง ในกรณีนี้วิธีที่ดีที่สุดในการแก้ไขไฟล์ css ด้านบน 1.ฉันจะแก้ไขpub/static/frontend/Magento/luma/en_US/css/styles-l.lessหรือ 2.ความเข้าใจของฉันผิดที่ฉันสามารถลบทุกอย่างออกจากpub/static(ในระหว่างการพัฒนา) และฉันควรแก้ไขpub/static/frontend/Magento/luma/en_US/css/styles-l.cssและไม่ลบมัน

3
Magento 2: การซิงค์แบ็คเอนด์และส่วนหน้าของรัฐ / แคช
Magento 2 มีระบบหรือ abstractions สำหรับจัดการสถานะระหว่างแบ็กเอนด์และที่เก็บข้อมูลโลคัลบนส่วนหน้าหรือไม่? ฉันกำลังทำงานในการย้ายคุณลักษณะสำหรับการกู้คืนรถเข็นที่ถูกทอดทิ้งของผู้ใช้ผ่าน URL การเปลี่ยนเส้นทาง ในรูปแบบที่เรียบง่ายเช่น URL http://magento.example.com/restore/the/cart?identifier=sdkfjh48v237g5 จะโหลดเครื่องหมายคำพูดลงในรถเข็นของผู้ใช้ปัจจุบันโดยอ้างอิงจาก quote_id ที่เข้ารหัสในตัวระบุ ใน Magento 1 สิ่งนี้ค่อนข้างง่าย - คุณเพียงแค่ต้องอัปเดตข้อมูลเซสชัน Checkout ของผู้ใช้ด้วย ID ใบเสนอราคาที่ถูกต้อง อย่างไรก็ตามวีโอไอพี 2 เพิ่มในริ้วรอยของการจัดเก็บข้อมูลในท้องถิ่น แอปพลิเคชันส่วนหน้าของ Magento 2 ดูเหมือนว่าจะแคชข้อมูลในฐานข้อมูลที่จัดเก็บในท้องถิ่นของเบราว์เซอร์ ซึ่งรวมถึงข้อมูลสำหรับการสร้างมินิรถเข็น สิ่งนี้หมายความว่าถึงแม้ว่าผู้ใช้งานโปรแกรมเมอร์ (ฉัน) จัดการเพื่อเปลี่ยนเซสชัน ID เซสชันในแบ็กเอนด์มินิเกวียนจะยังคงแสดงข้อมูลรถเข็น เก่า นี่เป็นเพียงตัวอย่างหนึ่งของปัญหาที่เกิดจากการไม่รู้ (หรือมี) API เดียวสำหรับการจัดการสถานะแอปพลิเคชันในส่วนแบ็คเอนด์และส่วนหน้า สำหรับปัญหาเฉพาะของฉันฉันมีปลายทางของฉันแสดงหน้า HTML ที่มีจาวาสคริปต์บางส่วนล้างข้อมูลด้วยตนเองที่จัดเก็บในท้องถิ่นแล้วเปลี่ยนเส้นทางผู้ใช้ไปยังหน้าอื่น - แต่มันรู้สึกเหมือนแฮ็คขั้นต้น Magento 2 มี …


2
Magento 2: ผลที่ตามมาของการไม่ตั้งชื่อคลาสปลั๊กอิน `\ Plugin`
มีผลต่อการใช้คลาสปลั๊กอินใน Magento 2 ที่ไม่สิ้นสุด\Pluginหรือไม่? เอกสารแนะนำ\Pluginว่าชั้นนี้ควรจะจบในชื่อ ชื่อของคลาสของปลั๊กอินหรือชนิดเสมือน ใช้สคีมาต่อไปนี้เมื่อคุณระบุองค์ประกอบนี้: \ Plugin อย่างไรก็ตามมีหลายปลั๊กอินที่ไม่ปฏิบัติตามนี้ <!-- #File: app/code/Magento/Weee/etc/frontend/di.xml--> <plugin name="weee-app-action-dispatchController-context-plugin" type="Magento\Weee\Model\App\Action\ContextPlugin"/> มีผลทางโปรแกรมใด ๆ ที่จะไม่ใช้\Pluginในชื่อคลาสของคุณหรือไม่? หรือนี่เป็นเพียงการประชุม - คล้ายกับ_Observerการประชุมระดับชื่อวีโอไอพี 1
14 magento2  plugin 


10
Magento 2 StyleSheet ไม่โหลด
ฉันได้ติดตั้ง magento 2 สำเร็จแล้ว แต่ส่วนหน้าและสไตล์ผู้ดูแลระบบไม่โหลด แม้หลังจากเข้าสู่ระบบผู้ดูแลระบบก็ไม่ให้หน้า (404) URL หลักใน core_config_data: http://localhost.com/magento2/


2
แบบฟอร์มการชำระเงิน - วิธีการห่อองค์ประกอบหลายรายการในชั้นเรียน - วีโอไอพี 2
คุณจะห่อองค์ประกอบของฟอร์มการชำระเงินสองส่วนไว้ใน div ได้อย่างไร ตัวอย่างเช่นสมมติว่าฉันต้องการห่อเขตข้อมูลประเทศและไปรษณีย์ / รหัสไปรษณีย์ใน div ด้วยคลาสของexample-classฉันจะทำสิ่งนี้ได้อย่างไร สิ่งที่ฉันได้ลอง ฉันพยายามที่จะบรรลุสิ่งนี้โดยการเพิ่มพวกเขาเป็นลูก ๆ ของ<item name="shippingAddress" xsi:type="array">แต่นั่นก็ทำให้เกิดข้อผิดพลาดในส่วนหน้า แม้ว่าฉันจะได้รับการป้อนข้อความเปล่าโดยไม่มีป้ายกำกับภายใน.example-classมีข้อผิดพลาดในส่วนหน้า ข้อผิดพลาด: Cannot read property 'indexedOptions' of undefined นี่คือความพยายามอย่างรวดเร็วของฉัน: Magento_Checkout / เว็บ / แม่แบบ / การจัดส่งสินค้าที่อยู่ / form.html <div id="shipping-new-address-form" class="fieldset address"> <div class="testing"> <!-- ko foreach: getRegion('example-class') --> <!-- ko template: getTemplate() --><!-- /ko --> …

1
Magento 2: ฉันจะโหลดกริด admin ด้วยค่าตัวกรองที่กำหนดไว้ล่วงหน้าได้อย่างไร
ฉันต้องการสร้างลิงค์ไปยังกริดที่กำหนดเองในผู้ดูแลระบบของฉันด้วยตัวกรองที่กำหนดไว้ล่วงหน้า กริดนั้นสร้างขึ้นด้วย UI Listing Component (XML) และมีคอลัมน์ที่เรียกform_idว่าติดตั้งดังนี้: <column name="form_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> <item name="label" xsi:type="string" translate="true">Form id</item> </item> </argument> </column> ตารางทำงานได้ดี ฉันสามารถใช้ตัวกรองและทุกอย่างทำงานได้ดี กริดได้รับการอัพเดทอย่างสวยงามด้วยคำขอ XHR อย่างไรก็ตาม ... ฉันต้องการที่จะมีค่าตัวกรองที่กำหนดไว้ล่วงหน้าในบางจุด ตัวอย่างเช่นฉันต้องการที่จะสามารถเปิดกริดเมื่อมันถูกกรองใน ID = 3 ดังนั้นฉันจึงลองโหลดหน้าเว็บที่มีพารามิเตอร์ URL เดียวกับคำขอ XHR รวมถึงเพียงเพิ่มพารามิเตอร์ที่จำเป็นเท่านั้น: ?namespace=form_response_listing&search=&filters[placeholder]=true&filters[form_id][from]=3&filters[form_id][to]=3&paging[pageSize]=20&paging[current]=1 เช่นเดียวกับ: ?filters[form_id][from]=3&filters[form_id][to]=3 ทั้งที่ไม่ประสบความสำเร็จ ดังนั้นฉันจะเติมตัวกรองล่วงหน้าโดยใช้ URL ได้อย่างไร แก้ไข: …
14 magento2  admin  grid  filter 

6
Magento 2: วิธีการแสดงฟิลด์ที่อยู่ในแบบฟอร์มลงทะเบียน?
ฉันต้องการแสดงฟิลด์ที่อยู่ (เพื่อบันทึกในที่อยู่สำหรับการเรียกเก็บเงินเริ่มต้น) ในแบบฟอร์มลงทะเบียนลูกค้า ฉันรู้ว่าต้องทำอย่างไรใน Magento 1. แต่ฉันหลงทางกับ Magento 2. เคยมีใครทำแบบนี้มาก่อน .. ? การอัปเดตไฟล์ xml ใด ๆ เช่นใน magento 1 <customer_account_create> <reference name="customer_form_register"> <action method="setData"><key>show_address_fields</key><value>1</value></action> </reference> </customer_account_create>

3
Magento2 - วิธีการแสดงเนื้อหาบล็อกในหน้าแรก
จะแสดงเนื้อหาบล็อกในหน้าแรกได้อย่างไร? หลังจากติดตั้ง magento2 โดยไม่มีข้อมูลตัวอย่างฉันเลือกชุดรูปแบบ 'Magento Luma' และเพิ่มบล็อก 'Home Page Block' และคัดลอกรหัสจากที่เก็บตัวอย่าง แต่ไม่มีอะไรปรากฏขึ้นในหน้าแรกฉันจะแสดงบล็อก cms ของฉันในหน้าแรกเช่นที่เก็บตัวอย่างได้อย่างไร บ้านของฉัน เก็บตัวอย่าง

4
การวางตำแหน่ง / สั่งซื้อไฟล์ CSS ใน Magento 2 เป็นวิธีที่เหมาะสมอย่างไร
ในMagento 2 DevDocมันบอกว่า หากต้องการรวมไฟล์ CSS ให้เพิ่มส่วน <css src = "<path> / <file>" media = "print | <option>" /> ในส่วน <head> ในไฟล์เลย์เอาต์ อย่างไรก็ตามมันไม่ได้บอกว่าเราจะมีอิทธิพลต่อลำดับของไฟล์ CSS ของเราได้อย่างไร และถ้าเราเพิ่มไฟล์ CSS ด้วยวิธีนี้ในธีมที่กำหนดเองซึ่งมีธีมหลักผลก็คือไฟล์จะถูกเพิ่มที่ส่วนบนของส่วน <head> พร้อมกับไฟล์ CSS อื่น ๆ จำนวนมากด้านล่างหมายความว่าลำดับความสำคัญของพวกเขาค่อนข้างมาก ต่ำและเราไม่สามารถแทนที่กฎได้อย่างง่ายดายจากธีมหลักหรือส่วนขยาย มีปัญหาคล้ายกันใน Magento 1 และมีวิธีแก้ไขเฉพาะหน้า บางคนทำความสะอาดมากกว่าคนอื่นน้อย วิธีที่ดีที่สุดในการสั่งซื้อไฟล์ CSS ของธีมที่กำหนดเองที่ด้านล่างของ <head> ใน Magento 2 คืออะไรถ้าเป็นไปได้ให้ปฏิบัติตามแนวทางการจัดวาง Magento 2 สำหรับธีมที่กำหนดเอง
14 magento2  layout  css  head 

6
เราจะพิมพ์อาเรย์ตัวแปรในล็อกไฟล์ของ Magento 2 ได้อย่างไร?
ฉันกำลังพยายามพิมพ์เนื้อหาตัวแปรอาเรย์ลงในไฟล์บันทึก ใน Magento 1 มันเป็นไปได้ที่จะใช้ Mage::log(print_r($arr, 1), null, 'logfile.log'); สำหรับ Magento 2 ในไฟล์คลาสฉันได้เขียนโค้ดต่อไปนี้: protected $_logger; public function __construct(\Psr\Log\LoggerInterface $logger) { $this->_logger = $logger; } private function getValuesAsHtmlList(\Magento\Framework\Object $object) { $options = $this->getOptions($object); //$this->_logger->addDebug($options ); $this->_logger->log(100,null,$options); } เมื่อฉันรันโค้ดหลังจากล้างแคชDebug.log& system.logไฟล์จะไม่แสดงเนื้อหาของอาร์เรย์ กรุณาแบ่งปันหากใครมีความคิดเกี่ยวกับมัน
14 magento2  log 

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