Upgrade from CM 5.2 to 8.7.1
When i upgrade the warehouseid on SKUs is set to id 1 on all SKUs. I know the logic has been rewriten to add the posibilities to have multiple warehouse per SKUs. Thats probably not handled by Episerver update script. Do anyone has any good process to automaticly update all SKUS to the right warehouse? Any other ideas?
Probably the easyest is a databasescript that compare the old database value with the new one, and changes...
The WarehouseId of Variation is obsoleted and no new code will care about that. The data should be migrated into InventoryService table.
I don't think any other process to "automaticly update all SKUS to the right warehouse" is necessary.
In the table [InventoryService] all WarehouseCode is "1", it should vary.
It's confusing. All below tables are containing stock data for variations:
[WarehouseInventory] countains stockdata and warehousecode (Legacy?)[InventoryService] countains stockdata (col PurchaseAvailableQuantity) and warehousecode [Inventory] countains stockdata (legacy?)[CatalogEntry] contains variations[Variations] contains variations and warehouseid (Legacy?)
But it seems that i can from [Variations] i have the legacy WarehouseCode, when i update it into [InventoryService], it works in the new Catalog UI.
I'm not sure what was missing during the upgrade, but IIRC then when you upgrade from R2SP2 to R3, you need to export your catalog before the upgrade and then re-import after upgrade completes. This will make sure price and inventory information will be upgraded properly - I'm looking for the official document.
Right now the information was stored as following:
- CatalogEntry : basic entry information
- Variations: Information specific for SKU
- Warehouse: warehouses information
- InventoryService: inventory data
All other data, such as WarehouseId in Variations table, are legacy and have been keep to avoid breaking changes, but are not being used by any of our code.
Any also note that we do not guarantee about database backward compatibility, so other than the documentation don't confuse your self with the code columns.
Thanks for clearifying!
Yes, i have missed the part of exporting and importing. thats why we miss out prices and inventory warehouse!
Anyhow, the legacy table comes to use now. this worked for us:
update ISE set ISE.[WarehouseCode] = convert(nvarchar(50), v.[WarehouseId])
from [InventoryService] ISE
INNER JOIN [dbo].[CatalogEntry] c ON ISE.CatalogEntryCode = c.Code
INNER JOIN [dbo].[Variation] v ON c.[CatalogEntryId] = v.CatalogEntryId
NOTE: our WarehouseCode is the same as the WarehouseId, eg an integer.
Regarding the Prices, we handle that manualy.