<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\CatalogUrlRewrite\Setup\Patch\Data; use Magento\Eav\Setup\EavSetup; use Magento\Eav\Setup\EavSetupFactory; use Magento\Framework\App\ResourceConnection; use Magento\Framework\Setup\ModuleDataSetupInterface; use Magento\Framework\Setup\Patch\DataPatchInterface; use Magento\Framework\Setup\Patch\PatchVersionInterface; /** * Class CreateUrlAttributes * @package Magento\CatalogUrlRewrite\Setup\Patch */ class CreateUrlAttributes implements DataPatchInterface, PatchVersionInterface { /** * @var ModuleDataSetupInterface */ private $moduleDataSetup; /** * @var EavSetupFactory */ private $eavSetupFactory; /** * CreateUrlAttributes constructor. * @param ModuleDataSetupInterface $moduleDataSetup * @param EavSetupFactory $eavSetupFactory */ public function __construct( ModuleDataSetupInterface $moduleDataSetup, EavSetupFactory $eavSetupFactory ) { $this->moduleDataSetup = $moduleDataSetup; $this->eavSetupFactory = $eavSetupFactory; } /** * {@inheritdoc} */ public function apply() { /** @var EavSetup $eavSetup */ $eavSetup = $this->eavSetupFactory->create(['setup' => $this->moduleDataSetup]); $eavSetup->addAttribute( \Magento\Catalog\Model\Category::ENTITY, 'url_key', [ 'type' => 'varchar', 'label' => 'URL Key', 'input' => 'text', 'required' => false, 'sort_order' => 3, 'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE, 'group' => 'General Information', ] ); $eavSetup->addAttribute( \Magento\Catalog\Model\Category::ENTITY, 'url_path', [ 'type' => 'varchar', 'required' => false, 'sort_order' => 17, 'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE, 'visible' => false, 'group' => 'General Information', ] ); $eavSetup->addAttribute( \Magento\Catalog\Model\Product::ENTITY, 'url_key', [ 'type' => 'varchar', 'label' => 'URL Key', 'input' => 'text', 'required' => false, 'sort_order' => 10, 'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE, 'used_in_product_listing' => true, 'group' => 'Search Engine Optimization', 'is_used_in_grid' => true, 'is_visible_in_grid' => false, 'is_filterable_in_grid' => true, ] ); $eavSetup->addAttribute( \Magento\Catalog\Model\Product::ENTITY, 'url_path', [ 'type' => 'varchar', 'required' => false, 'sort_order' => 11, 'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE, 'visible' => false, ] ); } /** * {@inheritdoc} */ public static function getDependencies() { return []; } /** * {@inheritdoc} */ public static function getVersion() { return '2.0.0'; } /** * {@inheritdoc} */ public function getAliases() { return []; } }