当前位置: 技术文章>> 如何在Magento 2中创建新产品时设置自定义默认数量

文章标题:如何在Magento 2中创建新产品时设置自定义默认数量
  • 文章分类: Magento
  • 11605 阅读
系统学习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中创建新产品时如何设置自定义默认数量。使用所描述的代码,您可以将数量设置为您喜欢的任何数字。


推荐文章