If your Commerce Cloud instance is running multiple sites, the /thirdparty
directory supports creation of site-specific subfolders and files. This makes it possible for you to have, for example, a different Apple Pay merchant identity certificate for each site, without running into naming conflicts.
For example, suppose you have two sites, siteA
and siteB
, and each site requires a unique version of a file named example.txt
. To upload the file for siteA
, first use the startFileUpload
endpoint, and set the value of the x-ccsite
header to siteA
:
PUT /ccadmin/v1/files HTTP 1.1
Authorization: Bearer <access_token>
x-ccsite: siteA
{
"filename": "example.txt",
"segments": 1,
"uploadtype": "thirdPartyFile"
}
Next, using the token returned in the response, call the uploadSegment
endpoint (with x-ccsite
set to siteA
) to upload the file, as described in Upload the file to the desired location.
Once you have uploaded the siteA
version of the file, use startFileUpload
and uploadSegment
with x-ccsite
set to siteB
to create the version of the file for siteB
. If you then view example.txt
in your browser, the version of the file you see will depend on which site’s URL you use.
You can also create a global file by omitting the x-ccsite
header when you call startFileUpload
and uploadSegment
. When you use the getFiles
endpoint to view a list of files, the files you see depend on the current site in the request. For example, if you call getFiles
without the x-
header, you see only the global versions of files. If you set x-ccsite
to siteA
, you see all siteA
-specific files and folders, as well as any global files and folders that are not overridden by siteA
-specific versions. (If there is both a global and a siteA
-specific version of a file, you see the siteA
-specific version.) Similar logic applies when using the deleteFile
endpoint to delete a file.
Note that since the storefront always has a current site, if there is a site-specific version of a file for the current site as well as a global version of the file, the storefront always sees the site-specific version.