En Magento 2, los Data Patches son la forma recomendada para crear o actualizar datos del sistema, incluyendo atributos de catalogo.
Data Patch de ejemplo
<?phpnamespace GDW\Hello\Setup\Patch\Data;
use Magento\Catalog\Model\Product;use Magento\Eav\Setup\EavSetupFactory;use Magento\Framework\Setup\ModuleDataSetupInterface;use Magento\Framework\Setup\Patch\DataPatchInterface;
class AddBrandAttribute implements DataPatchInterface{ public function __construct( private ModuleDataSetupInterface $moduleDataSetup, private EavSetupFactory $eavSetupFactory ) {}
public function apply() { $this->moduleDataSetup->getConnection()->startSetup();
$eavSetup = $this->eavSetupFactory->create(['setup' => $this->moduleDataSetup]); $eavSetup->addAttribute(Product::ENTITY, 'gdw_brand', [ 'type' => 'varchar', 'label' => 'Brand', 'input' => 'text', 'required' => false, 'visible' => true, 'user_defined' => true, 'global' => 1, 'group' => 'General' ]);
$this->moduleDataSetup->getConnection()->endSetup(); }
public static function getDependencies(): array { return []; } public function getAliases(): array { return []; }}Ejecutar patch
bin/magento setup:upgradeConclusión
Usar Data Patches te da trazabilidad de cambios y evita scripts ad hoc dificiles de mantener.