分类
Magento 数据库 服务器

magento1 迁移到magento2

数据(用户/产品/分类)

https://devdocs.magento.com/guides/v2.3/migration/migration-tool-install.html

bin/magento --version

composer require magento/data-migration-tool:上面查询版本
cp vendor/magento/data-migration-tool/etc/opensource-to-opensource/magento1版本/config.xml.dist vendor/magento/data-migration-tool/etc/opensource-to-opensource/magento1版本/config.xml
打开 config.xml


<source>
<database host="127.0.0.1" name="magento1" user="root" password="pass"/>
</source>
<destination>
<database host="127.0.0.1" name="magento2" user="root" password="pass"/>
</destination>
<options>
<source_prefix>magento1</source_prefix>
<crypt_key>f3e25abe619dae2387df9fs594f01985</crypt_key>
</options>


bin/magento migrate:data -a -r vendor/magento/data-migration-tool/etc/opensource-to-opensource/magento1版本/config.xml

问题解决方法
加入购物车出现there are no source items with the in stock status

下面的解决方法适合于版本升级出现的问题

先备份数据库

可以先执行7和8和9看能解决不,  不能在重新从1开始

Step #1 First Disable all MSI extension

php bin/magento module:disable Magento_Inventory Magento_InventoryAdminUi Magento_InventoryApi Magento_InventoryBundleProduct Magento_InventoryBundleProductAdminUi Magento_InventoryCatalog Magento_InventorySales Magento_InventoryCatalogAdminUi Magento_InventoryCatalogApi Magento_InventoryCatalogSearch Magento_InventoryConfigurableProduct Magento_InventoryConfigurableProductIndexer Magento_InventoryConfiguration Magento_InventoryConfigurationApi Magento_InventoryDistanceBasedSourceSelectionAdminUi Magento_InventoryDistanceBasedSourceSelectionApi Magento_InventoryElasticsearch Magento_InventoryExportStockApi Magento_InventoryIndexer Magento_InventorySalesApi Magento_InventoryGroupedProduct Magento_InventoryGroupedProductAdminUi Magento_InventoryGroupedProductIndexer Magento_InventoryImportExport Magento_InventorySourceSelectionApi Magento_InventoryCache Magento_InventoryLowQuantityNotification Magento_InventoryLowQuantityNotificationApi Magento_InventoryMultiDimensionalIndexerApi Magento_InventoryProductAlert Magento_InventoryReservations Magento_InventoryReservationCli Magento_InventoryReservationsApi Magento_InventoryExportStock Magento_InventorySalesAdminUi Magento_CatalogInventoryGraphQl Magento_InventorySalesFrontendUi Magento_InventorySetupFixtureGenerator Magento_InventoryShipping Magento_InventoryShippingAdminUi Magento_InventorySourceDeductionApi Magento_InventorySourceSelection Magento_InventoryConfigurableProductAdminUi Magento_InventoryLowQuantityNotificationAdminUi Magento_InventoryBundleProductIndexer Magento_InventoryCatalogSearchBundleProduct Magento_InventoryCatalogSearchConfigurableProduct Magento_InventoryInStorePickupAdminUi Magento_InventoryInStorePickup Magento_InventoryInStorePickupQuote Magento_InventoryQuoteGraphQl Magento_InventoryVisualMerchandiser Magento_InventoryInStorePickupSalesAdminUi Magento_InventoryGraphQl Magento_InventoryAdvancedCheckout Magento_InventoryCatalogFrontendUi Magento_InventoryDistanceBasedSourceSelection Magento_InventoryInStorePickupApi Magento_InventoryInStorePickupGraphQl Magento_InventoryInStorePickupSales Magento_InventoryInStorePickupShipping Magento_InventoryRequisitionList Magento_InventoryInStorePickupFrontend Magento_InventoryConfigurableProductFrontendUi Magento_InventoryBundleImportExport

Step #2 Run magento s:up and magento s:s:d -f command

Step #3: Check will inventory_source_item and inventory_source_stock_link table removed

Step #4: Enable all MSI extension

php bin/magento module:enable Magento_Inventory Magento_InventoryAdminUi Magento_InventoryApi Magento_InventoryBundleProduct Magento_InventoryBundleProductAdminUi Magento_InventoryCatalog Magento_InventorySales Magento_InventoryCatalogAdminUi Magento_InventoryCatalogApi Magento_InventoryCatalogSearch Magento_InventoryConfigurableProduct Magento_InventoryConfigurableProductIndexer Magento_InventoryConfiguration Magento_InventoryConfigurationApi Magento_InventoryDistanceBasedSourceSelectionAdminUi Magento_InventoryDistanceBasedSourceSelectionApi Magento_InventoryElasticsearch Magento_InventoryExportStockApi Magento_InventoryIndexer Magento_InventorySalesApi Magento_InventoryGroupedProduct Magento_InventoryGroupedProductAdminUi Magento_InventoryGroupedProductIndexer Magento_InventoryImportExport Magento_InventorySourceSelectionApi Magento_InventoryCache Magento_InventoryLowQuantityNotification Magento_InventoryLowQuantityNotificationApi Magento_InventoryMultiDimensionalIndexerApi Magento_InventoryProductAlert Magento_InventoryReservations Magento_InventoryReservationCli Magento_InventoryReservationsApi Magento_InventoryExportStock Magento_InventorySalesAdminUi Magento_CatalogInventoryGraphQl Magento_InventorySalesFrontendUi Magento_InventorySetupFixtureGenerator Magento_InventoryShipping Magento_InventoryShippingAdminUi Magento_InventorySourceDeductionApi Magento_InventorySourceSelection Magento_InventoryConfigurableProductAdminUi Magento_InventoryLowQuantityNotificationAdminUi Magento_InventoryBundleProductIndexer Magento_InventoryCatalogSearchBundleProduct Magento_InventoryCatalogSearchConfigurableProduct Magento_InventoryInStorePickupAdminUi Magento_InventoryInStorePickup Magento_InventoryInStorePickupQuote Magento_InventoryQuoteGraphQl Magento_InventoryVisualMerchandiser Magento_InventoryInStorePickupSalesAdminUi Magento_InventoryGraphQl Magento_InventoryAdvancedCheckout Magento_InventoryCatalogFrontendUi Magento_InventoryDistanceBasedSourceSelection Magento_InventoryInStorePickupApi Magento_InventoryInStorePickupGraphQl Magento_InventoryInStorePickupSales Magento_InventoryInStorePickupShipping Magento_InventoryRequisitionList Magento_InventoryInStorePickupFrontend Magento_InventoryConfigurableProductFrontendUi Magento_InventoryBundleImportExport

After enable run magento s:up command.

Step #5: Now you need to create Source. Go to admin side Store >> Inventory >> Source and create "default" source.

Step #6: Now you need to create Stocks. Go to admin side Store >> Inventory >> Stock and create "Default Stock". After assigning source if source will not assign then you need to assign it using SQL query that is provided on Step #8.

Step #7: Run below query

INSERT IGNORE INTO `inventory_source_item` (source_code, sku, quantity, status) select 'default', sku, qty, stock_status from (`cataloginventory_stock_status` as `lg` join `catalog_product_entity` as `prd` on((`lg`.`product_id` = `prd`.`entity_id`)))

Step #8: Run below query to link source to stock

INSERT INTO `inventory_source_stock_link` (`link_id`, `stock_id`, `source_code`, `priority`) VALUES ('1', '1', 'default', '1');

Step #9: Run reindex command php bin/magento indexer:reset && php bin/magento indexer:reindex