Magento 2是一个电子商务研发项目,旨在促进Magento Core产品的改进。用PHP-Zend Framework编写。可在开源和商业许可下使用。
我必须使下拉列表可搜索,其中下拉选项将基于用户输入我必须使用 jquery 来触发搜索功能每当用户在下拉列表中键入任何字母
Facebook PageView 事件忽略如果锚改变但 url 仍然存在
所以我目前正在将 facebook 像素代码加载到我的页面头部,并在加载后自动发送 PageView 事件,但由于某种原因,当我想避免时,它的跟踪锚点会发生变化
默认 php 服务器无法访问 MAC 上的 magento2
我正在尝试使用默认的 Apache 服务器在我的 MAC 机器上运行 magento2。 我已经安装了所有其他必需的依赖项。 增加了 php.ini 中的内存限制和其他限制 还安装了 El...
Magento 2 在下订单和保存地址时将自定义列数据从 quote_address 和 sale_order_address 带入 customer_address_entity
我在 sale_order_address quote_address 和 customer_address_entity 中创建了一个自定义字段 iso2。 我正在使用 graphql 来设置账单和送货地址。数据在 quote_addre 中显示正常...
在 CMS 页面中调用 phtml 文件不工作 Magento2
我正在构建一个模块,我需要在位于 ap 的 CMS 页面中调用我的视图文件
我有一个名为 ProductUpdateInterface 的接口,代码如下 /var/www/html/app/code/AdmNetsuitePQ/NetsuitePQ/registration.php 我有一个名为 ProductUpdateInterface 的接口,代码如下 /var/www/html/app/code/AdmNetsuitePQ/NetsuitePQ/registration.php <?php \Magento\Framework\Component\ComponentRegistrar::register( \Magento\Framework\Component\ComponentRegistrar::MODULE, 'AdmNetsuitePQ_NetsuitePQ', __DIR__ ); /var/www/html/app/code/AdmNetsuitePQ/NetsuitePQ/Model/ProductUpdate.php <?php namespace AdmNetsuitePQ\NetsuitePQ\Model; use Magento\Framework\Exception\InputException; use Magento\Framework\Exception\NoSuchEntityException; use Magento\Framework\Webapi\Exception as HTTPExceptionCodes; use Magento\Catalog\Api\ProductRepositoryInterface; use Magento\Catalog\Model\ProductFactory; use AdmNetsuitePQ\NetsuitePQ\Api\ProductUpdateInterface; class ProductUpdate implements ProductUpdateInterface { /** * @var ProductRepositoryInterface */ protected $productRepository; public function __construct( ProductRepositoryInterface $productRepository ) { $this->productRepository = $productRepository; } /** * {@inheritdoc} */ public function update($productId, $price = null, $quantity = null) { $productId = (int) $productId; $product = $this->productRepository->getById($productId); if (!$product->getId()) { throw new NoSuchEntityException(__('Product with ID %1 not found.', $productId)); } if ($price !== null && $price < 0) { throw new InputException(__('Price must be greater than or equal to 0.')); } if ($quantity !== null && $quantity < 0) { throw new InputException(__('Quantity must be greater than or equal to 0.')); } if ($price !== null) { $product->setPrice($price); } if ($quantity !== null) { $product->setQty($quantity); $product->setIsQtyDecimal(false); } $this->productRepository->save($product); return true; } } /var/www/html/app/code/AdmNetsuitePQ/NetsuitePQ/Api/ProductUpdateInterface.php <?php namespace AdmNetsuitePQ\NetsuitePQ\Api; interface ProductUpdateInterface { /** * Update product quantity and price * * @param int $productId * @param float|null $price * @param float|null $quantity * @return bool * @throws \Magento\Framework\Exception\NoSuchEntityException * @throws \Magento\Framework\Exception\InputException * @throws \Magento\Framework\Exception\StateException * @throws \Magento\Framework\Exception\LocalizedException */ public function update($productId, $price = null, $quantity = null); } /var/www/html/app/code/AdmNetsuitePQ/NetsuitePQ/etc/module.xml <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"> <module name="AdmNetsuitePQ_NetsuitePQ" setup_version="1.0.0"> </module> </config> /var/www/html/app/code/AdmNetsuitePQ/NetsuitePQ/etc/webapi.xml <?xml version="1.0"?> <routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Webapi:etc/webapi.xsd"> <route url="/V1/product/update" method="POST"> <service class="AdmNetsuitePQ\NetsuitePQ\Api\ProductUpdateInterface" method="update"/> <resources> <resource ref="Magento_Catalog::products"/> </resources> <data> <parameter name="productId" force="true">123</parameter> <parameter name="price" force="false">12.5</parameter> <parameter name="quantity" force="false">20</parameter> </data> </route> </routes> 现在当我通过邮递员发送数据时 POST /rest/V1/product/update HTTP/1.1 Host: my_site.com Content-Type: application/json Authorization: OAuth oauth_consumer_key="j9q7uilt4trla8hsi5lo1gtbtuh46icr",oauth_token="df4lz1gasp0su25rbwnp225kxfwknehn",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1678733662",oauth_nonce="kfxspsm3a2n",oauth_version="1.0",oauth_signature="sdKx5cO%2BU7fePuKPWfgZy5ZCAks%3D" Cookie: PHPSESSID=23vl60opom23c1gfqalnh914e9 Content-Length: 65 { "productId": 123, "price": 12.5, "quantity": 20 } 现在当我执行这些时(实际上这些是 Magento2 模块中的代码)我得到以下错误 致命错误:未捕获错误:无法实例化接口 AmdNetsuitePQ\NetsuitePQ\Api\ProductUpdateInterface 请帮忙解决这个错误 您需要告诉 magento 给定接口的默认类是什么,以便能够在您的 webapi 定义中使用该接口。 AdmNetsuitePQ/NetsuitePQ/etc/di.xml <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <preference for="AdmNetsuitePQ\NetsuitePQ\Api\ProductUpdateInterface" type="AdmNetsuitePQ\NetsuitePQ\Model\ProductUpdate" /> </config> “Cannot instantiate interface”的错误通常表示代码中使用的接口不能直接实例化,因为它只定义了方法签名,没有任何实现。 要解决此错误,您需要确保您在代码中使用的是接口的实际实现类。在这种情况下,您应该在 webapi.xml 文件中使用 ProductUpdate 类,而不是 ProductUpdateInterface 接口。 为此,请替换 webapi.xml 中的以下行: <service class="AdmNetsuitePQ\NetsuitePQ\Api\ProductUpdateInterface" method="update"/> 与: <service class="AdmNetsuitePQ\NetsuitePQ\Model\ProductUpdate" method="update"/> 此更改将使用 ProductUpdate 类作为 ProductUpdateInterface 接口的实现类,并且应该允许代码正常运行。
使用Magento 2等待所有敲除组件加载到Cypress中
我们正在运行基于 Elgentos 的 Cypress 测试套件的 Magento End2end 测试。 有些测试在某些情况下会失败,而在其他情况下运行良好。 我们想避免重试测试和静态 ...
从 magento 2 中的所有浏览器注销前端用户 与帐户共享设置为 no 的管理员登录完全相同
在 magento 2 中是否有可能,当客户尝试从前端登录时,如果同一客户已经登录任何其他浏览器或机器,则必须自动注销。 和 magento 2 一样...
我有一个名为 ProductUpdateInterface 的接口,代码如下 我有一个名为 ProductUpdateInterface 的接口,代码如下 <?php namespace AmdNetsuitePQ\NetsuitePQ\Api; interface ProductUpdateInterface { /** * Update product quantity and price * * @param int $productId * @param float|null $price * @param float|null $quantity * @return bool * @throws \Magento\Framework\Exception\NoSuchEntityException * @throws \Magento\Framework\Exception\InputException * @throws \Magento\Framework\Exception\StateException * @throws \Magento\Framework\Exception\LocalizedException */ public function update($productId, $price = null, $quantity = null); } 还有 ProductUpdate 类。请看下面的代码 <?php namespace AmdNetsuitePQ\NetsuitePQ\Model; use Magento\Framework\Exception\InputException; use Magento\Framework\Exception\NoSuchEntityException; use Magento\Framework\Webapi\Exception as HTTPExceptionCodes; use Magento\Catalog\Api\ProductRepositoryInterface; use Magento\Catalog\Model\ProductFactory; use AmdNetsuitePQ\NetsuitePQ\Api\ProductUpdateInterface; class ProductUpdate implements ProductUpdateInterface { /** * @var ProductRepositoryInterface */ protected $productRepository; public function __construct( ProductRepositoryInterface $productRepository ) { $this->productRepository = $productRepository; } /** * {@inheritdoc} */ public function update($productId, $price = null, $quantity = null) { $productId = (int) $productId; $product = $this->productRepository->getById($productId); if (!$product->getId()) { throw new NoSuchEntityException(__('Product with ID %1 not found.', $productId)); } if ($price !== null && $price < 0) { throw new InputException(__('Price must be greater than or equal to 0.')); } if ($quantity !== null && $quantity < 0) { throw new InputException(__('Quantity must be greater than or equal to 0.')); } if ($price !== null) { $product->setPrice($price); } if ($quantity !== null) { $product->setQty($quantity); $product->setIsQtyDecimal(false); } $this->productRepository->save($product); return $productId; } } 现在当我执行这些时(实际上这些是 Magento2 模块中的代码)我得到以下错误 致命错误:未捕获错误:无法实例化接口 AmdNetsuitePQ\NetsuitePQ\Api\ProductUpdateInterface 请帮忙解决这个错误
Getting undefind variable error & don't konw how to fix
****警告:/var/www/html/magento2/app/code/Custom/HelloWord/Controller/Hello/Event.php 中未定义变量 $item ** **` ****警告:/var/www/html/magento2/app/code/Custom/HelloWord/Controller/Hello/Event.php 中的未定义变量 $item ** **` <?php namespace Custom\HelloWord\Controller\Hello; class Event extends \Magento\Framework\App\Action\Action { public function execute() { $textDisplay = new \Magento\Framework\DataObject(array('text' => 'Custom')); $this->_eventManager->dispatch('sales_quote_remove_item', ['quote_item' => $item]); echo $textDisplay->getText(); exit; } }`
Paypal沙盒问题“抱歉,系统好像挂了,请稍后再试。”在 Magento 下订单时
我在 Magento 2(版本 2.3.6)中设置配置以使用付款方式(沙盒 Paypal)。两周前一切正常,今天,我遇到了这个问题“抱歉,系统似乎已关闭。请...
在 Magento 2 REST Api 中获取所有具有自定义属性的类别
我正在使用 Magento 2 rest api 列出所有类别。 {{production_url}}/index.php/rest/V1/categories 它将返回所有类别, { “编号”:2, “parent_id”:...
我已经完成了 Magento 2.2.5 CE 的默认安装,当我在 Magento Admin 中单击订单时,出现以下错误: “订单视图。该部分已进行信息更改...
我想在 magento 2 中更改主题。问题是客户不希望网站关闭 3 天,所以我有时间修复新设计并添加客户图像和信息。 如果我买...
Magento 2 是否有可能在动态可下载产品页面上为客户显示带有 2 个价格的下拉菜单(作为可配置选项):个人使用价格和商业价格...
Magento 2.3.4 minicart 仅在产品详细信息页面上不起作用
我在我的自定义主题的标题上添加了一个迷你车。问题是添加到购物车的商品仅显示在产品详细信息页面上。在其他页面上,minicart 下拉菜单仅显示 ch ...
Magento 2 - 在哪里可以找到完整的 REST API 文档
官方 Magento 2 REST API 文档似乎不完整。 我在我们一位前同事的应用程序中找到了这段代码: 受保护的函数 addItemToCart($cartId, $cartItem) {
我已经在 Magento2(Hyva 主题)中添加了这个自定义轮播,但是左箭头根本不起作用。 右边的(下一个)工作正常且流畅,但是单击左箭头(上一个)上的
Magento 2 后端 MIME 类型('text/html')不可执行,并且严格 MIME
我全新安装了 Magento(OS X 上的 Apache)。前端工作,但后端坏了:控制台给出 Refused to apply style from '' because its MIME type ('text/html') is not a