draftOrderCalculate mutation always returns availableShippingRates in the store's currency

I have an issue with the draftOrderCalculate mutation as it always returns availableShippingRates in the store’s currency despite inputting different currency on the presentmentCurrencyCode field. This occurs on the latest API version - 2022-10.

My store’s default currency is USD. I’m providing PLN as the presentment currency.

Mutation input:

mutation CalculateDraftOrder($input: DraftOrderInput!) {
  draftOrderCalculate(input: $input) {
    calculatedDraftOrder {
      availableShippingRates {
        title
        handle
        price {
          amount
          currencyCode
        }
      }
      presentmentCurrencyCode
    }
  }
}

My response:

{
  "draftOrderCalculate": {
    "calculatedDraftOrder": {
      "availableShippingRates": [
        {
          "title": "Poland", 
          "handle": "shopify-Poland-8.07", 
          "price": {
            "amount": "8.07", 
            "currencyCode": "USD"
          }
        }
      ], 
      "presentmentCurrencyCode": "PLN"
    }
  }
}

And this is my setup for shipping on the Poland market:

The price is 40 PLN, yet I’m getting the 8.07 USD in the API response.

We’re running into this same issue. We’re currently needing to perform our own currency conversion calculations which don’t always align with the currency calculations performed in Shopify and cause more down the line issues.

It’s been 3 years now since a Draft Order presentment currency bug was first confirmed by Shopify and it’s still an ongoing issue. Getting these bugs resolved would be super high value for both merchants and developers.

1 Like