Hello Shopify dev community,
We are facing issues while using the marketCurrencySettingsUpdate
mutation specifically with the baseCurrencyManualRate
field. Here are the details:
Unified Markets Enabled
When we attempt the following mutation on a store with Unified Markets enabled:
// We are using GQL version of 2025-04
mutation {
marketCurrencySettingsUpdate(
input: {
baseCurrency: CAD
baseCurrencyManualRate: 0.016152
localCurrencies: true
roundingEnabled: true
}
marketId: "gid://shopify/Market/26246381234"
) {
userErrors {
code
field
message
}
market {
id
name
}
}
}
We receive the following error:
{
"userErrors": [
{
"code": "UNIFIED_MARKETS_ENABLED",
"field": ["input"],
"message": "This action is restricted if unified markets is enabled."
}
]
}
We understand that some operations may be restricted in Unified Markets, but we would like to specifically ask:
- Why is setting
baseCurrencyManualRate
restricted in Unified Markets? - Is there any API or mechanism available to set a manual exchange rate under Unified Markets?
- Is this functionality planned for future API versions?
Unified Markets Disabled (Non-Unified Markets)
When we run the exact same mutation on a store where Unified Markets is disabled (Legacy Markets model), the mutation runs without any errors. However, the baseCurrencyManualRate
is not updated. The value remains unchanged, and no errors or warnings are returned to indicate failure.
This creates confusion because:
The API call succeeds, but silently fails to apply the baseCurrencyManualRate.
There is no feedback from the API indicating why the update failed.
Summary
- In Unified Markets → mutation is blocked completely with
UNIFIED_MARKETS_ENABLED
error. - In non-Unified Markets → mutation is accepted but does not update
baseCurrencyManualRate
, nor returns any error.
Since our system relies on managing currency exchange rates for merchant markets, we are currently blocked from programmatically updating baseCurrencyManualRate
for both Unified and non-Unified Market structures.
Could you please:
Confirm whether baseCurrencyManualRate is supported or deprecated?
Clarify if this is a known limitation or a bug?
Suggest any alternative approach to programmatically manage currency exchange rates?
We appreciate your assistance and look forward to your clarification.