Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
InstallOrderStatusesAndInitialSalesConfig.php
Go to the documentation of this file.
1 <?php
8 
9 use Magento\Sales\Setup\SalesSetupFactory;
13 
19 {
23  private $moduleDataSetup;
24 
28  private $salesSetupFactory;
29 
35  public function __construct(
36  \Magento\Framework\Setup\ModuleDataSetupInterface $moduleDataSetup,
37  SalesSetupFactory $salesSetupFactory
38  ) {
39  $this->moduleDataSetup = $moduleDataSetup;
40  $this->salesSetupFactory = $salesSetupFactory;
41  }
42 
48  public function apply()
49  {
51  $salesSetup = $this->salesSetupFactory->create(['setup' => $this->moduleDataSetup]);
52 
56  $salesSetup->installEntities();
60  $data = [];
61  $statuses = [
62  'pending' => __('Pending'),
63  'pending_payment' => __('Pending Payment'),
64  'processing' => __('Processing'),
65  'holded' => __('On Hold'),
66  'complete' => __('Complete'),
67  'closed' => __('Closed'),
68  'canceled' => __('Canceled'),
69  'fraud' => __('Suspected Fraud'),
70  'payment_review' => __('Payment Review'),
71  ];
72  foreach ($statuses as $code => $info) {
73  $data[] = ['status' => $code, 'label' => $info];
74  }
75  $this->moduleDataSetup->getConnection()->insertArray(
76  $this->moduleDataSetup->getTable('sales_order_status'),
77  ['status', 'label'],
78  $data
79  );
83  $data = [];
84  $states = [
85  'new' => [
86  'label' => __('New'),
87  'statuses' => ['pending' => ['default' => '1']],
88  'visible_on_front' => true,
89  ],
90  'pending_payment' => [
91  'label' => __('Pending Payment'),
92  'statuses' => ['pending_payment' => ['default' => '1']],
93  ],
94  'processing' => [
95  'label' => __('Processing'),
96  'statuses' => ['processing' => ['default' => '1'], 'fraud' => []],
97  'visible_on_front' => true,
98  ],
99  'complete' => [
100  'label' => __('Complete'),
101  'statuses' => ['complete' => ['default' => '1']],
102  'visible_on_front' => true,
103  ],
104  'closed' => [
105  'label' => __('Closed'),
106  'statuses' => ['closed' => ['default' => '1']],
107  'visible_on_front' => true,
108  ],
109  'canceled' => [
110  'label' => __('Canceled'),
111  'statuses' => ['canceled' => ['default' => '1']],
112  'visible_on_front' => true,
113  ],
114  'holded' => [
115  'label' => __('On Hold'),
116  'statuses' => ['holded' => ['default' => '1']],
117  'visible_on_front' => true,
118  ],
119  'payment_review' => [
120  'label' => __('Payment Review'),
121  'statuses' => ['payment_review' => ['default' => '1'], 'fraud' => []],
122  'visible_on_front' => true,
123  ],
124  ];
125  foreach ($states as $code => $info) {
126  if (isset($info['statuses'])) {
127  foreach ($info['statuses'] as $status => $statusInfo) {
128  $data[] = [
129  'status' => $status,
130  'state' => $code,
131  'is_default' => is_array($statusInfo) && isset($statusInfo['default']) ? 1 : 0,
132  ];
133  }
134  }
135  }
136  $this->moduleDataSetup->getConnection()->insertArray(
137  $this->moduleDataSetup->getTable('sales_order_status_state'),
138  ['status', 'state', 'is_default'],
139  $data
140  );
141  $entitiesToAlter = ['order_address'];
142  $attributes = [
143  'vat_id' => ['type' => \Magento\Framework\DB\Ddl\Table::TYPE_TEXT],
144  'vat_is_valid' => ['type' => \Magento\Framework\DB\Ddl\Table::TYPE_SMALLINT],
145  'vat_request_id' => ['type' => \Magento\Framework\DB\Ddl\Table::TYPE_TEXT],
146  'vat_request_date' => ['type' => \Magento\Framework\DB\Ddl\Table::TYPE_TEXT],
147  'vat_request_success' => ['type' => \Magento\Framework\DB\Ddl\Table::TYPE_SMALLINT],
148  ];
149  foreach ($entitiesToAlter as $entityName) {
150  foreach ($attributes as $attributeCode => $attributeParams) {
151  $salesSetup->addAttribute($entityName, $attributeCode, $attributeParams);
152  }
153  }
155  $states = ['new', 'processing', 'complete', 'closed', 'canceled', 'holded', 'payment_review'];
156  foreach ($states as $state) {
157  $this->moduleDataSetup->getConnection()->update(
158  $this->moduleDataSetup->getTable('sales_order_status_state'),
159  ['visible_on_front' => 1],
160  ['state = ?' => $state]
161  );
162  }
163  }
164 
168  public static function getDependencies()
169  {
170  return [];
171  }
172 
176  public static function getVersion()
177  {
178  return '2.0.0';
179  }
180 
184  public function getAliases()
185  {
186  return [];
187  }
188 }
__()
Definition: __.php:13
__construct(\Magento\Framework\Setup\ModuleDataSetupInterface $moduleDataSetup, SalesSetupFactory $salesSetupFactory)
$attributeCode
Definition: extend.phtml:12
$status
Definition: order_status.php:8
$attributes
Definition: matrix.phtml:13
foreach( $_productCollection as $_product)() ?>" class $info
Definition: listing.phtml:52
$code
Definition: info.phtml:12