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

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

7
Magento 2.2.1 ไม่สามารถทำให้เป็นอนุกรมมูลค่า
ฉันได้อัปเกรดเว็บไซต์จาก 2.1.6 เป็น 2.2.1 และหันหน้าไปทางไม่สามารถทำให้เกิดข้อผิดพลาดค่าต่อเนื่องในส่วนหน้าและส่วนหลัง {"0":"Unable to serialize value.","1":"#0 \/var\/www\/vhosts\/demo.com\/eiselec\/vendor\/magento\/framework\/Translate.php(494): Magento\\Framework\\Serialize\\Serializer\\Json->serialize(Array)\n #1 \/var\/www\/vhosts\/demo.com\/eiselec\/vendor\/magento\/framework\/Translate.php(190): Magento\\Framework\\Translate->_saveCache()\n #2 \/var\/www\/vhosts\/demo.com\/eiselec\/vendor\/magento\/framework\/App\/Area.php(244): Magento\\Framework\\Translate->loadData(NULL, false)\n #3 \/var\/www\/vhosts\/demo.com\/eiselec\/vendor\/magento\/framework\/App\/Area.php(215): Magento\\Framework\\App\\Area->_initTranslate()\n #4 \/var\/www\/vhosts\/demo.com\/eiselec\/vendor\/magento\/framework\/App\/Area.php(142): Magento\\Framework\\App\\Area->_loadPart('translate')\n #5 \/var\/www\/vhosts\/demo.com\/eiselec\/vendor\/magento\/framework\/View\/DesignLoader.php(55): Magento\\Framework\\App\\Area->load('translate')\n #6 \/var\/www\/vhosts\/demo.com\/eiselec\/vendor\/magento\/framework\/App\/Action\/Plugin\/Design.php(48): Magento\\Framework\\View\\DesignLoader->load()\n #7 \/var\/www\/vhosts\/demo.com\/eiselec\/vendor\/magento\/framework\/Interception\/Interceptor.php(121): Magento\\Framework\\App\\Action\\Plugin\\Design->beforeDispatch(Object(Magento\\Cms\\Controller\\Index\\Index\\Interceptor), Object(Magento\\Framework\\App\\Request\\Http))\n #8 \/var\/www\/vhosts\/demo.com\/eiselec\/vendor\/magento\/framework\/Interception\/Interceptor.php(153): Magento\\Cms\\Controller\\Index\\Index\\Interceptor->Magento\\Framework\\Interception\\{closure}(Object(Magento\\Framework\\App\\Request\\Http))\n #9 \/var\/www\/vhosts\/demo.com\/eiselec\/generated\/code\/Magento\/Cms\/Controller\/Index\/Index\/Interceptor.php(39): Magento\\Cms\\Controller\\Index\\Index\\Interceptor->___callPlugins('dispatch', Array, Array)\n #10 \/var\/www\/vhosts\/demo.com\/eiselec\/vendor\/magento\/framework\/App\/FrontController.php(55): Magento\\Cms\\Controller\\Index\\Index\\Interceptor->dispatch(Object(Magento\\Framework\\App\\Request\\Http))\n #11 \/var\/www\/vhosts\/demo.com\/eiselec\/vendor\/magento\/framework\/Interception\/Interceptor.php(58): Magento\\Framework\\App\\FrontController->dispatch(Object(Magento\\Framework\\App\\Request\\Http))\n #12 \/var\/www\/vhosts\/demo.com\/eiselec\/vendor\/magento\/framework\/Interception\/Interceptor.php(138): …
12 magento2  upgrade 

1
น้ำหนักและค่าการจัดส่งของเฟดเอ็กซ์ไม่ได้ตั้งค่าในขณะที่สร้างคำสั่งโดยทางโปรแกรม
ฉันกำลังพยายามสร้างคำสั่งซื้อแบบเป็นโปรแกรมโดยใช้วิธีการจัดส่งของ FedEx วิธีการอื่น ๆ ทำงานได้ดีเมื่อฉันตั้งค่าให้ FedEx ได้รับข้อผิดพลาดเช่นโปรดระบุวิธีการจัดส่ง หลังจากตรวจแก้จุดบกพร่องฉันรู้ว่าน้ำหนักและค่าเป็นศูนย์ แต่ฉันพูดถึงน้ำหนักและมูลค่าของผลิตภัณฑ์ รหัส: Create.php <?php namespace yourmodule\namespace\Helper; class Create extends \Magento\Framework\App\Helper\AbstractHelper { /** * @param Magento\Framework\App\Helper\Context $context * @param Magento\Store\Model\StoreManagerInterface $storeManager * @param Magento\Catalog\Model\Product $product * @param Magento\Framework\Data\Form\FormKey $formKey $formkey, * @param Magento\Quote\Model\Quote $quote, * @param Magento\Customer\Model\CustomerFactory $customerFactory, * @param Magento\Sales\Model\Service\OrderService $orderService, */ …

3
Magento2 - ตั้งค่า: di: รวบรวม
ฉันทำงานในโครงการที่มีรหัสที่กำหนดเอง ... นี่เป็นโครงการ "สื่อกลาง" Magento 2 ครั้งแรกของเราดังนั้น (เพราะทุกคนที่นี่ฉันคิดว่า) ทุกวันที่เราเรียนรู้สิ่งใหม่และเราต้องเปลี่ยนวิธีจัดการ กับเวอร์ชั่นใหม่ของ Magento เหตุผลสำหรับคำถามนี้คือการถามเกี่ยวกับคำสั่ง setup:di:compile ฉันใช้มันมาตั้งแต่วันแรกกับ Magento 2 ในขณะที่ bin / magento ขอให้ทุกคนsetup:upgradeพร้อมกับข้อความ"โปรดเรียกใช้คำสั่งรวบรวม Magento อีกครั้ง" ดี ... ฉันได้พบว่าการดำเนินการsetup:di:compileแบ่งหน้าดูผลิตภัณฑ์ในโครงการนี้ด้วยข้อผิดพลาดร้ายแรงที่ไม่ชัดเจนทั้งหมด ฉันใช้เวลาทั้งวันในการพยายามแก้ไขข้อบกพร่องและทดสอบกับการเปลี่ยนรหัสโดยไม่มีผลลัพธ์ วันนี้ฉันได้ค้นพบว่าถ้าฉันไม่ใช้คำสั่งนั้นทุกอย่างก็ใช้งานได้อย่างมีเสน่ห์แม้ในโหมดการผลิต ดังนั้นคำถามคือ ... setup:di:compileคำสั่งนั้นทำอะไรกันแน่? จำเป็นหรือไม่ เพิ่งแนะนำ หรือเป็นคำสั่งที่เลิกใช้แล้วซึ่งไม่จำเป็นต้องดำเนินการ UPDATE เนื่องจากผู้ใช้บางรายจำเป็นต้องใช้นี่เป็นข้อผิดพลาดร้ายแรงที่ฉันอ้างถึง ข้อผิดพลาดร้ายแรงของ PHP: ไม่สามารถยกตัวอย่างคลาส Magento \ Catalog \ Block \ Product \ View \ AbstractView …


1
สิ่งที่ทำให้ "ไม่ตรงกันของเอนทิตีในเอกสาร" เมื่อเรียกใช้การโยกย้าย: เดลต้า
ฉันอัปเกรดฐานข้อมูล magento 1.4.1 เป็น 1.4.2 สำเร็จแล้วเป็น 1.6.0 ฉันก็ประสบความสำเร็จก็สามารถโยกย้าย: การตั้งค่าและโยกย้าย: ข้อมูลจากฐานข้อมูล 1.6.0 ไปยังฐานข้อมูล Magento 2.1.2 ของฉัน (ทุกอย่างดูดีมาก! ... ) ตั้งแต่นั้นมาฉันทำงานบนไซต์ 2.1.2 การเพิ่มชุดรูปแบบใหม่เปลี่ยนการตั้งค่าบางอย่างและบล็อก cms ที่แก้ไข ฉันทำทั้งหมดนี้โดยมีสมมติฐานว่าฉันสามารถเรียกใช้การย้ายข้อมูล: เดลต้าและนำลูกค้าใหม่และข้อมูลการสั่งซื้อมาใช้เพราะนั่นคือทั้งหมดที่ฉันจะต้องเปิดตัวเว็บไซต์ใหม่ (ฉันยังไม่ได้สร้างคำสั่งซื้อหรือลูกค้าใหม่ในฐานข้อมูล 2.1.2) ในความพยายามที่จะโยกย้ายของฉัน: เดลต้า (หลังจากฉันเรียกใช้กระบวนการอัปเกรด 1.4.1 -> 1.6.0 อีกครั้งเพื่อรับข้อมูลสดในปัจจุบัน) ฉันพบข้อผิดพลาดในการขาดตารางเดลตาล็อก (พร้อมคำนำหน้า m2cl *) ฉันดึงตารางเหล่านั้นซึ่งว่างทั้งหมดจากฐานข้อมูลแรกที่ฉันย้ายมา สิ่งนี้ทำให้ฉันสามารถเรียกใช้การโยกย้าย: เดลต้าพร้อมคำเตือนต่อไปนี้: 2017-01-25 23:32:29][INFO][mode: delta][stage: delta delivering][step: Customer Attributes Step]: started …

3
วิธีแสดง HTML ด้วย AJAX ใน Magento 2
ฉันพยายามค้นหาวิธีที่ดีที่สุดในการแสดง HTML ผ่าน AJAX ใน Magento 2 วิธีที่ 1: การใช้ตัวควบคุมโดยไม่มีเค้าโครง ไฟล์ Foo/Bar/Controller/Popin/Content.php <?php namespace Foo\Bar\Controller\Popin; use Magento\Framework\App\Action\Action; use Magento\Framework\App\Action\Context; /** * Class Content */ class Content extends Action { /** * Content constructor. * * @param Context $context */ public function __construct( Context $context ) { parent::__construct($context); } /** * …

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

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, …

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

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