moduleDataSetup = $moduleDataSetup; $this->salesSetupFactory = $salesSetupFactory; $this->eavConfig = $eavConfig; $this->aggregatedFieldDataConverter = $aggregatedFieldDataConverter; } /** * {@inheritdoc} */ public function apply() { /** @var SalesSetup $salesSetup */ $salesSetup = $this->salesSetupFactory->create(); $this->convertSerializedDataToJson($salesSetup); $this->eavConfig->clear(); } /** * {@inheritdoc} */ public static function getDependencies() { return [ UpdateEntityTypes::class ]; } /** * {@inheritdoc} */ public static function getVersion() { return '2.0.6'; } /** * {@inheritdoc} */ public function getAliases() { return []; } /** * Convert native serialization to JSON. * * @param SalesSetup $salesSetup */ private function convertSerializedDataToJson(SalesSetup $salesSetup) { $fieldsToUpdate = [ new FieldToConvert( SerializedToJson::class, $salesSetup->getTable('sales_invoice_item'), 'entity_id', 'tax_ratio' ), new FieldToConvert( SerializedToJson::class, $salesSetup->getTable('sales_creditmemo_item'), 'entity_id', 'tax_ratio' ), ]; $fieldsToUpdate[] = new FieldToConvert( SerializedDataConverter::class, $salesSetup->getTable('sales_order_item'), 'item_id', 'product_options' ); $fieldsToUpdate[] = new FieldToConvert( SerializedToJson::class, $salesSetup->getTable('sales_shipment'), 'entity_id', 'packages' ); $fieldsToUpdate[] = new FieldToConvert( SalesOrderPaymentDataConverter::class, $salesSetup->getTable('sales_order_payment'), 'entity_id', 'additional_information' ); $fieldsToUpdate[] = new FieldToConvert( SerializedToJson::class, $salesSetup->getTable('sales_payment_transaction'), 'transaction_id', 'additional_information' ); $this->aggregatedFieldDataConverter->convert($fieldsToUpdate, $salesSetup->getConnection()); } }