Installing an appexchange app into a scratch org
Figured it out. You cannot use the sfdx force:package:install command using the ID of the appexchange app. The ID that is needed is eventually displayed in the URL during an interactive install of the app into a non-scratch org (at the step where you are asked to select which users should be granted access to the app). For example, the URL for the "Salesforce Community Management Package for Communities with Chatter":
- https://na59.lightning.force.com/packagingSetupUI/ipLanding.app?apvId=04to00000007jkAAAQ&src=U
The package ID needed is the value of the apvId parameter (04to00000007jkAAAQ). Feed this into the sfdx command like so:
- sfdx force:package:install --id 04to00000007jkAAAQ -w 1000
More details about obtaining the package ID:
- https://success.salesforce.com/issues_view?id=a1p30000000eRrNAAU
Just in case to help anyone in the future, you also can obtain the package version ID installed in any org with:
sfdx force:package:installed:list -u <alias|username>
The output for a Nonprofit Success pack as example:
ID Package ID Package Name Namespace Package Version ID Version Name Version
────────────────── ────────────────── ────────────────────────────── ───────────── ────────────────── ───────────────────────── ──────────
0A32E000000rQnwSAE 033i0000000Gi57AAC Nonprofit Success Pack npsp 04t1Y000000ggZ2QAI Cumulus 3.170.0.19
So you can install it with:
sfdx force:package:install -p 04t1Y000000ggZ2QAI -u <scratchOrg> -w 1000
In case you need to install more than one, just add the -r
parameter for no prompt, and add &&
to concat commands.
sfdx force:package:install -p 04t1Y000000ggZ2QAI -u <scratchOrg> -w 1000 - r &&
sfdx force:package:install -p 04t1Y000000ggZ2QAI -u <scratchOrg> -w 1000