编程方式创建客户

要在 Magento 2 系统中创建新的客户,你可以从 Magento 2 商店后台向注册表单中填写完整的信息。但是,如果要想创建来自不同地址(城市,州/省,国家/地区)的大量新客户并且同时还要将这些信息发送到不同的客户组,这将非常耗时。因此,将这篇主题为 《Magento 2 以编程方式创建客户》的教程提供给开发人员,并且可以直接使用以下代码。

以编程方式创建客户概览

  • 运行代码段

  • 总结

运行代码段

下面的代码段就是你全部要做的工作,当您要以编程方式创建客户时,请将其插入到控制台。

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
        $customerSetupFactory = $objectManager->create('Magento\Customer\Setup\CustomerSetupFactory');

        $setupInterface = $objectManager->create('Magento\Framework\Setup\ModuleDataSetupInterface');

        $customerSetup = $customerSetupFactory->create(['setup' => $setupInterface]);

        $customerEntity = $customerSetup->getEavConfig()->getEntityType('customer');
        $attributeSetId = $customerEntity->getDefaultAttributeSetId();

        $attributeSetFactory = $objectManager->create('Magento\Eav\Model\Entity\Attribute\SetFactory');

        /** @var $attributeSet AttributeSet */
        $attributeSet = $attributeSetFactory->create();
        $attributeGroupId = $attributeSet->getDefaultGroupId($attributeSetId);

        $customerSetup->addAttribute(\Magento\Customer\Model\Customer::ENTITY, 'attribute_code', [
            'type' => 'varchar',
            'label' => 'Attribute Title',
            'input' => 'text',
            'required' => false,
            'visible' => true,
            'user_defined' => true,
            'sort_order' => 1000,
            'position' => 1000,
            'system' => 0,
        ]);
        //add attribute to attribute set
        $attribute = $customerSetup->getEavConfig()->getAttribute(\Magento\Customer\Model\Customer::ENTITY, 'attribute_code')
        ->addData([
            'attribute_set_id' => $attributeSetId,
            'attribute_group_id' => $attributeGroupId,
            'used_in_forms' => ['adminhtml_customer'],
        ]);

        $attribute->save();

总结

根据这段代码的介绍,我相信用编程的方式创建新客户会让你感到轻松和省时。尤其是,当你想创建许多客户,您可以循环使用这部分代码,并快速完成所有操作。

本教程翻译自Mageplaza模块开发系列,其他内容请点击下面链接: