Start a conversation

Empty <code>configurationId</code> / <code>replacedConfigurationId</code> After <code>cssmgnt.API_1.moveConfigurations</code> and MAC Basket Failure

Table of Contents

Overview

After calling cssmgnt.API_1.moveConfigurations, the target Solution may show copied configurations where configurationId is blank (and replacedConfigurationId remains blank). In this state, MAC basket add/submit flows can fail when they require identifiers such as replacedConfigurationId.

This is expected behavior: moveConfigurations performs a copy in the Service Management (SM) database and intentionally clears configurationId and replacedConfigurationId. To generate/populate Salesforce Product Catalog (SFDC PC) configuration records/IDs, you must run downstream processing such as Calculate Totals (often referred to as Basket Submit) on the target Solution/basket.

Solution

Symptoms

  • In the target Solution (after moveConfigurations), copied configurations show:
    • configurationId = '' (empty)
    • replacedConfigurationId = '' (empty)
  • MAC basket creation/add/submit fails because downstream steps expect replacedConfigurationId (or related identifiers) to be present.
  • Note: If additional issues remain after the steps below, capture and retain the exact MAC basket error message from the UI/logs for faster diagnosis.

Why this happens (expected behavior)

cssmgnt.API_1.moveConfigurations operates in the Service Management (SM) database context and performs a copy operation (it does not directly create/populate SFDC Product Catalog configuration records/IDs at the time of the API call). As implemented, it:

  • Creates new copies of the source configurations in the target Solution
  • Generates new GUIDs for each copied configuration (via uuid.v4())
  • Leaves the original source configurations unchanged
  • Explicitly clears ID fields in the copied records:
config.configurationId = ''
config.replacedConfigurationId = ''
  • Removes database metadata fields from the copied records (for example: id, createdAt, updatedAt)

How to populate SFDC Product Catalog configuration IDs for downstream flows

  1. Run moveConfigurations

    Use cssmgnt.API_1.moveConfigurations to copy configurations from the source Solution to the target Solution (SM DB-level copy).

  2. Trigger downstream processing to create SFDC PC records

    Perform a Calculate Totals operation (often referred to as Basket Submit) on the target Solution/basket.

    This downstream processing step triggers creation/population of the corresponding Salesforce Product Catalog configuration records/IDs.

  3. Re-attempt the MAC basket operation

    After Calculate Totals/Basket Submit completes successfully:

    • Re-check whether configurationId is now populated where required by your process.
    • Retry MAC basket creation/add/submit.

Verification

  1. In the target Solution, confirm the configurations exist as copied records (with new GUIDs).
  2. After Calculate Totals/Basket Submit completes, confirm configurationId is now populated where your implementation expects SFDC PC linkage.
  3. Retry the MAC basket flow that previously failed.
  4. If the MAC basket still fails, collect the following:

    • The exact MAC basket error message (UI and/or logs)
    • Request/response payloads for:
      • cssmgnt.API_1.moveConfigurations
      • Calculate Totals / Basket Submit
    • Environment details (for example: AWS/Heroku)
    • CloudSense installed package version

Frequently Asked Questions

1. How can I tell if I’m hitting this exact issue?
After calling cssmgnt.API_1.moveConfigurations, the target Solution’s copied configurations show empty fields like configurationId = '' (and often replacedConfigurationId = ''), and the MAC basket add/submit then fails. If possible, confirm by capturing the MAC basket error text and inspecting the configuration records.
2. Is it a bug that configurationId and replacedConfigurationId are blank after moveConfigurations?
No. This is expected behavior: the API copies configurations in the SM database, generates new GUIDs, and explicitly clears configurationId and replacedConfigurationId during the copy.
3. What action actually generates/populates Salesforce Product Catalog configuration IDs?
A downstream processing step such as Calculate Totals / Basket Submit on the target Solution/basket. That operation triggers creation/population of the SFDC Product Catalog configuration records/IDs.
4. Why does the MAC basket flow fail after moveConfigurations?
MAC basket flows may rely on replacedConfigurationId (and/or related identifiers) being populated. Since moveConfigurations clears replacedConfigurationId, the flow can fail unless downstream processing (Calculate Totals/Basket Submit) populates the identifiers needed by the MAC process.
5. What should I provide if the problem continues even after Calculate Totals/Basket Submit?
Provide: (1) the exact MAC basket error message, (2) the moveConfigurations request payload (with IDs replaced by placeholders like <solution_id> / <config_id>), (3) the Calculate Totals/Basket Submit request and outcome, (4) CloudSense installed package version, and (5) the environment type (for example, AWS/Heroku).
Choose files or drag and drop files
Was this article helpful?
Yes
No
  1. Matej Storga

  2. Posted
  3. Updated

Comments