Magento

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

8
คำถามที่คาดหวังในการสัมภาษณ์ผู้พัฒนาตำแหน่ง Magento Junior
ประการแรกฉันอยากจะบอกว่าฉันหวังว่าฉันจะไม่โพสต์ผิดที่กับคำถามนี้และถ้าฉันโปรดแนะนำฉันที่ (ถ้าที่ใดก็ได้ในโลก stackexchange มีความเหมาะสม) ฉันควรโพสต์มัน ฉันมีบทสัมภาษณ์สองสามข้อที่กำลังจะเกิดขึ้นสำหรับตำแหน่งนักพัฒนาระดับต้นของ Magento ฉันมีประสบการณ์ในการพัฒนา Magento แต่ฉันไม่เคยสัมภาษณ์งานเหล่านี้ดังนั้นฉันจึงไม่แน่ใจว่าจะเกิดอะไรขึ้น ฉันขอขอบคุณความคิดเห็นและคำตอบทั้งหมดและฉันคิดว่าโพสต์นี้อาจเป็นประโยชน์กับผู้พัฒนารุ่นเยาว์รายอื่น ๆ ที่พยายามเจาะเข้าสู่วีโอไอพี
33 product  cart  catalog 

6
เพิ่มรูปแบบคงที่ในหน้า PHTML และบล็อก CMS: Magento2
ฉันจะเพิ่มรูปภาพนิ่งบนหน้า PHTML และบล็อก CMS ลงใน Magento2 ได้อย่างไร ใน Magento 1.x มันเป็นไปได้ที่จะใช้$this->getSkinUrl('images/xyz.jpg') ฉันกำลังลองวิธีต่อไปนี้ใน Magento2 ในไฟล์ HTML: <img src=”<?php echo $this->getViewFileUrl(‘images/footer-logo.png’); ?>” alt=”Demo”> ในบล็อก CMS: <img src=”{{view url=”images/slide-bg.jpg”}}” alt=”” /> แต่มันทำงานไม่ถูกต้อง กรุณาแนะนำฉันผิดพลาดของฉัน

7
Magento 2: ฉันจะปรับใช้ชุดรูปแบบของฉันเท่านั้น
ฉันใช้สิ่งนี้เพื่อปรับใช้เนื้อหา แต่ใช้เวลานานเกินไป php bin/magento setup:static-content:deploy ฉันคิดว่าการเพิ่มภาษาทำได้เร็วขึ้น แต่ก็ยังคงปรับใช้ธีมทั้งหมด php bin/magento setup:static-content:deploy en_US ฉันจะ deployเฉพาะเนื้อหาธีมของฉันเท่านั้นได้อย่างไร

15
Magento 2.2: ไม่สามารถยกเลิกการตั้งค่าได้หรือไม่
พบปัญหาในเว็บไซต์ที่ใช้Magento 2.2.0-rc3.0 / PHP 7.0.23 ปัญหาต่อไปนี้เกิดขึ้นกับส่วนขยายของบุคคลที่สามทั้งหมดที่เปิดใช้งานหรือปิดใช้งาน เมื่อเพิ่มรายการเพื่อเปรียบเทียบจากหมวดหมู่หรือหน้าผลิตภัณฑ์หรือส่งคำวิจารณ์จากหน้าผลิตภัณฑ์เราได้รับข้อผิดพลาดต่อไปนี้ในเบราว์เซอร์: 1 exception(s): Exception #0 (InvalidArgumentException): Unable to unserialize value. Exception #0 (InvalidArgumentException): Unable to unserialize value. #0 /home/___/public_html/app/code/Magento/Theme/Controller/Result/MessagePlugin.php(157): Magento\Framework\Serialize\Serializer\Json->unserialize('[{\\"type\\":\\"su...') #1 /home/___/public_html/app/code/Magento/Theme/Controller/Result/MessagePlugin.php(135): Magento\Theme\Controller\Result\MessagePlugin->getCookiesMessages() #2 /home/___/public_html/app/code/Magento/Theme/Controller/Result/MessagePlugin.php(84): Magento\Theme\Controller\Result\MessagePlugin->getMessages() #3 /home/___/public_html/lib/internal/Magento/Framework/Interception/Interceptor.php(146): Magento\Theme\Controller\Result\MessagePlugin->afterRenderResult(Object(Magento\Framework\View\Result\Page\Interceptor), Object(Magento\Framework\View\Result\Page\Interceptor), Object(Magento\Framework\App\Response\Http\Interceptor)) #4 /home/___/public_html/lib/internal/Magento/Framework/Interception/Interceptor.php(153): Magento\Framework\View\Result\Page\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Response\Http\Interceptor)) #5 /home/___/public_html/generated/code/Magento/Framework/View/Result/Page/Interceptor.php(26): Magento\Framework\View\Result\Page\Interceptor->___callPlugins('renderResult', Array, Array) #6 /home/___/public_html/lib/internal/Magento/Framework/App/Http.php(139): Magento\Framework\View\Result\Page\Interceptor->renderResult(Object(Magento\Framework\App\Response\Http\Interceptor)) #7 /home/___/public_html/lib/internal/Magento/Framework/App/Bootstrap.php(256): …

3
Magento 2: ปลั๊กอินก่อน / หลัง / หลังการโต้ตอบ
ใน Magento 2 เมื่อคุณสร้างปลั๊กอิน "รอบ" public function aroundRenderResult( \Magento\Framework\Controller\ResultInterface $subject, \Closure $proceed, ResponseHttp $response ) { //... $proceed($response); //... } คุณสามารถดำเนินการต่อไปปลั๊กอินรอบต่อไปปิดท้ายด้วยการเรียกวิธีการเดิมที่เกิดขึ้นจริงโดยการเรียก / อัญเชิญผ่านใน$proceedวิธีการ นี่เป็นรูปแบบการออกแบบทั่วไปที่มักพบในการใช้มิดเดิลแวร์ PHP Frameworks อย่างไรก็ตาม - มันนำเสนอความสับสนโดยไม่มีข้อมูลการใช้งาน เฉพาะ หากนอกเหนือไปจากaroundPluginวัตถุ / คลาสยังมีการกำหนดbeforeหรือafterปลั๊กอินเมื่อใดพวกมันจะเริ่มสัมพันธ์กับสายโซ่ของปลั๊กอิน คือวิธีทั้งหมดก่อนที่จะยิงก่อนที่จะมีวิธีการใด ๆ ไฟปลั๊กอิน? หรือก่อนที่ปลั๊กอินจะยิงก่อนที่ไฟสุดท้ายจะเกิดขึ้นจริงหรือไม่ ปัญหาเฉพาะฉันพยายามที่จะติดตามลงคือผมไม่สามารถดูเหมือนจะได้รับปลั๊กอินที่ติดอยู่กับวิธีการจัดส่งที่ควบคุมวีโอไอพี 2 หน้าเมื่อวีโอไอพีในโหมดแคชเต็มหน้า แคชเต็มหน้าดำเนินการโดยปลั๊กอินรอบ ๆ ที่ไม่ได้$proceed($response)โทร ฉันได้ลองขุดลงในโค้ดบางส่วนรอบ ๆ ปลั๊กอินเหล่านี้และพบว่าระบบนั้นยากที่จะให้เหตุผลโดยไม่ทราบว่าปลั๊กอินนั้นทำงานอย่างไร ie - คำอธิบายในหน้าเอกสาร devจะปรากฏขึ้นในอินสแตนซ์ที่เฉพาะเจาะจงนี้อันใดอันหนึ่งที่ไม่ถูกต้อง …

3
magento 2 วิธีการเรียกฟังก์ชั่นบล็อกใด ๆ ใน phtml
ฉันจะเรียกใช้ฟังก์ชันบล็อกใด ๆ ใน phtml ใด ๆ ได้อย่างไร ตัวอย่างเช่นถ้าฉันต้องการเรียกใช้ฟังก์ชั่นบล็อกที่กำหนดเองของฉันในรายการ list.phtml

2
รับรายละเอียดการสั่งซื้อตามรหัสการสั่งซื้อ
ฉันจำเป็นต้องเรียกคืนคำสั่งซื้อใน Magento ด้วยรหัสของมัน ฉันจะโหลดคำสั่งซื้อเฉพาะด้วยรหัสได้อย่างไร จนถึงตอนนี้ฉันได้รับข้อความค้นหาเริ่มต้นที่สร้างแล้ว: Mage::getModel('sales/order');
32 orders 

5
ทำไมหนึ่งไม่สามารถเปลี่ยนกลับไปเป็นโหมดเริ่มต้นบน Magento 2 ได้?
ดังนั้นฉันจึงเปลี่ยนเป็นโหมดผู้พัฒนาในขณะที่พัฒนาโครงการ Magento 2 โดยใช้คำสั่งต่อไปนี้: php bin/magento deploy:mode:set developer ดีมากฉันได้รับข้อความนี้และฉันก็พัฒนาเว็บไซต์ให้ดี: โหมดแอปพลิเคชันปัจจุบัน: ผู้พัฒนา ด้วยเหตุผลบางอย่างฉันต้องการกลับไปที่defaultโหมดเพื่อตรวจสอบพฤติกรรมของเว็บไซต์ในโหมดนี้ ไม่มีเหตุผลเฉพาะที่บอกตามตรงฉันแค่อยากกลับไปใช้โหมดนี้ ดังนั้นฉันจึงรันคำสั่งต่อไปนี้: php bin/magento deploy:mode:set default แต่ฉันได้รับข้อผิดพลาดแปลก ๆ นี้โดยไม่มีคำอธิบายเพิ่มเติม: Cannot switch into given mode "default" ฉันตรวจสอบไฟล์ต่อไปนี้ที่จัดการการตั้งค่าโหมดMagento/Deploy/Console/Command/SetModeCommand.phpและนี่คือสิ่งที่ฉันพบ: switch($toMode) { case State::MODE_DEVELOPER: $modeController->enableDeveloperMode(); break; case State::MODE_PRODUCTION: if ($skipCompilation) { $modeController->enableProductionModeMinimal(); } else { $modeController->enableProductionMode(); } break; default: throw new LocalizedException(__('Cannot …

3
แสดง / ซ่อนบล็อคในเค้าโครง XML โดยมีเงื่อนไข
วิธีเพิ่มบล็อกแบบมีเงื่อนไข (ขึ้นอยู่กับการกำหนดค่าในแผงการดูแลระบบ) ใน XML เลย์เอาต์ของ Magento? เราสามารถตรวจสอบว่าการตั้งค่าเป็นจริงกับการกระทำ ในตัวอย่างด้านล่างหากการsample/config/show_toplinksกำหนดค่าจากแผงควบคุม (ในระบบ -> การกำหนดค่า) เป็นจริงไฟล์แม่แบบlinks.phtmlจะถูกใช้เพื่อแสดงผลลิงก์ยอดนิยม หากsample/config/show_toplinksเป็นเท็จจะมีการใช้แม่แบบเริ่มต้น <reference name="top.links"> <action method="setTemplate" ifconfig="sample/config/show_toplinks"> <template>page/template/links.phtml</template> </action> </reference> ฉันพบวิธีแก้ปัญหานี้ที่ใดที่หนึ่งในเว็บ เราสามารถตั้งค่าเทมเพลตเปล่าเป็นเทมเพลตเริ่มต้นสำหรับลิงค์ยอดนิยมเช่นนี้: <reference name="top.links"> <action method="setTemplate" ifconfig="sample/config/show_toplinks"> <template>page/template/links.phtml</template> </action> <!-- OR set completely empty template --> <action method="setTemplate"> <template>page/template/empty_template_for_links.phtml</template> </action> </reference> ในกรณีนี้ถ้าsample/config/show_toplinksเป็นจริงเทมเพลตlinks.phtmlจะถูกใช้และลิงก์ยอดนิยมจะปรากฏขึ้น แต่ถ้าsample/config/show_toplinksเป็นเท็จแล้วempty_template_for_links.phtmlแม่แบบจะถูกใช้และแม่แบบที่จะสมบูรณ์ว่างจึงไม่กลับมาใช้ HTML และลิงก์ยอดนิยมจะมองไม่เห็น มีวิธีอื่นที่จะแสดงหรือซ่อนบล็อคตามเงื่อนไขโดยขึ้นอยู่กับการกำหนดค่าในแผงควบคุมหรือไม่ วิธีแก้ปัญหานี้ปลอดภัยหรือไม่ สิ่งนี้สามารถทำให้เกิดข้อผิดพลาดที่ไม่คาดคิดได้หรือไม่? แก้ไข: …
32 template  layout  blocks  xml 

3
การสร้างการจัดส่งโดยทางโปรแกรม
ฉันพบวิธีการต่าง ๆ ในการสร้างการจัดส่งโดยทางโปรแกรม พวกเขาเป็น //Type 1 $converter=Mage::getModel('sales/convert_order'); $shipment=$converter->toShipment($order); // snip //Type 2 $shipment = Mage::getModel('sales/service_order', $order) ->prepareShipment($this->_getItemQtys($order)); // snip //Type 3 $shipment = Mage::getModel('sales/service_order', $order)->prepareShipment($itemQty); $shipment = new Mage_Sales_Model_Order_Shipment_Api(); $shipmentId = $shipment->create($orderId); // snip ความแตกต่างระหว่างวิธีการเหล่านี้มีสามวิธีซึ่งเป็นวิธีการที่เหมาะสมในการสร้างการจัดส่งและเพิ่มหมายเลขการติดตาม

2
Magento 2 - เพราะเหตุใด Magento \ Checkout \ Model \ Cart เลิกใช้แล้ว
ตั้งแต่ Magento 2.1 รถเข็นมี@deprecatedแท็ก อย่างไรก็ตามวีโอไอพีเองก็ยังใช้เพื่อเก็บสินค้าเมื่อซื้อ การคัดค้านมีวัตถุประสงค์และถ้าเป็นเช่นนั้นและเราควรใช้อะไรแทน


5
Magento2 - เพิ่มตัวเลือกคุณลักษณะของผลิตภัณฑ์โดยทางโปรแกรม
วิธีที่ถูกต้อง (เป็นทางการ) ในการเพิ่มตัวเลือกคุณลักษณะของผลิตภัณฑ์ใน M2 คืออะไร เช่นสำหรับmanufacturerคุณสมบัติของผลิตภัณฑ์ ตัวเลือกที่มีอยู่ชัดเจนจะถูกจับคู่โดยค่าชื่อ "ผู้ดูแลระบบ"
32 magento2 


4
Magento 2: มี Profiler ไหม?
Magento 2 มี profiler หรือไม่? Stores -> Settings -> Configuration -> Developer -> Debug แผงยังคงมีอยู่ แต่ไม่มีการตั้งค่าสำหรับผู้สร้างโปรไฟล์ที่นั่น หาก Magento 2 มี profiler มันสามารถกำหนดค่าผ่าน GUI ได้หรือไม่? หากไม่สามารถกำหนดค่าได้ด้วย GUI คุณจะเปิดใช้งานได้อย่างไร

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