Creating and save customer attribute
public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
{
$setup->startSetup();
if (version_compare($context->getVersion(), '0.1.1') < 0)
{
$customerSetup = $this->_customerSetupFactory->create(['setup' => $setup]);
$customerEntity = $customerSetup->getEavConfig()->getEntityType('customer');
$attributeSetId = $customerEntity->getDefaultAttributeSetId();
/**@var $attributeSet AttributeSet */
$attributeSet = $this->_attributeSetFactory->create();
$attributeGroupId = $attributeSet->getDefaultGroupId($attributeSetId);
$customerSetup->addAttribute(Customer::ENTITY, 'sp_id', [
'type' => 'varchar',
'label' => 'SiemprePago Id',
'input' => 'text',
'required' => 0,
'visible' => 1,
'user_defined' => 0,
'sort_order' => 200,
'position' => 150,
'system' => 0,
'is_used_in_grid' => false,
'is_visible_in_grid' => false,
'is_filterable_in_grid' => false,
'is_searchable_in_grid' => false
]);
$attributeSpId = $customerSetup->getEavConfig()->getAttribute(Customer::ENTITY, 'sp_id');
$attributeSpId->addData([
'attribute_set_id' => $attributeSetId,
'attribute_group_id' => $attributeGroupId,
'used_in_forms' => [
'adminhtml_customer'
]
])->save();
}
$setup->endSetup();
}
/** @var \Magento\Customer\Model\ResourceModel\Customer $customerResource */
$customerResource = $this->_objectManager->create('Magento\Customer\Model\ResourceModel\Customer');
$customerFactory = $this->_objectManager->create('Magento\Customer\Model\CustomerFactory');
/** @var \Magento\Customer\Model\Customer $customer */
$customer = $customerFactory->create();
$customerResource->load($customer,4);
$customerData = $customer->getDataModel();
$customerData->setCustomAttribute('sp_id', '1462');
$customerData->setCustomAttribute('cellphone', '091919190');
$customer->updateData($customerData);
$customerResource->save($customer);