Magento

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

3
มีเหตุผลใดที่จะชอบ $ model-> load () มากกว่าสัญญาบริการหรือไม่?
ฉันเข้าใจว่าวิธีที่ต้องการใช้ระหว่างโมดูลใน Magento 2 คือการใช้สัญญาบริการ ดังนั้นถ้าฉันต้องการโหลดผลิตภัณฑ์ฉันใช้ที่เก็บผลิตภัณฑ์: $product = $productRepository->getById($id); Magento\Catalog\Api\Data\ProductInterfaceซึ่งเป็นตามสัญญากลับตัวอย่างของ แต่ฉันสามารถใช้วิธีเดิมแทนการเรียกเลเยอร์โดเมนโดยตรง: $product = $productFactory->create()->load($id); มีกรณีใดบ้างที่จำเป็นหรือมีประโยชน์? devdocs พูด (เน้นเพิ่ม): โมดูลสามารถโทรเข้าสู่โมดูลอื่นโดยตรง โซลูชั่นนี้คู่แน่นไม่แนะนำสำหรับสถานการณ์ส่วนใหญ่ แต่บางครั้งก็หลีกเลี่ยงไม่ได้ [ ... ] กลยุทธ์ของคุณสำหรับการเรียกรหัสโดเมนของโมดูลอื่นนั้นขึ้นอยู่กับการกำหนดค่าและความต้องการของระบบของคุณเป็นพิเศษ ที่มา: http://devdocs.magento.com/guides/v2.0/architecture/archi_perspectives/domain_layer.html และความคิดเห็นเกี่ยวกับคำถามที่เกี่ยวข้องระบุไว้: การใช้พื้นที่เก็บข้อมูลจะทำให้คุณมีแบบจำลองข้อมูลผลิตภัณฑ์( Api/Data/Product) ซึ่งเป็นรูปแบบผลิตภัณฑ์ที่ถูกแปลงเป็น DTO ที่ล้าสมัย สิ่งที่ควรพิจารณาเนื่องจากมันค่อนข้างแตกต่างกัน แต่เท่าที่ฉันสามารถเห็นวัตถุเหมือนกันภายใต้สภาวะปกติเพียงแค่ชนิดส่งคืนต่อ phpDoc แตกต่างกัน ( Magento\Catalog\Api\Data\ProductInterface/ Magento\Catalog\Model\Product)

2
การกรองคลังเก็บวัตถุวีโอไอพี 2
ใน Magento 2 คุณสามารถใช้ที่เก็บผลิตภัณฑ์เพื่อกรองตามคุณสมบัติของผลิตภัณฑ์ได้หรือไม่? ใน Magento 2 คุณสามารถใช้วัตถุเงื่อนไขการค้นหา \Magento\Framework\Api\SearchCriteriaInterface $searchCriteria, และพื้นที่เก็บข้อมูล \Magento\Catalog\Api\ProductRepositoryInterface $productRepository, เพื่อดึงรายการของวัตถุ $searchCriteria->getPageSize(10); $list = $productRepository->getList($searchCriteria); อย่างไรก็ตามวัตถุ searchCriteria ไม่มี (ดูเหมือนว่า?) มีความสามารถในการกรองโดยตรง ชั้นเกณฑ์การค้นหาไม่มีวิธีการสำหรับการเพิ่มสิ่งที่เรียกว่า filterGroups #File: lib/internal/Magento/Framework/Api/SearchCriteria.php public function getFilterGroups() { $filterGroups = $this->_get(self::FILTER_GROUPS); return is_array($filterGroups) ? $filterGroups : []; } public function setFilterGroups(array $filterGroups = null) { return $this->setData(self::FILTER_GROUPS, …

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

3
ไม่สามารถโหลดวัตถุคำพูด
ไม่sales/quoteทำงานวัตถุแตกต่างกว่าวัตถุอื่น ๆ เมื่อโหลด? ดูต่อไปนี้ .. ผลงาน: $quote = Mage::getModel('sales/quote')->getCollection() ->addFieldToFilter('entity_id', $quoteId) ->getFirstItem(); print_r($quote->getData()); // shows right data ไม่สำเร็จ: $quote = Mage::getModel('sales/quote')->load($quoteId); print_r($quote->getData()); // empty ทั้งสองอย่าง$quoteนั้นถูกต้องของคลาส, Mage_Sales_Model_Quote.
24 sales  quote  ee-1.12 

6
เนื้อหาแบบคงที่ไม่ได้โหลดหลังจากการอัพเกรด
หลังจากอัปเกรดจาก Magento 2.1.0 เป็น Magento 2.1.3 (โดยใช้ผู้แต่ง) เนื้อหาแบบคงที่จะไม่โหลดอีกต่อไป ในคอนโซลของเบราว์เซอร์ฉันเห็นว่าไฟล์ทั้งหมดไม่พร้อมใช้งาน (404): ฉันไม่เห็นไดเรกทอรีที่มีชื่อversion*ในpubไดเรกทอรี สิ่งที่ฉันทำไปแล้วแต่ไม่ได้ช่วย: ตั้งค่าสิทธิ์ทั้งหมดเป็น777แต่ไม่สำเร็จ ล้างแคช ลบ pub/static/* สร้างเนื้อหาสแตติกใหม่อีกครั้ง แทนที่.htaccessไฟล์ (ในpub/staticไดเรกทอรี) ด้วยไฟล์จากพื้นที่เก็บข้อมูลอย่างเป็นทางการ ข้อมูลอื่น: mod_rewrite เปิดใช้งาน FollowSymLinksได้รับอนุญาต (ในการกำหนดค่าโฮสต์เริ่มต้นและท้องถิ่น.htaccess) การกำหนดค่านี้ทำงานได้ดีกับ Magento 2.1.0 ก่อนที่จะอัปเดตเป็น 2.1.3 pub/static เขียนได้ ข้อเสนอแนะใด ๆ


2
วัตถุประสงค์ของวัตถุคืออะไรในตัวสร้างคลาสใด DI บริบททำงานอย่างไร
ในคอนสตรัคเตอร์ของคลาสส่วนใหญ่วัตถุบริบทจะถูกส่งผ่าน ฉันไม่เข้าใจว่า Obj บริบทนี้ทำงานอย่างไร ฉันยังสังเกตเห็นว่าบางครั้งสิ่งนี้ถูกส่งผ่านไปยังคอนสตรัคเตอร์ของผู้ปกครองในชั้นล่าง public function __construct( \Magento\Framework\App\Action\Context $context, \Magento\Catalog\Model\Design $catalogDesign, \Magento\Catalog\Model\Session $catalogSession, .... parent::__construct( $context, $layoutFactory, คุณกรุณาอธิบายว่าวัตถุบริบทนี้ทำงานอย่างไร

2
วิธีที่เหมาะสมสำหรับการทดสอบหน่วยโค้ด PHP7 ด้วย PHPUnit 4.1 ใน Magento 2 คืออะไร
เมื่อฉันเขียนโมดูลของฉันฉันพยายามจัดหาการทดสอบหน่วยสำหรับส่วนที่สำคัญที่สุดของแอปพลิเคชัน อย่างไรก็ตามในขณะนี้ (Magento 2.1.3) มีหลายวิธีในการเขียนแบบทดสอบหน่วย: วิธีทดสอบต่าง ๆ รวมเข้ากับbin/magento dev:tests:run unitและรันบนการตั้งค่า phpunit เริ่มต้นที่มาพร้อมกับ Magento เขียนแยกต่างหากเรียกใช้พวกเขาด้วยvendor/bin/phpunit app/code/Vendor/Module/Test/Unitและเยาะเย้ยทุกอย่างที่เป็นวีโอไอพี เขียนแยกต่างหากจำลองทุกอย่างและใช้ PHPUnit เวอร์ชันสากลของระบบ เขียนแยกต่างหากเรียกใช้ด้วยvendor/bin/phpunitแต่ยังใช้งาน\Magento\Framework\TestFramework\Unit\Helper\ObjectManagerได้ Magento 2 และ PHPUnit นอกจากนั้น Magento 2 ยังมาพร้อมกับ PHPUnit 4.1.0 ซึ่งไม่รองรับ PHP7 ชาวบ้านประเภทการบอกใบ้ (ชอบstringและ `int) และการประกาศผลตอบแทนประเภทในลายเซ็นของคุณจะทำให้เกิดข้อผิดพลาด ตัวอย่างเช่นอินเตอร์เฟส / คลาสที่มีลายเซ็นเมธอดดังนี้: public function foo(string $bar) : bool; ... จะไม่สามารถเยาะเย้ยโดย PHPUnit 4.1.0 :-( สถานการณ์ปัจจุบันของฉัน …

2
Magento 2: ประโยชน์ของการใช้ส่วนประกอบกริด UI บน Grid.php มาตรฐานคืออะไร
Magento 2 ได้แนะนำส่วนประกอบของ UI หนึ่งในนั้นคือ UI Component Grid (คุณสามารถหาข้อมูลเพิ่มเติมได้ที่นี่: คำอธิบายของ UI Component Grid ใน Magento 2 ) เมื่อสร้างโมดูลที่กำหนดเองฉันติดกับวิธี Magento 1 เก่าฉันได้สร้างGrid.phpไฟล์ที่จัดการกริด adminhtml ของฉัน ฉันสงสัยว่าประโยชน์ของการใช้กริดส่วนประกอบ UI แทนGrid.phpวิธีการคืออะไร?

6
Mage :: log () ไม่ทำงานกับ Magento update ใหม่ (1.9.4.1)
หลังจากอัปเดตใหม่นี้ (1.9.4.1) Mage :: log () ไม่ทำงาน เห็นได้ชัดว่ามันมีบางอย่างZend_Validate_File_Extensionเกี่ยวกับon line 819 ที่ Mage.php ซึ่งจะตรวจสอบว่าไฟล์is_readable()ก่อนหน้านั้นมีอยู่จริงหรือไม่ ฉันย้อนกลับlog()วิธีการทั้งหมดเป็นรุ่นก่อนหน้าและทำงานได้อีกครั้ง ช่องทางหลักที่ฉันสามารถติดต่อทีม Magento เพื่อรายงานปัญหานี้คืออะไร

4
Magento 2 - วิธีรับสินค้าทั้งหมดในตะกร้า
ที่หน้าชำระเงิน ( chekout/cart) ฉันต้องการแก้ไข URL ปลายทางของปุ่มชำระเงินตามรายการในรถเข็น ( link.phtml) ฉันจะรับสินค้าทั้งหมดในตะกร้าได้อย่างไร ฉันต้องการทำสิ่งนี้โดยไม่ใช้ API ขอบคุณ

5
ลายน้ำรับพื้นหลังสีดำเมื่อโปร่งใส
ฉันได้ติดตั้ง PATCH SUPEE 9767 ในร้านค้าคุณภาพเยี่ยม 1.9.2.4 ตอนนี้ฉันได้อัปโหลดลายน้ำใหม่แล้ว แต่พื้นหลังเปลี่ยนเป็นสีดำ นี่เป็นปัญหาตั้งแต่การอัพเดทใหม่หรือไม่? ในการติดตั้ง magento 1.9.2.4 อื่น ๆ ที่ไม่ได้ติดตั้งการอัปเดตมีพื้นหลังยังคงโปร่งใส

1
Magento 2: การเพิ่ม HTML Arbitrary ไปที่ <head> ของทุกหน้า?
ใน Magento 2 เป็นไปได้หรือไม่ที่จะเพิ่ม HTML ให้กับส่วนหน้า / รถเข็น&lt;head/&gt;? ฉันรู้ว่าฉันสามารถเพิ่มบล็อกลงในเนื้อหา / &lt;body&gt;พื้นที่ด้วยรหัสบางอย่างเช่นนี้ &lt;page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"&gt; &lt;body&gt; &lt;referenceBlock name="content"&gt; &lt;block type="Pulsestorm\Test\Block\Head" name="pulsestorm.head" as="pulsestorm.head" template="pulsestorm/head.phtml"/&gt; &lt;/referenceBlock&gt; &lt;/body&gt; &lt;/page&gt; อย่างไรก็ตามยังไม่ชัดเจนหากมีบล็อกที่คล้ายกันสำหรับการเพิ่มเนื้อหาใน&lt;head/&gt;องค์ประกอบของหน้า ฉันได้ดูไซต์ dev docs และซอร์สโค้ดแล้วและมีการอ้างอิงมากมายเกี่ยวกับแท็กใหม่ที่คุณสามารถใช้กับ&lt;head/&gt;แท็กได้ &lt;head&gt; &lt;css.../&gt; &lt;js.../&gt; &lt;/head&gt; แต่ฉันไม่พบการอ้างอิงถึงวิธีการเพิ่ม html / text ใด ๆ ลงใน&lt;head/&gt;ส่วนของหน้าใน Magento 2
23 php  layout  magento2 


5
เล่น Magento 2 ผ่าน FastCGI (ไม่ใช่ mod_php) บน OS X ผ่านทาง Brew Packages
ขึ้นอยู่กับการโพสต์ฟอรั่มต่างๆและการสนทนาในชุมชนดูเหมือนว่าคนบางคนกำลังทำงานกรณีการพัฒนาวีโอไอพี 2 ใน OS X ผ่านสภาพแวดล้อม PHP ที่ไม่ได้ใช้ในตัว Apache / PHP คำสั่งผสมและแทนที่จะใช้แพคเกจจากbrewที่จะได้รับ FastCGI PHP สภาพแวดล้อมและทำงานกับและnginx / หรือapache ไม่มีใครมีรายการคำสั่งและคำแนะนำการกำหนดค่าสำหรับการใช้ Magento 2 และทำงานบน OS X โดยใช้แพ็คเกจการชงหรือวิธีการอื่น ๆ สำหรับการใช้งาน PHP ในสภาพแวดล้อม FastCGI บน OS X ผมไม่ได้มองหานักเทียบท่าหรือคนจรจัด - ฉันต้องการใช้ PHP natively บน OS X mod_phpและต้องการอยากจะใช้
23 magento2  php 

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