This document lists API changes for Intershop Commerce Management 7.10.x that can cause migration efforts.
For information on new APIs refer to the Public Release Note - Intershop Commerce Management B2C/B2X 7.10.
Description | API Changes | How to Migrate |
---|---|---|
Removal of pipelines in ViewPromotionTargetGroup_52.pipeline in sld_ch_consumer_plugin | The ViewPromotionTargetGroup_52.pipeline was reworked, in order to support paging and the following pipelines were thereby removed: DeleteCustomerGroup, DetermineCustomerGroup, GetCustomerGroup, SearchCustomerGroup, GetCustomers, GetAffiliates, IsAffiliate, FilterUserGroups, UpdateCustomerSegmentPaging | The following alternatives can be used instead:
|
See API Changes for 7.10.38.21 LTS |
Description | API Changes | How to Migrate |
---|---|---|
Job and Process Chain processes are concurrently monitored for their liveness. | A new Process datetime attribute The default process chain timeout has been lowered from 24 hours to 1 hour. | Execute the DBPrepare to create the necessary columns in the process table and add the new job If any of your individual process chain task takes more than 1h to complete, please break it down into smaller tasks not to run into a timeout or set the |
Description | API Changes | How to Migrate |
---|---|---|
Change in | Method Overall pausing and resuming the application server has been moved to Register | If this exception is handled, that logic can be removed, otherwise there is nothing to do. Instead of If a custom |
Change of enum values of SelfCheckTaskOutcome.Status | An API break of the SelfCheckTaskOutcome.Status enum was necessary to externalize the view of the self check outcome meaning and unify its status values similar to commonly used values. | See Guide - 7.10.38.21 Server Health Checks. |
Transition from ServerStatusConstants to ServerInfo.Status | The (internal) ServerStatusConstants are no longer used and therefore have no effect anymore on the application server logic, use ServerInfo.Status within CAPI instead. | See Guide - 7.10.38.21 Server Health Checks. |
The configuration.xml (share/system/config/cluster/configuration.xml ) has one new entry | The configuration.xml has one new entry to find the selfchecks.properties file. | Add this entry to the configuration.xml <set finder="property" scope="cluster,server,domain" required="false" fileName="${IS_SHARE}/system/config/cluster/selfchecks.properties" /> |
The | The | Add this logger entry to the configuration.xml <logger name="com.intershop.beehive.core.internal.management.EnfinityManagementImpl"> <level value="INFO" /> <appender-ref ref="ServerStartupConsole" /> </logger> |
Description | API Changes | How to Migrate |
---|---|---|
Change of staging processor for staging group "Prices": Prices used to be staged with | Prices and according objects maintained in live systems will not be completely deleted/overwritten on replication. They will now be merged with the data from edit. This enables maintenance of customer - price list - relation in live system. | If this behavior is desired, there is nothing to do. To enable the old behavior, change |
Deletion of price lists in ICM back office | The deletion of price lists in the ICM back office (batch mode) has been completely reworked for better performance and stability. As a result the removed product prices from the deleted price lists are not saved in the product history anymore. (Note: New product prices, e.g. from Imported price lists are already excluded from product history). | No migration necessary |
Changes related to quantity units of scale price quantities. | See Guide - 7.10.38.9 Quantity Units of Scale Price Quantities. | See Guide - 7.10.38.9 Quantity Units of Scale Price Quantities. |
The configuration.xml (/share/system/config/cluster/configuration.xml) has two new entries: | configuration.xml <set finder="domain-folder" scope="domain" matches="^${environment}_${staging.system.type}_[[\w&&[^_]]*$" fileExtensions="properties,xml"/> <set finder="property" scope="cluster,server,domain" fileName="${IS_SHARE}/system/config/cluster/staging_${environment}_${staging.system.type}.properties" /> | No change is necessary. However, now it is possible to have configuration files for each staging environment and staging system type at one place, and only the one matching the actual servers environment and type will be used. |
Description | API Changes | How to Migrate |
---|---|---|
Removed and adjusted default connection time and retry properties for web adapter. |
| |
The web adapter returns a HTTP 503 status code (old was HTTP 500 - internal server error) to the client if no configuration service is available. | Adjust clients to check for HTTP 503 codes if you want to check if ICM is available. | |
The class 'ApiTokenCookieLogin' has a new default method 'removeToken() '. This is used to remove a token cookie from the browser if the value is invalid and cannot be decoded. The default implementation does nothing. | Custom implementations should override the method to work the same way. |
Description | API Changes | How to Migrate |
---|---|---|
Apache Tomcat was updated to version 9.0.50. | Deploy the application server. |
Description | API Changes | How to Migrate |
---|---|---|
Cleaned up QualifiedNameGenerators for Junit 5 Tests | Obsolete/duplicate Classes
have been removed. | Use remaining class
as follows:
|
Description | API Changes | How to Migrate |
---|---|---|
DBInit and DBMigrate now use DBPrepare | The DBMigrate and DBInit tools now use DBPrepare internally. This is a step to remove these old commands from the ICM system and use DBPrepare only. | Before updating to ICM 7.10.33, run DBPrepare one time if you have used DBInit/DBMirate before 7.10.33 This procedure registers all old migration steps for DBPrepare. The next execution of DBPrepare only runs necessary migration steps. |
Description | API Changes | How to Migrate |
---|---|---|
Removed deprecated code from CMS | See Guide - 7.10.32.0 Removal of Deprecated Code of bc_pmc | See Guide - 7.10.32.0 Removal of Deprecated Code of bc_pmc |
Description | API Changes | How to Migrate |
---|---|---|
Transactions rolled back in REST requests if status is 4xx or 5xx. (IS-31768) | The REST transaction behavior changed. Automatically opened transactions will now be rolled back if the response has a status 4xx or 5xx. | If a transaction has to be committed in case of an error, the transaction should be committed explicitly. |
The configuration of the staging-preparer and decorator is now done in the code (Guice modules). (IS-30950) | staging.properties does no longer contain preparer-configurations. This configuration is done in hard-coded modules. | The code is backward-compatible. Tip Remove registration of staging preparer from staging.properties and declare a Guice binding for that. The standard modules with the staging-configuration can be overwritten with custom modules. Additional documentation can be found in Concept - Mass Data Replication | Staging Decorators. |
Description | API Changes | How to Migrate |
---|---|---|
SQL-Script-Preparer uses UTF-8 character set for scripts. A named parameter 'encoding={CHAR_SET}' can be used if another encoding or character set is desired. (IS-31952) | All SQL-Script-Preparer and its super-classes use UTF-8 character set for scripts instead the system's default character set. | If necessary, use named parameter 'encoding={CHAR_SET}' to use another character set. Example Class42 = com.intershop.beehive.core.dbinit.preparer.database.SQLScriptPreparer \ com/intershop/beehive/core/dbinit/scripts/dbindex.ddl \ encoding=UTF_16 \ true |
The SQL-Script-Preparer has an attribute (IS-32330) | By default the SQL-Script-Preparer executes each statement separately. By adding the attribute singleScript , the configured script will be executed as ones. | Add the attribute post.Class1 = com.intershop.beehive.core.dbinit.preparer.database.SQLScriptPreparer \ resources/core/dbinit/scripts/enfinitytable.sql \ singleScript=true |
Description | API Changes | How to Migrate | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Some pipelines and templates are overwritten by OIDC-adapter cartridges. (IS-30973) |
| If the mentioned pipelines or templates have been either overwritten or modified by custom variants, these variants have to be migrated to ensure compatibility with existing and newly created variants. | ||||||||||||||||||||||||
The pattern for the SSO-redirect-URIs has been changed. (IS-31923) |
| Adapt the configuration of your identity providers. Also see Guide - 7.10.26.4 New Pattern for SSO Redirect URIs. |
Description | API Changes | How to Migrate |
---|---|---|
Fixed constant names in ResponseStatusConstants | The constants names SERCICE_UNAVAILABLE and SERCICE_UNAVAILABLE_CODE in com.intershop.component.rest.capi.response.ResponseStatusConstants are fixed. | Use the constants SERVICE_UNAVAILABLE and SERVICE_UNAVAILABLE_CODE instead. |
JUnit updated to 4.13.1 JUnit-Jupiter to 5.7.0 | ||
Added default configuration for HTTP2 (Status: beta) | A default configuration for HTTP2 support is added to the HTTPD configuration. The configuration is disabled by default. Please test the HTTP2 setting with your test environment and report problems. How to enable the HTTP2 support:
We will enable HTTP2 as default with ICM 11. Please provide feedback. | |
Added default configuration to enable 'mod_status' in HTTPD | A default configuration to load Apache HTTPD module 'mod_status' is added. This is disabled by default. This can be used by some monitoring solutions to get insights from the Apache HTTPD server. How to enable the mod_status module:
The URL is '/server-status' and the access is restricted to the host running the web server only. This is only available for Linux at the moment. | |
Extended Cache Keywords for Promotions | The cache keywords for a promotion now also include the PromotionID which can be set during the creation of a promotion in the back office. This is especially useful when dealing with a REST client because this promotion ID is used as identifier in the URL to determine a promotion. | |
Bug Fix in /products endpoint of REST API | The Previously the | In case the
|
Description | API Changes | How to Migrate |
---|---|---|
Parameter returnSortKeys now returns detailed sort key information in ProductListResource | ProductListResource now returns a ProductLinkCollectionRO , which contains an extra field sortableAttributes . When returnSortKeys is true, this field contains extra information such as display name and direction for the sort keys, along with the old sortKeys field. | |
Messaging metrics available in Prometheus | Metrics from messaging component are available in Prometheus | |
Cache metrics are available in Prometheus | Metrics from registered caches are available in Prometheus | |
Check for Web Cache Deception (IS-31086) | To prevent a Web cache deception attack, it is checked if the URL of a request ends with an illegal dictionary ID. If that is the case, the server responds with 404 - 'resource not found'. | If this behavior is desired, there is nothing to do. intershop.validate.url.wcd = false |
The Cartridge containing the e-mail templates for the headless application type ( | Cartridge app_sf_emails was renamed to app_sf_headless_emails . | Dependency definitions in compile group: 'com.intershop.business', name: 'app_sf_emails' to: compile group: 'com.intershop.business', name: 'app_sf_headless_emails' |
Bugfix for local SSO users created for wrong organization (IS-31425) | Precondition:
The symptom of the bug was:
Migration step:
|
Description | API Changes | How to Migrate |
---|---|---|
Fill Factor removed for MSSQL indexes. (IS-30898) | The fill factor was removed from Stored Procedure | Execute DBMigrate for updating Stored Procedure. For already created indexes rebuild them with ALTER INDEX <@>index_name< ON <table_name> REBUILD WITH (FILLFACTOR = 100) |
Description | API Changes | How to Migrate |
---|---|---|
The SSO implementation is now independent from Keycloak libraries (IS-30079) |
|
|
The SSO-redirect-URIs have been made simpler (IS-30437) |
| |
JDBC Oracle driver update | This release contains a reference to the new oracle jdbc driver 19.6.0.0.0. | The following steps are necessary so that the old driver can still be used:
For more details see Support Article - Handling the New Dependency of 3rd_oracle Version 19.3.1.0 (valid to 7.10). |
New role descriptions for B2B roles | For migration to these new descriptions, perform the following steps:
| |
The Java code for /products/variations was refactored. |
|
|
Description | API Changes | How to Migrate |
---|---|---|
The SSO implementation now supports Azure AD besides Keycloak. For more information see Concept - Single Sign-On (SSO) and Cookbook - Single Sign-On (SSO). |
|
Note Sessions persisted using the Keycloak-specific implementation will be logged out. |
Description | API Changes | How to Migrate |
---|---|---|
renderTemplate is now optional in Pagelet Models | Pagelet Models without renderTemplate are valid now. However, if used in an ISML-based storefront, a renderTemplate is still required. |
Description | API Changes | How to Migrate |
---|---|---|
On MSSQL the stored procedure sp_deleteUserDataByDomain runs forever, if there is data that needs to be deleted in the tables BASICPROFILE/BASICADDRESS related to the deleted DOMAINIDs. | The stored precedure was modified, it is not an API change. However, you have to update to the new API version | Execute DBMigrate |
Description | API Changes | How to Migrate |
---|---|---|
New /productfilters endpoint for filter navigation | This will replace the /filters endpoint which now is deprecated. | |
The Pipeline "ProcessOrders.pipeline" from bc_orderprocess was originally overwritten in "app_sf_responsive_b2b" (only B2B) in order to add an extension point at the end of the pipeline branch "AfterCheckoutProcessing". This pipeline extension point which was only available for B2B was called "ProcessOrders-AfterCheckout". | The overwritten pipeline ProcessOrders.pipeline includes the former extension point |
Description | API Changes | How to Migrate |
---|---|---|
Changed default-persistence for bot sessions. | The default-value for the property intershop.session.persistBotSession is now false. | Most likely, the bot-session should not be persisted. In that case, nothing is to be done. |
Update JGroups libs to version 4.2.0 (IS-29459) | common-messaging updated to 1.0.3 | No manual deployment. Redeploy server only. |
Added extra logging to common-messaging (IS-29459) | None | Enable TRACE log level for package or class 'com.intershop.beehive.messaging.internal.jgroups.ChannelViewMonitor ' . This logs all changes of the members of a messaging channel to the debug log for JGroups. |
Extra configuration options added to the JGroups FILE_PING configuration to remove old .list files (IS-29459) | None | Check the provided configuration file and move the changes to a custom file if you have adapted the JGroups configuration. |
SSO for SMC. For more information see Concept - Single Sign-On (SSO) and Cookbook - Single Sign-On (SSO). (IS-28733, IS-29700) | new persistent object com.intershop.beehive.core.internal.profile.IdentityProviderMappingPO and new tables identityprovidermap*. | Execute dbmigrate OR dbprepare. |
New basket validation for addresses | To detect changes of a referenced address which may cause a change in the tax jurisdiction a new validation handler was added. In case the validation was called while allowing adjustments, the address is updated and the calculation set to invalid. When the automatic correction is prohibitted an error message is returned. | The response of the REST request for validating the basket may contain an In case automatic adjustments are not allowed and the error |
Description | API Changes | How to Migrate |
---|---|---|
New optional query parameter omitHasOnlineProducts added to REST resource /categories | The
This is to improve performances in cases where this field is not needed, as the operation is expensive. To support this change, the constructor for | A migration is only necessary if CategoryRO is created directly. If it is, fetch hasOnlineProducts using CatalogCategoryBO.hasOnlineProducts(Domain) (or another source), and set it using the setter CategoryRO.setHasOnlineProducts(boolean) . |
New field effectiveUrl added to attachments under the products resource. | In order for external resources to be able to access product attachments, the effective url is now included in AttachmentRO . | |
New query parameter extended added to product resource for variation attribute information | A new optional query parameter | |
Category endpoint now supports category reference as a category id. | The category endpoint requires the full path to the category in order to resolve a category. This is not always feasible, therefore the category endpoint now also supports using a category reference instead. This replaces the previous The category reference for a category can be found in the field |
Description | API Changes | How to Migrate |
---|---|---|
REST resource POST /contact is now secured by CAPTCHA | The REST resource for sending a "Contact Us" e-mail (POST /contact ) is now secured with CAPTCHA authentication. | If this is not wanted, the CAPTCHA authentication for this resource can be toggled off in the channel backoffice via Preferences | CAPTCHAs. For information on how to integrate CAPTCHA authentication into a REST client, please refer to Cookbook - WebShop REST API. |
Removed reCAPTCHA v1 service | Since the reCAPTCHA v1 service is no longer supported by Google, it has been removed from ICM. | Trigger DBMigrate to remove obsolete service configurations. |
Description | API Changes | How to Migrate |
---|---|---|
Adapt default JGroups configuration XML | This is not an API change but a configuration change:
| Merge these changes to your configuration file if you use a custom configuration file. No need to adapt configuration if you use the provided file. |
Description | API Changes | How to Migrate | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Refactoring of Basket REST API |
Info This list only shows the (CAPI) classes where the API has changed and does not include internal classes that have been changed because of this.
| A migration is only necessary if there is custom code which uses any of the mentioned changed classes directly. If there are already new custom REST resources or requests that still use ObjectMapper or assisted injection, then they should still work fine. | ||||||||||||||||||||||
Removed deprecated code | The deprectated method com.intershop.beehive.core.dbinit.capi.DBInit.prepareCartridge(Cartridge, String) has been removed. | Use the method com.intershop.beehive.core.dbinit.capi.DBInit.prepareCartridge(Cartridge) instead as documented already. | ||||||||||||||||||||||
Cache /categories call | Added logic for caching /categories call. After this functionality was added, the authentication token is missing from headers because this is the normal behavior. Only uncached calls return an authentication token in the headers. | CategoryResource.java and CategoryListResource.java are now cached. | ||||||||||||||||||||||
New requestable REST attribute
retailSet
was added to /products | By using the /products and /categories/<catID>/products REST endpoints, product stubs for display on family pages and search result pages can be retrieved. The optional
|
API Changes 7.10.14.0
Description | API Changes | How to Migrate | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DBMigrate to create a new Job which removes executed Impex Jobs (IS-27705 - Application servers dies during collecting data for job chain page) | - | Executing DBMigrate is optional if you do not need the Job. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
In an effort to unify REST error codes, some codes for the new basket and order APIs have changed. | The following codes have changed:
The following codes have been added:
| If custom code relies on these error codes, it needs to be adapted. Note that both the basket and the order REST API are still in a beta state, so there may occur similar changes in the near future until finalized. |
Description | API Changes | How to Migrate |
---|---|---|
Some basket validation errors have been changed/added/removed. | Changed/split up into multiple:
Added:
Removed:
| If there is custom code that specifically targets those error codes, it needs to be adapted to the new codes. In case you are still using the pipeline based order creation process, you have to re-register the |
Support for Prometheus Open Metrics |
|
|
Foreign key definition for IMAGE objects are moved from bc_foundation to bc_image (IS-27551) | The assignment of the IMAGE related tables was already moved from bc_foundation to bc_image with IS-26184. The foreign key definitions was not moved with the change. This is fixed now. | Run DBMigrate |
Updated some test libraries dependencies and versions |
| In case your project uses a custom assembly adapt the following Gradle files:
In case your project runs Geb tests ensure Firefox browser is installed on the machine where Geb tests are executed. For more details and examples see Guide - 7.10.13.4 Update Assembly Geb Configuration. |
New field "orderCreationReentryChain" at OrderPO | A new field "orderCreationReentryChain" has been added to the persistent object for orders (OrderPO ). This field contains information where the order creation process has been stopped (e. g. if a payment redirect is required). To get the new column in the database, a DBMigrate is needed. | Run DBMigrate |
Description | API Change | How to Migrate |
---|---|---|
New order creation handler | Moved functionality to generate the requisition document number from the "ApprovalOrderCreationHandler" to a new order creation handler "RequisitionDocumentNumberOrderCreationHandler" (cartridge "bc_order_approval_orm", position 25 in "PreOrderCreationChain"). | If there is a custom handler at position 25 in the "PreOrderCreationChain" then this handler needs to be moved elsewhere. |
SSH passphrase invalidation for log transfer to reporting service | A fix regarding the passphrase of the SSH keys was made. The old passphrases are not longer valid. The error log contains an entry as shown in the following example: ERROR com.intershop.beehive.report.internal.SSHTransfererJSch Could not connect (and open a session) with config SFTPConfig [user=xxx, host=upload.insight.intershop.com, passPhrase=***********************] com.jcraft.jsch.JSchException: invalid privatekey | Regenerate the key pair and send the new public key to the consumer of the effected transfer (mostly support@intershop.com). |
Description | API Change | How to Migrate |
---|---|---|
Reworked text index creation for MS SQL | The definition of indexed columns is changed from a predefined query to a list of columns. | See Guide - SQL Server Text Indexes |
DBMigrate on MS SQL to update procedure sp_compile_invalid_objects | The procedure compiles objects which are part of the current schema only. | Rund DBMigrate on MS SQL |
Option to disable CSS file compression | The used YUICompressor component to strip unsued characters from CSS files is not updated for some time. This can cause problems with recent CSS features. A property "intershop.css.compress.enabled " is added to disable (false) the CSS processing. The CSS will be send to the client without modifications. The Apache content compression (mod_deflate) can limit the data amount to transfer. This is added to all versions 7.6-7.10) | See ISML Tag - ISRENDER |
Override configuration by environment variables | It is possible to override configuration settings by environment variables. | See Concept - Configuration (7.10.12 to 7.10.41-LTS), section System properties |
Update JGroups configuration for faster startup (IS-27260 - Slow startup of appserver after JGroups4 update) | The server startup was slower if old '.list' files was part of the 'share/system/jgroups/*' directories. The messaging tried to contact the server instances registered in these files. This was not possible because these instances was stopped. It took around 5 minutes per file till the JGroups gave up. Now the retry configuration is changes to 5 tries with 1 second wait time. Old files are ignored if the servers defined in the file are not available. Please recheck the directory for old files from time to time as the files are not removed automatically and the startup delay can increase. A Java VM shutdown hook is added to stop the messenger instance if the VM does not stop with a shutdown to prevent remaining files. This does not work if the hook can not be triggered (kill -9). | The default configuration file is updated with the settings. Please adjust you configuration file if you deploy a custom version. jgroups_udp.xml <pbcast.GMS print_local_addr="true" join_timeout="1000" max_join_attempts="5" view_bundling="true"/> |
Creating text indexes using SQL Server | The creation of text indexes is now separated into specialized preparers for Oracle and SQL Server. The configuration of Oracle Context indexes is untouched. But the configuration of SQL Server Fulltext indexes is completely reworked. | See Guide - SQL Server Text Indexes |
REST documentation updated from Swagger to OpenAPI | The REST API documentation is changed from Swagger annotations to OpenAPI annotations. |
|
Storing of Promotion Information at Orders | The order creation process has been adapted to store the relevant information of all used promotions directly at the order. | See Guide - 7.10.12.2 Storing of Promotion Information at Orders |
Description | API Change | How to Migrate |
---|---|---|
DBMigrate for MSSQL | StagingGroups "FND_ImageReferences" and "FND_ImageDefinitions" moved to bc_image | Run dbmigrate after deploy new version. |
DBMigrate for MSSQL | Updated the Stored Procedure "STAGING_DDL$copy_indexes" for MSSQL to handle also XML indexes | Run dbmigrate after deploy new version. |
Description | API Change | How to Migrate |
---|---|---|
Rest Extension for products | Adding extension to show the default category |
Description | API Change | How to Migrate |
---|---|---|
JGroups messaging version updated to version 4. | The JGroups based messaging implementation uses the latest JGroups 4 version now. | The update installs a new 'jgroups_udp.xml' matching the changed JGroups 4 configuration. Please review and change the file if you manually made modifications for the former JGroups version! |
DBmigrate for MSSQL | Updated the stored procedure "sp_gather_table_stats" for MSSQL to prevent a data type issue | Run dbmigrate after deploy new version. |
Pipelines "ProcessBasketCalculation" and "ProcessCartCalculation" no longer remove invalid | The basket calculation pipelines "ProcessBasketCalculation" and "ProcessCartCalculation" no longer check if the selected payment methods are still valid after the calculation. There are basket validation handlers which perform the same checks, which is why it has been removed from the calculation. | If the basket calculation is triggered in custom (non-standard) code artifacts, then it may be necessary to trigger a basket validation for scope "Payment" afterwards (only if needed). |
New requestable REST attribute
packingUnit
was added | By using the /products and /categories/<catID>/products REST endpoints, product stubs for display on family pages and search result pages can be retrieved. The optional attrs parameter allows to receive certain product attributes in that call to construct product tiles on said pages. |
Description | API Change | How to Migrate |
---|---|---|
Changes in interface TransportConfiguration | The interface com.intershop.component.transport.capi.config.TransportConfiguration now extends ExtensibleObject. |
Description | API Change | How to Migrate |
---|---|---|
Changes in User RO classes | com.intershop.sellside.rest.common.capi.resourceobject.UserRO has a new public method: Date getBirthdayDate() | |
com.intershop.sellside.rest.smb.capi.resourceobject.SMBCustomerUserRO has 4 new public methods: String getPreferredInvoiceToAddressUrn() void setPreferredInvoiceToAddressUrn(String) String getPreferredShipToAddressUrn() void setPreferredShipToAddressUrn(String) | ||
New classes in app_sf_rest_smb cartridge: com.intershop.sellside.rest.smb.capi.resourceobject.SMBCustomerUserROCollection com.intershop.sellside.rest.smb.capi.resourceobject.UserLinkRO com.intershop.sellside.rest.smb.capi.resourceobject.UserLinkROCollection | ||
New methods in SMBCustomerUserROValidator, SMBCustomerUserROOperator, SMBCustomerUserHandler and CustomerBOGroupCustomerExtension interfaces | com.intershop.sellside.rest.smb.capi.resource.user.validator.SMBCustomerUserROValidator interface has a new method: void validateCreation(List<SMBCustomerUserRO>, UserBORepository) com.intershop.sellside.rest.smb.capi.resource.user.operator.SMBCustomerUserROOperator interface has a new method: UserBO createUserBO(SMBCustomerUserRO, CustomerBO) com.intershop.sellside.rest.smb.capi.resource.handler.SMBCustomerUserHandler interface is extended with 3 new methods: void deleteUser(UserBO) Collection<UserBO> addUsers(CustomerBO, List<SMBCustomerUserRO>) Collection<UserBO> getUsers(UserBO, CustomerBO, CustomerSearchContext) com.intershop.component.customer.capi.CustomerBOGroupCustomerExtension has a new method: CustomerUserCreationResult createUser(CustomerUserCreationContext context) | Default implementation provided, no action needed. |
New interfaces and classes in bc_customer cartridge | The following capi interfaces were introduced in bc_customer cartridge: com.intershop.component.customer.capi.CustomerSearchContext com.intershop.component.customer.capi.handlerchain.user.CustomerUserCreationContext com.intershop.component.customer.capi.handlerchain.user.CustomerUserCreationResult The following capi class was introduced in bc_customer cartridge: com.intershop.component.customer.capi.handlerchain.impl.user.CustomerUserCreationResultImpl | |
JUnit 5 is introduced. With a testrunner, a test can be exec_uted as JUnit 5 Test | The JUnit 5 Interfaces beforeEach(...) and afterEach(...) are now implemented by the AbstractAllCartridgesAwareRule and the EmbeddedServerRule. | Any cartridge that uses Rule which is the EmbeddedServerRule or the AbstractAllCartridgesAwareRule or do extend on of this rules has a test-dependency to JUnit 5. compile 'org.junit.jupiter:junit-jupiter' compile 'org.junit.jupiter:junit-jupiter-api' compile 'org.junit.vintage:junit-vintage-engine' compile 'org.junit.platform:junit-platform-runner' |
MS SQL JDBC 7.2.1 | To access the ms-sql-database, the version 7.2.1 for java 8 is used. | Everything should work fine with the new version of the driver. If workarounds for bug in previous versions where used, it can be checked if this workarounds now can be removed. |
Logback-Update | The com.intershop.beehive.core.capi.log.CSVEncoder is changed since it's superclass has changed too. | Generally, the CSVEncoder should not be overwritten. In exceptional cases, it is to check if the overwritten methods are still generating the expected behavior. |
DBMigrate with platform version 18.0.x and 19.0.x | The DBMigrate run(s) are necessary for MSSQL only. Some stored procedures are adapted. The Oracle database is not changed. |
Description | API change | How to migrate |
---|---|---|
Description | API change | How to migrate |
---|---|---|
New requestable REST attribute availableStock was added | It was added in REST response for all /products and / product calls. It contains the quantity which is available for sale. The data comes from the Inventory Service. |
Description | API change | How to migrate |
---|---|---|
SearchQuery of search query definition and searchquerydefinition.xsd has changed | Search query definitions can now include placeholders that are resolved at runtime. Therefore the searchquerydefinition.xsd was extended and the SearchQuery class has new methods: com.intershop.component.search.capi.querydefinition.impl.SearchQuery public List<ParameterBinding> getParameterBindings() public void setParameterBindings(List<ParameterBinding> bindings) public List<ParameterBinding> getAvailableParameterBindings() The For more information about this feature refer to: | Old product filter import files work without migration. The new If your '
|
New requestable REST attributes
minOrderQuantity
and
inStock
were added. | By using the /products and /categories/<catID>/products REST endpoints, product stubs for display on family pages and search result pages can be retrieved. The optional attrs parameter allows to receive certain product attributes in that call to construct product tiles on said pages.
| |
Now attribute groups on channel level get an available via REST API flag. A new checkbox and a new custom attribute are added for every attribute group | AvailableViaREST with the values true/false. If an attribute group is available via REST API , then the group and all contained attributes will be included in the regular get product data call. A new parameter attributeGroups is introduced. It returns the requested attribute groups with all their attributes. For the import/export process an additional attribute <available-via-rest> was added to the impex XML file. For attribute groups on organization level the value is always false. |
Description | API change | How to migrate |
---|---|---|
The BORules, which are used in the '_test'-cartridges were removed from the API. | The BORules (extends BusinessObjectTestRule) and their Builders were moved from the 'capi' packages, because they don't belong the official API of IS7. These rules remain in their original test cartridge, but their package was adapted. Therefore classes, which are using these rules must be adapted | If the project use these BORules, the imports have to be adapted:
E.g. Moved Rules - import tests.unit.com.intershop.component.order.capi.OrderBORule; + import com.intershop.component.order.test.OrderBORule; |
Description | API change | How to migrate |
---|---|---|
Changes in the staging processors | The internal API of staging processors has changed.
| Generally, the touched classes are for internal use only. |
The interfaces of the search-expressions are extended | There is a new interface with a method that was in the parent interface before and a new method with a default-implementation. SearchExpressionExactPhrase , SearchExpressionExclusionPhrase , SearchExpressionFuzzyPhrase the method getValue() is (re)moved.
| Since there are default-implementations, no migration should be necessary. |
The decorator-constructor removed. | The decorator-constructor from the RemoveUnapprovedProductsDecorator was removed. | The method setDecorator(...) can be called manually. |
Cartridge renaming | The cartridge in | Replace dependency declaration in build.gradle files in case ac_webhook_inventory is used. |