Magento

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


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. / รวมไฟล์เลย์เอาต์ทั้งหมดจากรายการ ฉันจะดีบักและดูไฟล์เลย์เอาต์สำหรับทุกขั้นตอนของกระบวนการนี้ได้อย่างไร

1
Magento Backend 404 สำหรับขอบเขตการกำหนดค่า“ เว็บไซต์” ทั้งหมดสองรายการ
ใน Multiwebsite / Multistore ของเรา (ดู) Magento 1.9.2.2 การกำหนดค่าหนึ่งในเว็บไซต์รวมถึงร้านค้าและมุมมองร้านค้าจะต้องถูกลบออก ในขณะที่การลบตัวเองเป็นไปด้วยดี (ฉันได้ทำมาก่อน) ฉันได้ลงเอยด้วยแบ็กเอนด์ที่ 404 ถ้าคุณเปลี่ยนขอบเขตการกำหนดค่าปัจจุบันของคุณเป็นเว็บไซต์ใดก็ได้ยกเว้นสองเว็บไซต์ การเลือกขอบเขตการกำหนดค่าใหม่จะส่งผลให้มีการร้องขอ URL ต่อไปนี้ (เปลี่ยนเส้นทางผู้ดูแลระบบ + แป้น): /index.php/mymageadmin/system_config/edit/section/dev/website/<WEBSITE>/key/1221231/ โดยที่<WEBSITE>เท่ากับcodeฟิลด์ในcore_websiteตาราง ด้วยการเข้าสู่ระบบแบบสอบถาม mysql ฉันเห็นว่าทั้งสองเว็บไซต์ที่สามารถโหลดได้สำเร็จมีคำถามเหล่านี้เกี่ยวกับการเลือกเว็บไซต์ / storeview: SELECT `main_table`.* FROM `core_config_data` AS `main_table` WHERE (`scope` = 'websites') AND (`scope_id` = '4') AND (`path` LIKE 'dev/%') SELECT `core_website`.* FROM `core_website` WHERE …

1
สำหรับแผนการรักษาความปลอดภัยของ PayPal 2016 เราคาดหวังได้เลยว่าจะมีแพตช์จาก Magento หรือไม่?
การตรวจสอบ IPN Postback เป็น HTTPS Magento ใช้ https://www.paypal.comเป็น postback url สำหรับ IPN แต่คำแนะนำของ PayPal คือ ipnpb.paypal.com ( http://screencast.com/t/pbGcUDXw ) ตามเป้าหมายของหมวดนี้ Magento คือ ใช้ URL url แล้ว แต่สำหรับคำแนะนำของ PayPal เราสามารถคาดหวังแพตช์จาก Magento ได้หรือไม่?

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 

1
ส่งอีเมลถึงลูกค้าเมื่อสร้างใบแจ้งหนี้โดยทางโปรแกรม
ในขณะที่สร้างใบแจ้งหนี้โดยทางโปรแกรมฉันจะทำให้ระบบส่งอีเมลใบแจ้งหนี้ไปยังลูกค้าได้อย่างไร $order=Mage::getModel('sales/order')->load($orderid); $invoice = Mage::getModel('sales/service_order', $order)->prepareInvoice(); if (!$invoice->getTotalQty()) { Mage::throwException(Mage::helper('core')->__('Cannot create an invoice without products.')); } $invoice->setRequestedCaptureCase(Mage_Sales_Model_Order_Invoice::CAPTURE_ONLINE); $invoice->register(); $transactionSave = Mage::getModel('core/resource_transaction') ->addObject($invoice) ->addObject($invoice->getOrder()); $transactionSave->save();

2
วิธีการทำให้ไฟล์. html เอียงและทำความสะอาด
เนื่องจากนามสกุลไฟล์แนะนำว่า.phtmlไฟล์อนุญาตให้ใช้โค้ด PHP ผสมกับ HTML ได้ แต่ความจริงที่ว่าคุณสามารถไม่ควรถูกมองว่าเป็นใบอนุญาตในการไปป่า ทำไมเรายังคงเห็นไฟล์. php มากมายเต็มไปด้วย PHP จำนวนมาก? และอะไรคือวิธีที่ดีในการลดปริมาณ PHP ใน.phtmlไฟล์
14 php  blocks  template  phtml 

2
อะไรคือสาเหตุของข้อผิดพลาด“ ตัวควบคุมด้านหน้าถึง 100 เราเตอร์ที่ตรงกับการวนซ้ำ” ข้อผิดพลาด?
ในฐานะนักพัฒนาวีโอไอพีที่ฉันต้องเผชิญกับปัญหานี้หลายครั้งฉันรู้ว่ามันเป็นปัญหาการกำหนดค่าที่ผิดพลาดเมื่อมันเกิดขึ้นบางโมดูลไม่ถูกโหลดทั้งเราเตอร์ของพวกเขาทำให้เกิดข้อผิดพลาด เวลาส่วนใหญ่จะได้รับการแก้ไขโดยไม่มีการดำเนินการในบางครั้งคุณอาจล้างแคช ฉันได้อ่านหลาย ๆ โพสต์เกี่ยวกับเรื่องนี้พยายามที่จะแก้ปัญหาการวางรหัสพิเศษบางอย่างใน Magento core Front controller app/code/core/Mage/Core/Controller/Varien/Front.phpแต่ในตอนท้ายนี้จะแสดงเฉพาะโมดูลเราเตอร์ที่หายไปไม่ใช่สาเหตุที่พวกเขาไม่ได้โหลด ทุกครั้งที่มันเกิดขึ้นฉันพยายามที่จะดูว่า URL ใดที่ทำให้เกิดข้อผิดพลาด แต่นี่เป็นข้อมูลที่ไร้ประโยชน์เช่นเดียวกับการติดตามโค้ด มันเหมือนกันเสมอ บางทีมันอาจเกิดจากความขัดแย้งของโมดูล? บางทีมันเป็นงาน cron ที่ทำอะไรผิดพลาด? อาจมีรหัสผิดในเวอร์ชั่นเก่ากว่า Magento หรือไม่ สิ่งที่เป็นปัญหานี้ไม่ได้เกิดขึ้นตั้งแต่ 1.7 รุ่น (หรือถ้ามันเกิดขึ้นแล้วมันเป็นระยะ ๆ ) ฉันพบความแตกต่างของโค้ดในโฟลว์หลักเช่น Mage::register('application_params', $params); กำลังใช้วิธีเรียกใช้ () ของapp/code/core/Mage/Core/Model/App.phpหรือ $this->_shouldSkipProcessModulesUpdates() เช็คอินวิธี_initModules () ... ฉันต้องการที่จะเชื่อว่าควรมีใครบางคนที่ได้พบสาเหตุที่ชัดเจน เคล็ดลับใด ๆ

1
วิธีการใช้ฐานข้อมูลเป็น slow_backend แทนที่จะเป็นไฟล์ใน Magento EE 1.12
ในวีโอไอพี EE 1.12.0.0 มันจะดูเหมือนว่าไม่ว่าสิ่งกำหนดค่าการเปลี่ยนแปลงฉันจะทำให้ไม่มีapp/etc/local.xmlแคชแฟ้มเริ่มต้นยังคงถูกนำมาใช้ (ซึ่งเป็นหลักฐานด้วยvar/cache/เสมอกรอก) ความคาดหวัง Memcached ใช้เป็น fast_backend ฐานข้อมูลถูกใช้เป็น slow_backend ไฟล์แคชไม่ได้ใช้เลย (เช่นvar/cache/ควรว่างเสมอ) เอาต์พุตที่แท้จริง Memcached ใช้เป็น fast_backend ฐานข้อมูลไม่ได้ใช้เลย กำลังใช้แคชไฟล์ ขั้นตอนการทดสอบ app/etc/local.xmlทำให้เกิดการเปลี่ยนแปลงการกำหนดค่า รีสตาร์ท Memcached และ Apache (สำหรับการวัดที่ดีและมันอยู่ในกล่อง dev ท้องถิ่นของฉันดังนั้นฉันอาจจะเช่นกัน) ล้างแคชไฟล์ ( rm -rf var/cache/*) รีเฟรชหน้าแรก ตรวจสอบเนื้อหาของไฟล์แคช ( ls var/cache) กลายเป็นเศร้าและกลับไปที่ # 1 ด้วยการเปลี่ยนแปลงการกำหนดค่าที่แตกต่างกัน การกำหนดค่า เนื้อหาของฉันapp/etc/local.xmlเป็นดังนี้: <config> <global> <install> <date><![CDATA[{{actual_data}}]]></date> </install> <crypt> …

1
ค้นหาแคตตาล็อก: หากมีเพียงผลลัพธ์เดียวให้แสดงหน้ามุมมองผลิตภัณฑ์ที่ใส่ไว้ในมุมมองรายการ
เป้าหมายของฉันคือการปรับเปลี่ยนต่อไปนี้ในการค้นหาแคตตาล็อก Magento เมื่อฉันค้นหาผลิตภัณฑ์และมีเพียงหนึ่งผลิตภัณฑ์ที่ถูกส่งคืนในการรวบรวมผลลัพธ์ฉันต้องการแสดงในหน้ามุมมองผลิตภัณฑ์แทนหน้ารายการผลิตภัณฑ์ คุณสามารถให้คำแนะนำกับฉันได้อย่างไรว่าฉันควรเริ่มค้นหาและทำการเปลี่ยนแปลงนี้อย่างไร ในขณะนี้ฉันหลงทางอยู่ในโค้ดจำนวนมากทั้งหมดนี้ ใช้ Magento 1.9.0.1


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