Guide - 7.8 Migration Addresses

1 Introduction


Previous Intershop 7 versions stored all address data either in BASICADDRESS or STATICADDRESS database table. With Intershop 7.8 release customer and basket addresses are stored in separate tables.

2 Migration Tasks

The following migration steps are performed by SQL scripts during the DBmigrate. Since some projects may have introduced new tables or columns according to their needs, the migration process may have to be adjusted. That is why the present guide describes them in full detail.

2.1 Migrate Customer Addresses

  1. Create new CUSTOMERADDRESS table.
  2. Move all existing customer addresses from BASICADDRESS to new CUSTOMERADDRESS table.
  3. Move customer's preferred invoice-to and ship-to address references from attribute values in BASICPROFILE_AV to new columns in BASICPROFILE table.

2.2 Migrate Basket Addresses

  1. Create new BASKETADDRESS table.
  2. Move all existing basket addresses from STATICADDRESS to new BASKETADDRESS table.
  3. Rename all columns in basket, order and line item tables containing address references.

3 Reference

Persistent (Domain) ObjectAddress Table
(old)
Address Table
(new)
From Intershop
Version
Migration Scripts
(Channel)



(Department)



BasketSTATICADDRESSBASKETADDRESS7.8.0.0
  • Move all existing basket addresses from STATICADDRESS to BASKETADDRESS table:
    performed by f_business/f_legacy/bts/staticfiles/cartridge/lib/com/intershop/beehive/bts/dbmigrate/data/12.0.0/scripts/migrateBasketAddresses.sql
  • Rename all columns in BASKET, ISORDER, PRODUCTLINEITEM and SERVICELINEITEM tables containing address references

    TableOld Column NameNew Column Name
    BASKETINVOICETOADDRESSIDINVOICETOADDRESSURN
    BASKETSHIPTOADDRESSIDSHIPTOADDRESSURN
    BASKETSHIPFROMADDRESSIDSHIPFROMADDRESSURN
    BASKETSERVICETOADDRESSIDSERVICETOADDRESSURN
    BASKETINSTALLTOADDRESSIDINSTALLTOADDRESSURN
    ISORDERINVOICETOADDRESSIDINVOICETOADDRESSURN
    ISORDERSHIPTOADDRESSIDSHIPTOADDRESSURN
    ISORDERSHIPFROMADDRESSIDSHIPFROMADDRESSURN
    ISORDERSERVICETOADDRESSIDSERVICETOADDRESSURN
    ISORDERINSTALLTOADDRESSIDINSTALLTOADDRESSURN
    PRODUCTLINEITEMSHIPTOADDRESSIDSHIPTOADDRESSURN
    PRODUCTLINEITEMSHIPFROMADDRESSIDSHIPFROMADDRESSURN
    SERVICELINEITEMSHIPTOADDRESSIDSHIPTOADDRESSURN
  • Migrate all address references of basket and basket line items (ship-to address, invoice-to address)
    • Replace all references to addresses stored in STATICADDRESSTABLE (UUID) with URN to related address stored in BASKETADDRESS
      performed by f_business/f_checkout/bc_basket_orm/staticfiles/cartridge/lib/com/intershop/component/basket/orm/dbmigrate/data/12.0.0/scripts/migrateBasketAddressURNs.sql
    • Replace all references to addresses stored in BASICADDRESS (UUID) with URN to related address stored in BASKETADDRESS table
      performed by f_business/f_checkout/bc_basket_orm/staticfiles/cartridge/lib/com/intershop/component/basket/orm/dbmigrate/data/12.0.0/scripts/migrateBasketAddressURNs.sql
CustomerBASICADDRESSCUSTOMERADDRESS7.8.0.0
  • Move all existing customer addresses from BASICADDRESS to CUSTOMERADDRESS table:
    performed by f_business/f_checkout/bc_customer_orm/staticfiles/cartridge/lib/com/intershop/component/customer/orm/dbmigrate/data/12.0.0/scripts/migrateCustomerAddresses.sql
  • Move customer's preferred invoice-to and ship-to address references from BASICPROFILE_AV to BASICPROFILE

    ValueOld TableNew TableNew Column
    Preferred invoice-to addressBASICPROFILE_AV
    (AttributeValue with name Default Address1)
    BASICPROFILE PREFERREDINVOICETOADDRESSURN
    Preferred invoice-to addressBASICPROFILE_AV
    (AttributeValue with name Default Address2)
    BASICPROFILE PREFERREDSHIPTOADDRESSURN

    performed by f_business\f_checkout\bc_customer_orm\staticfiles\cartridge\lib\com\intershop\component\customer\orm\dbmigrate\data\12.0.0\scripts\migrateProfilePreferredAddresses.sql


Note

Please have in mind we also changed the address.xsd and bc_customer.xsd. In case of customer imports you have to adapt your import files.

OrderSTATICADDRESSORDERADDRESSfuture release
OrganizationBASICADDRESSORGANIZATIONADDRESSfuture release
StoreSTORESTOREADDRESSfuture release
UserBASICADDRESSUSERADDRESS

future release


3.1 Storefront Migration

Handling of addresses, especially address URNs, led to some changes in storefront functionality too. By representing address references in URN format now, it is not only possible to uniquely identify a specific address, but also to determine the domain object that owns the address. This way the storefront logic on checkout address pages can determine the source of an address and decide whether an address can/should be displayed, changed or removed. This behavior solves a serious problem that led to tricky logic, complex view pipelines and several escalation cases in the past.

Artifacts of following functionalities have to be considered in case of a storefront migration:

  • Address page(s) in checkout.
  • Address page(s) in My Account section.

The following list contains the changed artifacts - by no means exhaustive:

app_sf_responsive/javasource/com/intershop/application/responsive/pipelet/basket/PrepareCheckoutAddresses.java
app_sf_responsive/javasource/com/intershop/application/responsive/pipelet/basket/PrepareCheckoutAddresses.xml
app_sf_responsive/javasource/com/intershop/application/responsive/pipelet/basket/PrepareCheckoutAddresses_en_US.xml
app_sf_responsive/staticfiles/cartridge/components/instances.component
app_sf_responsive/staticfiles/cartridge/localizations/account_de.properties
app_sf_responsive/staticfiles/cartridge/localizations/account_en.properties
app_sf_responsive/staticfiles/cartridge/localizations/cart_de.properties
app_sf_responsive/staticfiles/cartridge/localizations/checkout_de.properties
app_sf_responsive/staticfiles/cartridge/localizations/checkout_en.properties
app_sf_responsive/staticfiles/cartridge/pipelines/ProcessWebforms.pipeline
app_sf_responsive/staticfiles/cartridge/pipelines/ViewCart.pipeline
app_sf_responsive/staticfiles/cartridge/pipelines/ViewCheckout.pipeline
app_sf_responsive/staticfiles/cartridge/pipelines/ViewCheckoutAddressBook.pipeline
app_sf_responsive/staticfiles/cartridge/pipelines/ViewCheckoutAddresses.pipeline
app_sf_responsive/staticfiles/cartridge/pipelines/ViewCheckoutMultipleAddresses.pipeline
app_sf_responsive/staticfiles/cartridge/pipelines/ViewCheckoutNewUserAddress.pipeline
app_sf_responsive/staticfiles/cartridge/pipelines/ViewGiftCertificates.pipeline
app_sf_responsive/staticfiles/cartridge/pipelines/ViewUserAccount.pipeline
app_sf_responsive/staticfiles/cartridge/pipelines/ViewUserAddressList.pipeline
app_sf_responsive/staticfiles/cartridge/static/default/js/account.js
app_sf_responsive/staticfiles/cartridge/static/default/js/checkout.js
app_sf_responsive/staticfiles/cartridge/static/default/js/global.js
app_sf_responsive/staticfiles/cartridge/static/default/js/vendor/bootstrap-select-1.10.0.js
app_sf_responsive/staticfiles/cartridge/static/default/less/theme/pages/account/account.less
app_sf_responsive/staticfiles/cartridge/static/default/less/theme/pages/checkout/checkout.less
app_sf_responsive/staticfiles/cartridge/static/default/less/theme/vendor/bootstrap-select/variables.less
app_sf_responsive/staticfiles/cartridge/templates/default/account/address/AccountAddresses.isml
app_sf_responsive/staticfiles/cartridge/templates/default/account/address/AddressList.isml
app_sf_responsive/staticfiles/cartridge/templates/default/account/address/AddressListAjax.isml
app_sf_responsive/staticfiles/cartridge/templates/default/account/address/NewAddress.isml
app_sf_responsive/staticfiles/cartridge/templates/default/account/address/PreferredAddressesDialog.isml
app_sf_responsive/staticfiles/cartridge/templates/default/account/address/SelectPreferredAddress.isml
app_sf_responsive/staticfiles/cartridge/templates/default/account/address/SuggestedAddressesAjax.isml
app_sf_responsive/staticfiles/cartridge/templates/default/account/address/UpdateAddress.isml
app_sf_responsive/staticfiles/cartridge/templates/default/cart/ShoppingCart.isml
app_sf_responsive/staticfiles/cartridge/templates/default/cart/common/CostSummary.isml
app_sf_responsive/staticfiles/cartridge/templates/default/cart/email/modules/PLIDescription.isml
app_sf_responsive/staticfiles/cartridge/templates/default/checkout/address/AddressBookPage.isml
app_sf_responsive/staticfiles/cartridge/templates/default/checkout/address/AddressBookValidationPage.isml
app_sf_responsive/staticfiles/cartridge/templates/default/checkout/address/DeleteAddressDialog.isml
app_sf_responsive/staticfiles/cartridge/templates/default/checkout/address/MultipleShippingForm.isml
app_sf_responsive/staticfiles/cartridge/templates/default/checkout/address/MultipleShippingPage.isml
app_sf_responsive/staticfiles/cartridge/templates/default/checkout/address/NewUserAddressPage.isml
app_sf_responsive/staticfiles/cartridge/templates/default/checkout/common/widgets/AddressesBox.isml
app_sf_responsive/staticfiles/cartridge/templates/default/checkout/common/widgets/BillingAddress.isml
app_sf_responsive/staticfiles/cartridge/templates/default/checkout/common/widgets/ShippingAddress.isml
app_sf_responsive/staticfiles/cartridge/templates/default/checkout/gifting/GiftOptions.isml
app_sf_responsive/staticfiles/cartridge/templates/default/checkout/payment/additionalmodules/05_GiftCards.isml
app_sf_responsive/staticfiles/cartridge/templates/default/checkout/receipt/CheckoutReceipt.isml
app_sf_responsive/staticfiles/cartridge/templates/default/email/order/OrderEMailNotification.isml
app_sf_responsive/staticfiles/cartridge/templates/default/modules/address/Address.isml
app_sf_responsive/staticfiles/cartridge/templates/default/modules/address/AddressErrors.isml
app_sf_responsive/staticfiles/cartridge/templates/default/modules/address/AddressListItem.isml
app_sf_responsive/staticfiles/cartridge/templates/default/modules/address/AddressSuggest.isml
app_sf_responsive/staticfiles/cartridge/templates/default/modules/address/Modules.isml
app_sf_responsive/staticfiles/cartridge/templates/default/modules/address/forms/inc/Address1Input.isml
app_sf_responsive/staticfiles/cartridge/templates/default/modules/address/forms/inc/Address2Input.isml
app_sf_responsive/staticfiles/cartridge/templates/default/modules/address/forms/inc/Address3Input.isml
app_sf_responsive/staticfiles/cartridge/templates/default/modules/address/forms/inc/AddressUsageInput.isml
app_sf_responsive/staticfiles/cartridge/templates/default/modules/address/forms/inc/CityInput.isml
app_sf_responsive/staticfiles/cartridge/templates/default/modules/address/forms/inc/CountrySelect.isml
app_sf_responsive/staticfiles/cartridge/templates/default/modules/address/forms/inc/FirstNameInput.isml
app_sf_responsive/staticfiles/cartridge/templates/default/modules/address/forms/inc/FormHeader.isml
app_sf_responsive/staticfiles/cartridge/templates/default/modules/address/forms/inc/LastNameInput.isml
app_sf_responsive/staticfiles/cartridge/templates/default/modules/address/forms/inc/LocalityInput.isml
app_sf_responsive/staticfiles/cartridge/templates/default/modules/address/forms/inc/PhoneInput.isml
app_sf_responsive/staticfiles/cartridge/templates/default/modules/address/forms/inc/PostalCodeInput.isml
app_sf_responsive/staticfiles/cartridge/templates/default/modules/address/forms/inc/StateSelect.isml
app_sf_responsive/staticfiles/cartridge/templates/default/modules/address/forms/inc/TitleSelect.isml
app_sf_responsive/staticfiles/cartridge/templates/default/modules/cart/PLIDescription.isml
app_sf_responsive/staticfiles/cartridge/templates/default/modules/checkout/BucketHeader.isml
app_sf_responsive/staticfiles/cartridge/webforms/account/RegisterUserFull.webform
app_sf_responsive/staticfiles/cartridge/webforms/account/RegistrationAddition.webform
app_sf_responsive/staticfiles/cartridge/webforms/account/UpdatePassword.webform
app_sf_responsive/staticfiles/cartridge/webforms/account/UpdateProfile.webform
app_sf_responsive/staticfiles/cartridge/webforms/checkout/AddressDE.webform
app_sf_responsive/staticfiles/cartridge/webforms/checkout/AddressDefault.webform
app_sf_responsive/staticfiles/cartridge/webforms/checkout/AddressDefaultNoState.webform
app_sf_responsive/staticfiles/cartridge/webforms/checkout/AddressFR.webform
app_sf_responsive/staticfiles/cartridge/webforms/checkout/AddressGB.webform
app_sf_responsive/staticfiles/cartridge/webforms/checkout/AddressUS.webform
app_sf_responsive_b2b/staticfiles/cartridge/pipelines/ViewApprovals.pipeline
app_sf_responsive_b2b/staticfiles/cartridge/templates/default/checkout/receipt/CartForApproval.isml
app_sf_responsive_b2b/staticfiles/cartridge/webforms/account/UpdateProfile.webform
app_sf_responsive_b2b/staticfiles/cartridge/webforms/account/profile/user/CreateUser.webform
app_sf_responsive_b2c/staticfiles/cartridge/pipelines/ProcessCustomForms.pipeline
app_sf_responsive_b2c/staticfiles/cartridge/pipelines/ProcessUserAccount.pipeline
app_sf_responsive_cm/staticfiles/cartridge/pipelines/RenderPagelet.pipeline
app_sf_responsive_costcenter/staticfiles/cartridge/webforms/account/profile/user/CreateUser.webform
app_sf_responsive_smb/staticfiles/cartridge/extensions/InitAddressForm.extension
app_sf_responsive_smb/staticfiles/cartridge/localizations/account_de.properties
app_sf_responsive_smb/staticfiles/cartridge/localizations/account_en.properties
app_sf_responsive_smb/staticfiles/cartridge/localizations/checkout_de.properties
app_sf_responsive_smb/staticfiles/cartridge/localizations/checkout_en.properties
app_sf_responsive_smb/staticfiles/cartridge/pipelines/ProcessCustomForms.pipeline
app_sf_responsive_smb/staticfiles/cartridge/pipelines/ProcessUserAccount.pipeline
app_sf_responsive_smb/staticfiles/cartridge/pipelines/ProcessWebformsSmb.pipeline
app_sf_responsive_smb/staticfiles/cartridge/pipelines/ViewUserAccount.pipeline
app_sf_responsive_smb/staticfiles/cartridge/templates/default/checkout/address/AddressSmbExt.isml
app_sf_responsive_smb/staticfiles/cartridge/templates/default/checkout/address/CompanyNameSelect.isml
app_sf_responsive_smb/staticfiles/cartridge/templates/default/email/order/OrderEMailNotificationPurchaserInc.isml
app_sf_responsive_smb/staticfiles/cartridge/templates/default/modules/address/forms/inc/AddressUsageInput.isml
app_sf_responsive_smb/staticfiles/cartridge/templates/default/modules/address/forms/inc/CompanyName2Input.isml
app_sf_responsive_smb/staticfiles/cartridge/templates/default/modules/address/forms/inc/CompanyNameInput.isml
app_sf_responsive_smb/staticfiles/cartridge/templates/default/modules/address/forms/inc/DepartmentInput.isml
app_sf_responsive_smb/staticfiles/cartridge/templates/default/modules/profile/forms/CompanyContactInformationExt.isml
app_sf_responsive_smb/staticfiles/cartridge/templates/default/modules/profile/forms/inc/CompanyName2Input.isml
app_sf_responsive_smb/staticfiles/cartridge/templates/default/modules/profile/forms/inc/CompanyNameInput.isml
app_sf_responsive_smb/staticfiles/cartridge/templates/default/modules/profile/forms/inc/DepartmentInput.isml
app_sf_responsive_smb/staticfiles/cartridge/templates/default/modules/profile/forms/inc/FaxInput.isml
app_sf_responsive_smb/staticfiles/cartridge/templates/default/modules/profile/forms/inc/PhoneBusinessInput.isml
app_sf_responsive_smb/staticfiles/cartridge/webforms/account/CompanyInformation.webform
app_sf_responsive_smb/staticfiles/cartridge/webforms/checkout/AddressDE.webform
app_sf_responsive_smb/staticfiles/cartridge/webforms/checkout/AddressDESmbExt.webform
app_sf_responsive_smb/staticfiles/cartridge/webforms/checkout/AddressDefault.webform
app_sf_responsive_smb/staticfiles/cartridge/webforms/checkout/AddressDefaultNoState.webform
app_sf_responsive_smb/staticfiles/cartridge/webforms/checkout/AddressDefaultNoStateSmbExt.webform
app_sf_responsive_smb/staticfiles/cartridge/webforms/checkout/AddressDefaultSmbExt.webform
app_sf_responsive_smb/staticfiles/cartridge/webforms/checkout/AddressFR.webform
app_sf_responsive_smb/staticfiles/cartridge/webforms/checkout/AddressFRSmbExt.webform
app_sf_responsive_smb/staticfiles/cartridge/webforms/checkout/AddressGB.webform
app_sf_responsive_smb/staticfiles/cartridge/webforms/checkout/AddressGBSmbExt.webform
app_sf_responsive_smb/staticfiles/cartridge/webforms/checkout/AddressUS.webform
app_sf_responsive_smb/staticfiles/cartridge/webforms/checkout/AddressUSSmbExt.webform
demo_responsive/javasource/com/intershop/demo/responsive/dbinit/data/preference/ChannelDomainPreferences.properties
demo_responsive/staticfiles/share/sites/Myers-ShoppingLive-Site/units/Myers-ShoppingLive-Anonymous/impex/src/Customers.xml
demo_responsive/staticfiles/share/sites/inSPIRED-ResellerChannel-Site/units/Myers/impex/src/Users.xml
demo_responsive/staticfiles/share/sites/inSPIRED-Site/units/inSPIRED/impex/src/Users.xml
demo_responsive/staticfiles/share/sites/inSPIRED-inTRONICS-Site/units/inSPIRED-inTRONICS-Anonymous/impex/src/Customers.xml
demo_responsive/staticfiles/share/sites/inSPIRED-inTRONICS_Business-Site/units/inSPIRED-inTRONICS_Business-Anonymous/impex/src/Customers.xml
demo_responsive_b2b/staticfiles/share/sites/inSPIRED-inTRONICS_Business-Site/units/inSPIRED-inTRONICS_Business-Anonymous/impex/src/Customers_b2bext.xml
demo_responsive_b2b/staticfiles/share/sites/inSPIRED-inTRONICS_Business-Site/units/inSPIRED-inTRONICS_Business-smb-responsive/impex/src/pagelets_b2b/component/cmp_helpdesk_buyersinfo.xml
demo_responsive_b2b/staticfiles/share/sites/inSPIRED-inTRONICS_Business-Site/units/inSPIRED-inTRONICS_Business-smb-responsive/impex/src/pagelets_b2b/component/cmp_helpdesk_buyersinfo_contracts.xml
demo_responsive_b2b/staticfiles/share/sites/inSPIRED-inTRONICS_Business-Site/units/inSPIRED-inTRONICS_Business-smb-responsive/impex/src/pagelets_b2b/component/cmp_helpdesk_buyersinfo_orderTemplates.xml
demo_responsive_b2b/staticfiles/share/sites/inSPIRED-inTRONICS_Business-Site/units/inSPIRED-inTRONICS_Business-smb-responsive/impex/src/pagelets_b2b/component/cmp_helpdesk_buyersinfo_pendingOrders.xml
demo_responsive_b2b/staticfiles/share/sites/inSPIRED-inTRONICS_Business-Site/units/inSPIRED-inTRONICS_Business-smb-responsive/impex/src/pagelets_b2b/component/cmp_helpdesk_buyersinfo_quickOrder.xml
demo_responsive_b2b/staticfiles/share/sites/inSPIRED-inTRONICS_Business-Site/units/inSPIRED-inTRONICS_Business-smb-responsive/impex/src/pagelets_b2b/component/cmp_helpdesk_buyersinfo_quotes.xml
demo_responsive_b2b/staticfiles/share/sites/inSPIRED-inTRONICS_Business-Site/units/inSPIRED-inTRONICS_Business-smb-responsive/impex/src/pagelets_b2b/component/cmp_helpdesk_managersInfo.xml
demo_responsive_b2b/staticfiles/share/sites/inSPIRED-inTRONICS_Business-Site/units/inSPIRED-inTRONICS_Business-smb-responsive/impex/src/pagelets_b2b/component/cmp_helpdesk_managersInfo_branding.xml
demo_responsive_b2b/staticfiles/share/sites/inSPIRED-inTRONICS_Business-Site/units/inSPIRED-inTRONICS_Business-smb-responsive/impex/src/pagelets_b2b/component/cmp_helpdesk_managersInfo_costCenters.xml
demo_responsive_b2b/staticfiles/share/sites/inSPIRED-inTRONICS_Business-Site/units/inSPIRED-inTRONICS_Business-smb-responsive/impex/src/pagelets_b2b/component/cmp_helpdesk_managersInfo_orderApproval.xml
demo_responsive_b2b/staticfiles/share/sites/inSPIRED-inTRONICS_Business-Site/units/inSPIRED-inTRONICS_Business-smb-responsive/impex/src/pagelets_b2b/component/cmp_helpdesk_managersInfo_punchout.xml
demo_responsive_b2b/staticfiles/share/sites/inSPIRED-inTRONICS_Business-Site/units/inSPIRED-inTRONICS_Business-smb-responsive/impex/src/pagelets_b2b/component/cmp_helpdesk_managersInfo_userMgmt.xml
demo_responsive_b2b/staticfiles/share/sites/inSPIRED-inTRONICS_Business-Site/units/inSPIRED-inTRONICS_Business-smb-responsive/impex/src/pagelets_b2b/componenttemplate/cmp_tmp_footer_content.xml
demo_responsive_catalog/javasource/com/intershop/demo/responsive/catalog/dbinit/data/order/Order2.properties

Disclaimer

The information provided in the Knowledge Base may not be applicable to all systems and situations. Intershop Communications will not be liable to any party for any direct or indirect damages resulting from the use of the Customer Support section of the Intershop Corporate Web site, including, without limitation, any lost profits, business interruption, loss of programs or other data on your information handling system.

Customer Support
Knowledge Base
Product Resources
Tickets