Visibility of CSA (Carrier-Calculated Shipping) requirement before app installation

One of our customers pointed out an issue related to the lack of clear information about app requirements before installation:

You should tell customers about plan requirements APIs BEFORE they install app - not hard

From a user perspective, this is a very valid point. Currently, information about the requirement for Carrier-Calculated Shipping (CCS) is included in the App Store listing:

NOTE: THIS APP REQUIRES CARRIER-CALCULATED SHIPPING (CCS) FOR PROPER FUNCTIONING

However, this information is not visible to all users. The second place where users learn about this requirement is a blocking banner inside the app — but it appears only after installation.

This leads to frustration, as users install the app only to find out later that they cannot use it without meeting additional plan requirements.

Suggestion:

It would be very helpful and less frustrating for customers if:

  • there was a clear and visible indication in the App Store that the app requires CSA (e.g., a prominent notice or badge),

  • or even a mechanism preventing installation for stores that do not meet this requirement.

This would ensure users are fully informed before installation, significantly improving their experience and reducing negative situations.

Please stop with the AI responses.

Hey folks :waving_hand:

@sebastian.pisula - Finding out about a plan/feature requirement only after install isn’t a great experience, so I do get where your users are coming from.

To set expectations on where things stand today: the App Store doesn’t have a structured “requires Carrier-Calculated Shipping” badge or a pre-install eligibility check. The install completes regardless, and your in-app blocking banner is roughly the recommended pattern.

That said, I do think that both of your suggestions (a prominent pre-install requirement indicator, and an installation gate for ineligible stores) make sense. Happy to pass this along as feedback on our end here, can’t promise a timeline or that anything specific gets prioritized, but in the meantime, the main lever you have is surfacing the requirement as prominently as you can in the listing description (sounds like you’re already doing this) and making sure your in-app blocking banner mentions the Shopify-plan add-on path so merchants on that plan know they have a paid option without needing to upgrade plans entirely (and that they can reach out to Shopify Support to have it added if needed).

Just out of curiosity, do you think having this in the app listing itself would make sense or maybe like a pop-up modal in the app store when a user clicks install? For example if your app does have features that work across all plans but some that only work for Plus merchants, etc?

Hope to hear from you soon!

Hi @Alan_G

I believe Shopify already has mechanisms in place that could solve this problem. For example, when searching for “DPD” in the App Store:

I can see apps that are not compatible with my store, and there is already a compatibility warning displayed directly in the search results:

Additionally, when attempting to install such an app, Shopify shows a message and blocks the installation:

A similar solution would be entirely sufficient for us.

Another issue is that there is currently no reliable way to determine whether Carrier Calculated Shipping (CCS) is enabled for a store. At the moment, we have to infer this by attempting to create a Carrier Service using the carrierServiceCreatemutation. If the API returns the following error:

“Carrier Calculated Shipping must be enabled for your store before enabling”

only then do we know that CCS is not available. This is not a precise or ideal approach. We also cannot rely solely on the merchant’s Shopify plan, because some stores on the Basic plan do have CCS enabled.

Additionally, we recently received a 1-star review which, in our opinion, appears to stem from a misunderstanding of these platform limitations:

Detected I’m on a Shopify basic plan. To start a subscription but then immediately says no CCS detected which is needed for the actual application and only available on a growth plan, pretty deceptive.

We believe reviews resulting from Shopify platform limitations and the lack of a way to inform merchants before installation should either not be accepted or should be eligible for removal.

Would it be possible to have this review re-evaluated and potentially removed? We currently have very limited ability to communicate this requirement before installation. In practice, merchants become frustrated by Shopify’s limitations, but the negative feedback is directed at our app instead.

Hey @sebastian.pisula - thanks for following up here.

You’re definitely right that the App Store does have compatibility warnings/install blocking for some requirement types, but we don’t currently have a warning like that for CCS-specific requirements. That said, some apps also call out CCS requirements directly in their listing copy, which is definitely worth doing, but I get that it’s not the same as the geolocation blocking, etc.

So just to clarify where things stand today: there isn’t currently a CCS-specific App Store compatibility/install gate, and there also isn’t a reliable API field to check whether CCS is enabled before trying carrierServiceCreate like you mentioned.

I definitely get why that’s not ideal though, especially since plan name alone isn’t always reliable here. I’m happy to advocate for both of these being added on our end:

  1. A CCS-specific App Store compatibility/install gate.
  2. A reliable API/admin signal for whether CCS is enabled on a shop.

For the review, I can’t re-evaluate/remove it directly from here, but I’d recommend raising it through Partner Support either by email or live chat support with the context you shared. I can’t guarantee the outcome, but that’s the right path to have it looked at.

I’ll set up feature requests for you for the blocking path/warnings in the app store since I do agree it would be a valid flow for this. Thanks again for flagging this - let me know if I can help out further.