Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
UpdateProductAttributes.php
Go to the documentation of this file.
1 <?php
8 
10 use Magento\Catalog\Setup\CategorySetupFactory;
15 
21 {
25  private $moduleDataSetup;
26 
30  private $categorySetupFactory;
31 
37  public function __construct(
38  ModuleDataSetupInterface $moduleDataSetup,
39  CategorySetupFactory $categorySetupFactory
40  ) {
41  $this->moduleDataSetup = $moduleDataSetup;
42  $this->categorySetupFactory = $categorySetupFactory;
43  }
44 
49  public function apply()
50  {
52  $categorySetup = $this->categorySetupFactory->create(['setup' => $this->moduleDataSetup]);
53 
54  //Product Details tab
55  $categorySetup->updateAttribute(
56  \Magento\Catalog\Model\Product::ENTITY,
57  'status',
58  'frontend_label',
59  'Enable Product',
60  5
61  );
62  $categorySetup->updateAttribute(
63  \Magento\Catalog\Model\Product::ENTITY,
64  'name',
65  'frontend_label',
66  'Product Name'
67  );
68  $attributeSetId = $categorySetup->getDefaultAttributeSetId(\Magento\Catalog\Model\Product::ENTITY);
69  $categorySetup->addAttributeToGroup(
70  \Magento\Catalog\Model\Product::ENTITY,
72  'Product Details',
73  'visibility',
74  80
75  );
76  $categorySetup->addAttributeToGroup(
77  \Magento\Catalog\Model\Product::ENTITY,
79  'Product Details',
80  'news_from_date',
81  90
82  );
83  $categorySetup->addAttributeToGroup(
84  \Magento\Catalog\Model\Product::ENTITY,
86  'Product Details',
87  'news_to_date',
88  100
89  );
90  $categorySetup->addAttributeToGroup(
91  \Magento\Catalog\Model\Product::ENTITY,
93  'Product Details',
94  'country_of_manufacture',
95  110
96  );
97 
98  //Content tab
99  $categorySetup->addAttributeGroup(
100  \Magento\Catalog\Model\Product::ENTITY,
102  'Content',
103  15
104  );
105  $categorySetup->updateAttributeGroup(
106  \Magento\Catalog\Model\Product::ENTITY,
108  'Content',
109  'tab_group_code',
110  'basic'
111  );
112  $categorySetup->addAttributeToGroup(
113  \Magento\Catalog\Model\Product::ENTITY,
115  'Content',
116  'description'
117  );
118  $categorySetup->addAttributeToGroup(
119  \Magento\Catalog\Model\Product::ENTITY,
121  'Content',
122  'short_description',
123  100
124  );
125 
126  //Images tab
127  $groupId = (int)$categorySetup->getAttributeGroupByCode(
128  \Magento\Catalog\Model\Product::ENTITY,
130  'image-management',
131  'attribute_group_id'
132  );
133  $categorySetup->addAttributeToGroup(
134  \Magento\Catalog\Model\Product::ENTITY,
136  $groupId,
137  'image',
138  1
139  );
140  $categorySetup->updateAttributeGroup(
141  \Magento\Catalog\Model\Product::ENTITY,
143  $groupId,
144  'attribute_group_name',
145  'Images'
146  );
147  $categorySetup->updateAttribute(
148  \Magento\Catalog\Model\Product::ENTITY,
149  'image',
150  'frontend_label',
151  'Base'
152  );
153  $categorySetup->updateAttribute(
154  \Magento\Catalog\Model\Product::ENTITY,
155  'small_image',
156  'frontend_label',
157  'Small'
158  );
159  $categorySetup->updateAttribute(
160  \Magento\Catalog\Model\Product::ENTITY,
161  'image',
162  'frontend_input_renderer',
163  null
164  );
165 
166  //Design tab
167  $categorySetup->updateAttribute(
168  \Magento\Catalog\Model\Product::ENTITY,
169  'page_layout',
170  'frontend_label',
171  'Layout'
172  );
173  $categorySetup->updateAttribute(
174  \Magento\Catalog\Model\Product::ENTITY,
175  'custom_layout_update',
176  'frontend_label',
177  'Layout Update XML',
178  10
179  );
180 
181  //Schedule Design Update tab
182  $categorySetup->addAttributeGroup(
183  \Magento\Catalog\Model\Product::ENTITY,
185  'Schedule Design Update',
186  55
187  );
188  $categorySetup->updateAttributeGroup(
189  \Magento\Catalog\Model\Product::ENTITY,
191  'Schedule Design Update',
192  'tab_group_code',
193  'advanced'
194  );
195  $categorySetup->addAttributeToGroup(
196  \Magento\Catalog\Model\Product::ENTITY,
198  'Schedule Design Update',
199  'custom_design_from',
200  20
201  );
202  $categorySetup->addAttributeToGroup(
203  \Magento\Catalog\Model\Product::ENTITY,
205  'Schedule Design Update',
206  'custom_design_to',
207  30
208  );
209  $categorySetup->updateAttribute(
210  \Magento\Catalog\Model\Product::ENTITY,
211  'custom_design',
212  'frontend_label',
213  'New Theme',
214  40
215  );
216  $categorySetup->addAttributeToGroup(
217  \Magento\Catalog\Model\Product::ENTITY,
219  'Schedule Design Update',
220  'custom_design'
221  );
222  $categorySetup->addAttribute(
223  \Magento\Catalog\Model\Product::ENTITY,
224  'custom_layout',
225  [
226  'type' => 'varchar',
227  'label' => 'New Layout',
228  'input' => 'select',
229  'source' => \Magento\Catalog\Model\Product\Attribute\Source\Layout::class,
230  'required' => false,
231  'sort_order' => 50,
232  'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
233  'group' => 'Schedule Design Update',
234  'is_used_in_grid' => true,
235  'is_visible_in_grid' => false,
236  'is_filterable_in_grid' => false
237  ]
238  );
239  }
240 
244  public static function getDependencies()
245  {
246  return [
247  UpdateMediaAttributesBackendTypes::class,
248  ];
249  }
250 
254  public static function getVersion()
255  {
256  return '2.0.5';
257  }
258 
262  public function getAliases()
263  {
264  return [];
265  }
266 }
__construct(ModuleDataSetupInterface $moduleDataSetup, CategorySetupFactory $categorySetupFactory)