Magento

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

2
Magento 2 Navigation Menu ไม่แสดง
ฉันใหม่สำหรับ Magento ได้โปรดอดทนกับฉัน: D ฉันสร้างธีมสำเร็จแล้วซึ่งเป็นลูกของธีมว่าง ฉันพยายามทำให้เมนูทำงานและชีวิตของฉันก็ไม่สามารถมองเห็นได้ว่าทำไมมันจึงไม่แสดง ฉันได้อ่านหัวข้ออื่นสองสามเรื่องและไม่มีโชค ฉันได้เพิ่มหมวดหมู่รูทด้วยหมวดหมู่ย่อยในนั้น ฉันได้กำหนดให้กับการตั้งค่าร้านค้าแล้ว ฉันได้จัดทำดัชนีเว็บไซต์ล้างแคชใหม่และยังไม่มีความสุข ฉันกำลังทำสิ่งที่ถูกต้องโดยเพียงแค่เพิ่มหมวดหมู่และมันจะแสดง? ขอบคุณ ดูเหมือนว่าฉันไม่มีหมวดหมู่เริ่มต้น - ดูภาพหน้าจอด้านล่าง UPDATE ฉันได้ติดตั้ง Magento ใหม่บนเครื่องของฉัน เมนูแสดงได้ดีในธีม Luma และ Blank แต่ในแบบที่ฉันกำหนดเองมันไม่แสดง มีอะไรที่ฉันต้องรวมหรือตรวจสอบ? ขอบคุณสำหรับความช่วยเหลือ

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

2
ทำไมบางคลาสถึงกำหนด injections ในทั้งนวกรรมิกและ di.xml
ฉันไม่เข้าใจว่าทำไมในบางคลาสการประกาศการพึ่งพาของพวกเขาจึงถูกประกาศสองครั้ง - หนึ่งครั้งในdi.xmlและในคอนสตรัคเตอร์ของคลาสคอนกรีต ตัวอย่างเช่นในMagento\Backend\Model\Url, มันdi.xmlมีชุดประเภทนี้สำหรับการกำหนด DI: <type name="Magento\Backend\Model\Url"> <arguments> <argument name="scopeResolver" xsi:type="object"> Magento\Backend\Model\Url\ScopeResolver</argument> <argument name="authSession" xsi:type="object"> Magento\Backend\Model\Auth\Session\Proxy</argument> <argument name="formKey" xsi:type="object"> Magento\Framework\Data\Form\FormKey\Proxy</argument> <argument name="scopeType" xsi:type="const"> Magento\Store\Model\ScopeInterface::SCOPE_STORE </argument> <argument name="backendHelper" xsi:type="object"> Magento\Backend\Helper\Data\Proxy</argument> </arguments> </type> แต่ในเวลาเดียวกันในคลาสที่เป็นรูปธรรมคลาสเหล่านั้นที่กำหนดใน di.xml ที่จำเป็นสำหรับการฉีดจะถูกประกาศอีกครั้งใน Constructor: <?php public function __construct( \Magento\Framework\App\Route\ConfigInterface $routeConfig, \Magento\Framework\App\RequestInterface $request, \Magento\Framework\Url\SecurityInfoInterface $urlSecurityInfo, \Magento\Framework\Url\ScopeResolverInterface $scopeResolver, \Magento\Framework\Session\Generic $session, …

3
ฉันจะแทนที่ / เขียนคลาสบล็อกใน Magento 1 ได้อย่างไร
หมายเหตุ:คำถามนี้มีวัตถุประสงค์เพื่อเป็นคำถามมาตรฐานที่อธิบายการทำงานของการเขียนบล็อกใหม่อย่างสมบูรณ์และสามารถใช้เป็นเป้าหมายที่ซ้ำกันสำหรับคำถาม "ฉันจะเขียนทับบล็อก X" ได้อย่างไรหรือคำถาม "ทำไมการเขียนซ้ำของฉันไม่ทำงาน" ดูเพิ่มเติม: ค้นหาคำถามที่เป็นที่ยอมรับเกี่ยวกับการแทนที่ Magento 1 สมมติว่าฉันต้องทำการเปลี่ยนแปลงคลาสบล็อกหลักในโมดูลที่กำหนดเอง (เปลี่ยนวิธีหรือเพิ่มวิธี) ฉันจะทำสิ่งนี้ทีละขั้นตอนได้อย่างไร

5
Magento 2: วิธีปรับขนาดอิมเมจสำหรับ Custom Module
ฉันใช้ Magento 2 CE เวอร์ชั่น 2.1.0 ฉันมีโมดูลที่กำหนดเองพร้อมฟิลด์ภาพ เมื่ออัปโหลดแล้วฉันต้องการภาพขนาดแตกต่างกันสำหรับผลิตภัณฑ์ที่เรามีภาพขนาดย่อ, ภาพรายการและภาพหน้ารายละเอียดสินค้า สามารถอัพโหลดได้ 1 ภาพโดยไม่ต้องปรับขนาด ฉันใช้โค้ดด้านล่างเพื่อปรับขนาดภาพ แต่มันให้ URL ภาพผลิตภัณฑ์ ไม่ใช่โมดูลที่กำหนดเองของฉัน \ แอป \ รหัส \ กำหนดเอง \ โมดูล \ บล็อก \ MyPosts \ edit.php public function getImage($posts, $image) { $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $_imagehelper = $objectManager->get('Magento\Catalog\Helper\Image'); echo $postImage = $_imagehelper->init($posts, $image)->constrainOnly(FALSE)->keepAspectRatio(TRUE)->keepFrame(FALSE)->resize(400)->getUrl(); exit; } มันให้ …

2
วิธีการตั้งค่าและรับข้อมูลเซสชันลูกค้าใน magento 2
ฉันกำลังดิ้นรนกับวีโอไอพี 2 ครั้ง ฉันสร้างไฟล์คอนโทรลเลอร์ด้านล่างเป็นรหัสตัวอย่าง <?php namespace vendor_name\module_name\Controller\SetGetSession; use Magento\Framework\App\Action\Action; class SetGetSession extends Action { protected $customerSession; public function _construct( \Magento\Customer\Model\Session $customerSession ) { $this->customerSession = $customerSession; } public function execute() { } } ทุกคนสามารถช่วยฉันด้วยวิธีการกำหนดข้อมูลและดึงข้อมูลจากตัวแปรเซสชั่น? ขอขอบคุณ.

2
การกระทำสาธารณะในตัวควบคุมผู้ดูแลระบบ
ฉันได้ค้นพบว่าในชั้นเรียน\Magento\Backend\App\AbstractAction(บรรพบุรุษของทุกการกระทำของตัวควบคุมผู้ดูแลระบบ) มีสมาชิกชื่อ_publicActionsที่ใช้ในการตรวจสอบความลับคีย์เช่นนี้ if (is_array($this->_publicActions) && in_array($this->getRequest()->getActionName(), $this->_publicActions)) { return true; } ซึ่งหมายความว่าหากชื่อการกระทำบางอย่างอยู่ในรายการ_publicActionsคุณสามารถเข้าถึงการดำเนินการได้โดยไม่ต้องใช้รหัสลับใน URL นี่เป็นพรสำหรับการพัฒนาและการดีบักเนื่องจากคุณสามารถทำได้ROOT/admin/module/controller/actionด้วยตนเองโดยไม่จำเป็นต้องรู้รหัสลับของผู้ดูแลระบบ แต่สิ่งที่ฉันไม่เข้าใจคือเหตุผลที่ฉันสามารถเข้าถึงหน้าแก้ไขผลิตภัณฑ์โดยไม่มีรหัสลับได้ เพียงแค่โทรหน้าผลิตภัณฑ์แก้ไขใด ๆ ROOT/admin/catalog/product/edit/id/{product_id_here}เช่นนี้ publicActionsสมาชิกจะถูกเขียนทับสำหรับการสั่งซื้อ (ที่ช่วยให้ดัชนีและมุมมอง) ในผลิตภัณฑ์ (สำหรับการแก้ไข) และในการควบคุมการเปลี่ยนเส้นทางสำหรับการเปลี่ยนเส้นทาง ตอนนี้คำถามของฉัน: ทำไมการแก้ไขบางอย่างอนุญาตโดยไม่มีรหัสลับและเมื่อใด / ฉันควรอนุญาตให้โมดูล CRUD ที่กำหนดเองโดยไม่มีรหัสลับได้อย่างไร

7
Magento 2 รับรหัสลูกค้าจากเซสชันในคลาสบล็อก
จะรับรหัสลูกค้าจากเซสชันได้อย่างไร ฉันลอง แต่ไม่ได้ผล protected $_customerBonusPointFactory; protected $_customerSession; public function __construct(Session $customerSession, \Magento\Framework\View\Element\Template\Context $context) { $this->_customerSession = $customerSession; parent::__construct($context); } public function _prepareLayout() { var_dump($this->_customerSession->getCustomer()->getId()); exit(); return parent::_prepareLayout(); }

6
สินค้าคงเหลือยังคงปรากฏในส่วนหน้าการค้นหาและอื่น ๆ - Magento 2.1.0
ฉันเห็นว่าการติดตั้ง magento 2.1.0 ของฉันมีปัญหา! ปฏิเสธที่จะซ่อนสินค้าหมดจากหน้าค้นหาและหมวดหมู่! ฉันล้างแคชฉันทำดัชนีใหม่ แต่ไม่มีโชค! คุณสามารถให้คำแนะนำกับฉันได้ไหม? ผลิตภัณฑ์ของฉันอยู่ในสต็อก 0 แต่อยู่ข้างหน้าพวกเขาจะปรากฏในสต็อกและเมื่อคุณสั่งซื้อพวกเขามันทำให้คุณมีข้อผิดพลาดนี้: We don't have as many "Item's name" as you requested. ขอบคุณ แก้ไขภายหลัง: ฉันก็รู้ข้อมูลนี้: ตั้งค่าในผู้ดูแลระบบ> ร้านค้า> การกำหนดค่า> แคตตาล็อก> สินค้าคงคลัง> ตัวเลือกหุ้น> แสดงสินค้าหมดสต นี่เป็นคุณลักษณะของ Magento การตั้งค่าแสดงผลิตภัณฑ์ที่หมดสต็อกเป็นไม่เพียงซ่อนไว้จากหน้ารายการหมวดหมู่และหน้าผลการค้นหา หน้าผลิตภัณฑ์ยังคงใช้งานได้จริง เริ่มต้นด้วย CE 1.9.1 แม้กระทั่งข้อความภายใต้การตั้งค่าการกำหนดค่าแสดงสินค้าหมดว่าสินค้าจะยังคงแสดงโดย URL ผลิตภัณฑ์โดยตรง .. และนี่เป็นสิ่งที่ดีจริงๆ วิธีนี้เครื่องมือค้นหาไม่ได้ลงทะเบียนมากถึง 404 หน้าเมื่อผลิตภัณฑ์ของคุณหมดสต็อก ฉันไม่เห็นอันตรายจากการปล่อยให้เป็นเช่นนั้น ลูกค้าไม่สามารถสั่งซื้อได้ หากคุณต้องการให้ผลิตภัณฑ์ไม่สามารถใช้ได้ในร้านของคุณคุณต้องทำเครื่องหมายเป็นปิดการใช้งานหรือตั้งค่าการมองเห็นเป็นไม่ปรากฏเป็นรายบุคคลหรือลบการเชื่อมโยงไปยังเว็บไซต์จากแท็บเว็บไซต์ในหน้าแก้ไขผลิตภัณฑ์ผู้ดูแลระบบ ที่มา:สินค้าหมดสต็อกยังคงปรากฏในส่วนหน้า

1
ไม่สามารถประกาศอินเทอร์เฟซเนื่องจากชื่อนี้มีการใช้งานแล้ว
หลังจากสร้างอินเตอร์เฟสที่เรียบง่ายในโมดูลใหม่ของฉัน ฉันพิมพ์ในการตั้งค่าถังขยะ / วีโอไอพี: di: รวบรวมและฉันได้รับข้อผิดพลาดบอกว่าชื่อนี้มีการใช้งานแล้ว นี่คือรหัสของฉัน: namespace Company\Test\Api; /* * @api */ interface XyzInterface { public function getSomething(); } จากนั้นฉันได้รับข้อผิดพลาดนี้: Repositories code generation... 1/7 [====>-----------------------] 14% 2 secs 52.0 MiBPHP Fatal error: Cannot declare interface Company\Test\Api\XyzInterface, because the name is already in use in .../app/code/Company/Test/Api/XyzInterface.php on line 13 บรรทัดคือ …

5
จะสร้างปุ่มใน Magento 2 configuration ได้อย่างไร?
ฉันจะเพิ่มปุ่มในส่วนการกำหนดค่าแบ็กเอนด์ของ Magento 2 และเรียกใช้วิธี PHP อย่างง่ายเมื่อคลิกปุ่มได้อย่างไร การเรียกใช้วิธีนี้อาจเป็นการเรียก AJAX

1
Magento 2 - วิธีเพิ่มขั้นตอนการชำระเงินแบบพิเศษหลังจากส่วนการตรวจสอบและการชำระเงินด้วยปุ่มสั่งซื้อ
ฉันกำลังพยายามเพิ่มขั้นตอนการชำระเงินเพิ่มเติมหลังจากส่วน "ตรวจสอบและชำระเงิน" ข้อกำหนดคือการแยกการชำระเงินและการตรวจสอบเป็นขั้นตอนแยกต่างหาก เมื่อเลือกวิธีการชำระเงินหลังจากนั้นแล้วควรไปยังขั้นตอนสุดท้าย "ตรวจสอบ" ซึ่งจะต้องแสดงข้อมูลการสั่งซื้อทั้งหมดด้วยปุ่ม "สั่งซื้อ" จนถึงตอนนี้ฉันได้เพิ่มขั้นตอนที่กำหนดเองหลังจากขั้นตอนการชำระเงินโดยไปที่ลิงก์ด้านล่าง http://devdocs.magento.com/guides/v2.0/howdoi/checkout/checkout_new_step.html แต่ปัญหาที่นี่คือปุ่ม "สั่งซื้อสถานที่" ถูกผูกไว้กับขั้นตอนการชำระเงินฉันจำเป็นต้องย้ายปุ่มคำสั่งซื้อไปที่ขั้นตอนสุดท้าย ความช่วยเหลือใด ๆ ที่นิยมมากที่สุด !!

4
การยืนยันเมลสั่งซื้อสร้างข้อผิดพลาด DOMXPath :: query ()
ในการสั่งซื้ออีเมลมีข้อผิดพลาดต่อไปนี้และแสดงผลไม่ถูกต้อง CSS Inline Error: Warning: DOMXPath::query(): Invalid expression in .../vendor/pelago/emogrifier/Classes/Emogrifier.php on line 269 ฉันจะแก้ไขสิ่งนี้ได้อย่างไร


3
ข้อผิดพลาด Magento2 REST API 'ไม่มีคลาส'
ฉันได้สร้าง Magento 2.0.2 REST web service ตามบล็อกของ Alan: http://alankent.me/2015/07/24/creating-a-new-rest-web-service-in-magento-2/ ฉันใช้บุรุษไปรษณีย์เพื่อโทรหาบริการเว็บที่กำหนดเองและได้รับข้อผิดพลาดต่อไปนี้: "message": "Class does not exist", "code": -1, "trace": "#0 P:\\wwwroot\\Magento202_com_loc\\Web\\vendor\\magento\\framework\\Webapi\\ServiceInputProcessor.php(128): ReflectionClass->__construct('')\n#1 P:\\wwwroot\\Magento202_com_loc\\Web\\vendor\\magento\\framework\\Webapi\\ServiceInputProcessor.php(262): Magento\\Framework\\Webapi\\ServiceInputProcessor->_createFromArray(NULL, '30')\n#2 P:\\wwwroot\\Magento202_com_loc\\Web\\vendor\\magento\\framework\\Webapi\\ServiceInputProcessor.php(99): Magento\\Framework\\Webapi\\ServiceInputProcessor->convertValue('30', NULL)\n#3 P:\\wwwroot\\Magento202_com_loc\\Web\\vendor\\magento\\module-webapi\\Controller\\Rest.php(262): Magento\\Framework\\Webapi\\ServiceInputProcessor->process('Test\\\\Calculator...', 'add', Array)\n#4 P:\\wwwroot\\Magento202_com_loc\\Web\\vendor\\magento\\module-webapi\\Controller\\Rest.php(160): Magento\\Webapi\\Controller\\Rest->processApiRequest()\n#5 P:\\wwwroot\\Magento202_com_loc\\Web\\var\\generation\\Magento\\Webapi\\Controller\\Rest\\Interceptor.php(24): Magento\\Webapi\\Controller\\Rest->dispatch(Object(Magento\\Framework\\App\\Request\\Http))\n#6 P:\\wwwroot\\Magento202_com_loc\\Web\\vendor\\magento\\framework\\App\\Http.php(115): Magento\\Webapi\\Controller\\Rest\\Interceptor->dispatch(Object(Magento\\Framework\\App\\Request\\Http))\n#7 P:\\wwwroot\\Magento202_com_loc\\Web\\vendor\\magento\\framework\\App\\Bootstrap.php(258): Magento\\Framework\\App\\Http->launch()\n#8 P:\\wwwroot\\Magento202_com_loc\\Web\\index.php(39): Magento\\Framework\\App\\Bootstrap->run(Object(Magento\\Framework\\App\\Http))\n#9 {main}" ฉันสามารถโทรหาบริการเว็บ REST ของ Magento ได้อย่างประสบความสำเร็จ app / รหัส …

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