系统学习magento二次开发,推荐小册:《Magento中文全栈二次开发 》
本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。
按照下面描述的步骤在Magento2.3中创建新产品时设置自定义默认数量。
您要做的第一件事是创建一个文件app\code\Vendor\Extension\etc\adminhtml\di.xml
创建文件后,使用以下代码修改默认数量
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <virtualType name="Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\Pool"> <arguments> <argument name="modifiers" xsi:type="array"> <item name="defaultQtyModifier" xsi:type="array"> <item name="class" xsi:type="string">VENDOR\EXTENSION\Ui\DataProvider\Product\Form\Modifier\DefaultQtyModifier</item> <item name="sortOrder" xsi:type="number">200</item> </item> </argument> </arguments> </virtualType> </config>
如果您的商店有多个供应商,请为每个供应商执行上述步骤。
现在,当上述步骤完成后,创建一个文件,app\code\Vendor\Extension\Ui\DataProvider\Product\Form\Modifier\DefaultQtyModifier.php
现在,创建文件后,使用以下代码将新产品的自定义默认数量设置为您喜欢的任何数字
<?php namespace Vendor\Extension\Ui\DataProvider\Product\Form\Modifier; use Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\AbstractModifier; use Magento\Catalog\Model\Locator\LocatorInterface; class DefaultQtyModifier extends AbstractModifier { public function __construct( LocatorInterface $locator ) { $this->locator = $locator; } public function modifyData(array $data) { $model = $this->locator->getProduct(); $modelId = $model->getId(); if (!isset($data[$modelId][self::DATA_SOURCE_DEFAULT]['quantity_and_stock_status']['qty'])) { $data[$modelId][self::DATA_SOURCE_DEFAULT]['quantity_and_stock_status']['qty'] = 25; } return $data; } public function modifyMeta(array $meta) { return $meta; } }
在这里,您可以定义自定义数量编号,而不是 25,并且可以为不同的用户组设置不同的自定义数量。对于批发用户,数量可以设置为 50 或 100。
因此,在本文中,您已经学习了在默认Magento 2.3中创建新产品时如何设置自定义默认数量。使用所描述的代码,您可以将数量设置为您喜欢的任何数字。