---
updatedAt: 2026-10-12T13:24:18.000Z
agentTools:
  projectIndex: https://developers.shoppinggives.com/llms.txt
---

# Salesforce Integration Guide

[block:html]
{
  "html": "<style>\n  /*sidebar hover style*/\n  #hub-sidebar .text-wrap:hover {\n    background: #68b1a6 !important; \n}\n\n  \n  .markdown-body {\n  --markdown-title-font:open sans,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;\n  --markdown-font:open sans,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;\n  --markdown-radius: 0px;\n  --md-code-background: #fcfffe;\n  --md-code-text: black;\n  --md-code-tabs: #cee0db;\n  --md-code-tab-text: white;\n  --md-code-border: black;\n}\n  \n  .markdown-body .CodeTabs {\n  \tborder: 1px solid lightgray;\n}\n\n  /*needed to remove border at bottom of code box*/\n   .markdown-body pre {\n  \tmargin-bottom: 0;\n}\n  \n  /*List Styling*/\n  \n  ul> li{\n  \tmargin-left: 1em !important;\n    margin-top: 1em;\n  }\n \n  ol>li{\n  \tmargin-left: 1em !important;\n    margin-top: 1em;\n    \n  }\n  \n  \n  \n  /*table styling*/\n  .markdown-body .rdmd-table {\n  --table-text: black;\n  --table-head: #cee0db;\n  --table-head-text: white;\n  --table-stripe: #f2faf7;\n  --table-edges: lightgray;\n  --table-row: #fcfffe;\n    margin-top: 20px;\n    margin-bottom: 20px;\n}\n  \n  /*removing block quote styling so they can be used to indent\n  where indent fails to work automatically*/\n.markdown-body blockquote p {\n  \tcolor: rgb(76, 85, 90); /*default text color in docs*/\n    margin-left: 1em;\n   \n}\n  \n  .markdown-body  blockquote {\n    border-left: none;\n    margin-top: 1em;\n}\n  \n  li blockquote {\n  \tmargin-top: 0 !important;\n  }\n  \n  blockquote  blockquote {\n  \tmargin-top: 0 !important;\n  }\n  \n  blockquote  blockquote p {\n  \tmargin-bottom: 0 !important;\n  }\n  \n  /*Image Pointer Events Control*/\n  .markdown-body>.img{\n    pointer-events: none;\n  }\n  \n  .markdown-body>.img>img{\n    pointer-events: auto;\n  }\n  \n  .markdown-body .lightbox:after{\n  \tpointer-events: auto;\n  }\n\n /**Header Styling**/   \n  \n/*h2 is the default readme io header*/\nh2 {\n  margin-block-end: 0;\n  margin-bottom: 0;\n  margin-top: 2em !important;\n}\n   \n/*h3 are subheadings/note headings -- do not use directly as note headings are also H3s*/  \n:not(blockquote) > h3 {\n  font-weight: 200;\n  margin-top: 2em !important;\n}\n  \n  \n  \n/*h4 are OL instructions steps that need emphasis/fall out of line with other indentations */\n.markdown-body h4 {\n  font-weight: 200;\n  margin-left: 1em;\n  margin-top: 1em !important;\n  margin-bottom: 0 !important;\n}\n  \n  \n /**Callout Box Styling**/ \n.markdown-body .callout{\n  margin-top: 1em;\n  margin-bottom: 1em;\n } \n  \n .markdown-body .callout-heading{\n  margin-top: 1em;\n } \n  \n/*yellow 'alert' boxes*/\n.markdown-body .callout.callout_warn {\n  --text: #f0ad4e;\n  --emoji: unset;\n  --icon: \"\\f06a\"; /* FA: warning */\n  --icon-size:1.5rem;\n  border-radius: 10px;\n  --border: transparent;\n  border: .5px solid #f0ad4e;\n}\n  \n.markdown-body .callout.callout_warn blockquote p {\n  color: #f0ad4e;\n}  \n\n/*green 'success' boxes*/\n.markdown-body .callout.callout_okay {\n  --text: #679868;\n  --emoji: unset;\n  --icon: \"\\f058\"; /* FA: circle-check */\n  --icon-size:1.2rem;\n  border-radius: 10px;\n  --border: transparent;\n  border: .5px solid #679868;\n} \n  \n.markdown-body .callout.callout_okay blockquote p {\n  color: #679868;\n  --markdown-text: #679868;\n} \n \n/*blue 'note' boxes*/\n.markdown-body .callout.callout_info {\n  --text: #5bc0de;\n  --emoji: unset;\n  --icon: \"\\f055\"; /* FA: sticky-note */\n  --icon-size:1.5rem;\n  border-radius: 10px;\n  --border: transparent;\n  border: .5px solid #5bc0de;\n} \n \n/*custom purple example boxes*/\n.markdown-body .callout[theme=📷] {\n  --background: #e4dfec;\n  --emoji: unset;\n  --icon: \"\\f0a9\"; /* FA: circle-arrow-right */\n  --icon-color: #4a2b7b;\n  --icon-size:1.2rem;\n  border-radius: 10px;\n  border: .5px solid #4a2b7b;\n}\n</style>"
}
[/block]

> ✉️ New to ShoppingGives?
>
> If you are new to ShoppingGives, please reach out to our team of social impact specialist to learn more about our partnership packages. A subscription to our services is required to gain access to credentials required to integrate SFCC. You can learn more about our pricing at <https://www.shoppinggives.com/pricing> or you can schedule time by filling out the form below!

[block:embed]
{
  "html": false,
  "url": "https://share.hsforms.com/1-oESrzAkQr2uIPRjKO8pjg1osco",
  "provider": "share.hsforms.com",
  "href": "https://share.hsforms.com/1-oESrzAkQr2uIPRjKO8pjg1osco",
  "typeOfEmbed": "iframe",
  "height": "540px",
  "width": "100%",
  "iframe": true
}
[/block]

> 👍 Who should read this:
>
> The webmaster or developer with HTML/CSS -level access to the e-commerce website.

## Pre-Integration

***

The Salesforce Commerce Cloud integration requires the following:

1. [ShoppingGives Headless Widgets](https://developers.shoppinggives.com/docs/headless-integration-guide) integration.
2. A store ID and AWS Credentials from ShoppingGives to set up the cartridge. Please request these keys from your [ShoppingGives](https://www.shoppinggives.com/salesforce) representative.

## Supported Architectures

ShoppingGives cartridge includes SFCC's reference architectures **SiteGenesis** and **Storefront Reference Architecture** (SFRA). SFRA is the more recent architecture, so if you are new to Salesforce Commerce Cloud, it is recommended that you build your site on this architecture.

[block:embed]
{
  "html": false,
  "url": "https://www.loom.com/embed/611e3bd7b5d94684a37e522146090e50",
  "provider": "loom.com",
  "href": "https://www.loom.com/embed/611e3bd7b5d94684a37e522146090e50",
  "typeOfEmbed": "iframe",
  "height": "300px",
  "width": "100%",
  "iframe": true
}
[/block]

### Initial Cartridge Installation [(Tutorial@00:47)](https://www.loom.com/share/611e3bd7b5d94684a37e522146090e50?t=47)

The following steps are required to install the ShoppingGives link cartridge:

1. Install the cartridge into the SFCC
2. Import the custom metadata
3. Set the newly-created metadata values (see Site Preferences)
4. Import or create the Product and Order feed jobs
5. Make storefront cartridge edits:
   * Configure parameters
   * Import the [int\_shoppinggives\_sg](https://github.com/NicheInteractiveMedia/sg-sfcc/tree/master/link_shoppinggives/cartridges/int_shoppinggives_sg) cartridge into the Commerce Cloud Studio Workspace:\
     a) Open the **Commerce Cloud Studio**\
     b) Click *File -> Import -> General -> Existing Projects Into Workspace*\
     c) Browse to select the `int_shoppinggives_sg` folder directory\
     d) Click **Finish**.\
     e) Click **OK** when prompted to link the cartridge to the sandbox

### Assign Cartridge to Business Manager

1. Log into the **Business Manager**
2. Click *Administration -> Sites -> Manage Sites -> Business Manager Site*
3. Select the **Settings** tab
4. Add `int_shoppinggives` settings variable with the beginning of the cartridge path value, click **Apply**
5. Assign the cartridge to your desired site (sandbox, ...)
6. Log into **Business Manager**
7. Click *Administration -> Sites -> Manage Sites -> SiteGenesis* or the desired site
8. Select the Settings tab and add  `int_shoppinggives_sg`, `int_shoppinggives_sg_changes`, `bm_shoppinggives`, and `int_shoppinggives` variables to the beginning of the cartridge path (or ensure it is in front of `app_storefront_base`)

[block:image]
{
  "images": [
    {
      "image": [
        "https://files.readme.io/091e1cb-image.png",
        null,
        ""
      ],
      "align": "center",
      "border": true
    }
  ]
}
[/block]

### Configure ShoppingGives Preferences

In **Business Manager**, navigate to the target *Site > Site Preferences > Custom Preferences*.

Select the site preference group with the ID **ShoppingGivesConfigs** and edit it with the following parameters:

* Preference Name Description
* ShoppingGives Enabled Toggle on/off ShoppingGives integration
* ShoppingGives S3 Access Key
* ShoppingGives S3 Secret Key
* ShoppingGives Store ID ShoppingGives Store ID
* ShoppingGives S3 Bucket ShoppingGives S3 Bucket
* ShoppingGives S3 Region ShoppingGives S3 Region
* ShoppingGives Order
* Export Status to Export
* ShoppingGives Order Statuses to Export. [See the description below](#status).
* ShoppingGives Last Order Sync
* Specifies the date from which we need orders in the job
* ShoppingGives Last Product Sync
* Sets the date from which we need the product in the job
* ShoppingGives ProductAssociated Groups ID, ShoppingGives attribute ID for associated groups ID, can be a product-level custom or system attribute. [See the description below](#groups).
* ShoppingGives ProductTags ID, ShoppingGives attribute ID for tags ID, can be a product-level custom or system attribute. [See the description below](#groups).

<a name="status">

### Parameter: Order Export Status to Export

</a>

The **order export status to export** parameter will export orders with the export status configured in `ShoppingGivesOrderExportStatustoExport` in the custom preferences section.

The following values are the allowed statuses:

* EXPORT\_STATUS\_EXPORTED
* EXPORT\_STATUS\_FAILED
* EXPORT\_STATUS\_NOTEXPORTED
* EXPORT\_STATUS\_READY

[block:image]
{
  "images": [
    {
      "image": [
        "https://files.readme.io/1471611-image.png",
        null,
        ""
      ],
      "align": "center",
      "border": true
    }
  ]
}
[/block]

> 📘 Info
>
> For more information visit B2C documentation

<a name="groups">

### Parameter: Product Associated Group ID and Product Tags ID

</a>

In order to take advantage of *ShoppingGives***Associated Groups** and **Tags** it is necessary to map the corresponding attributes from a Product.

In **Business Manager**, navigate to the target *Site > Site Preferences > Custom Preferences*.

Select the site preference group with the ID **ShoppingGivesConfigs**

To map a **ShoppingGives Product Associated Group Id** or **Product Tag Id**, add the desired property Id into the corresponding value

[block:image]
{
  "images": [
    {
      "image": [
        "https://files.readme.io/96eccdd-image.png",
        null,
        ""
      ],
      "align": "center",
      "border": true
    }
  ]
}
[/block]

### Configure ShoppingGives Service Credentials

Importing the services.xml metadata file will create many ShoppingGives services, profiles,\
and credentials. Verify that the following exists.

* Services:

[block:image]
{
  "images": [
    {
      "image": [
        "https://files.readme.io/9cf54d3-image.png",
        null,
        ""
      ],
      "align": "center",
      "sizing": "450px"
    }
  ]
}
[/block]

* Profiles:

[block:image]
{
  "images": [
    {
      "image": [
        "https://files.readme.io/72398cc-image.png",
        null,
        ""
      ],
      "align": "center",
      "sizing": "450px"
    }
  ]
}
[/block]

* Service Credentials are required to be updated with the information provided by your ShoppingGives\
  representative.
  * For S3 Region and Credentials, contact the ShoppingGives support portal.

[block:image]
{
  "images": [
    {
      "image": [
        "https://files.readme.io/96b38b2-image.png",
        null,
        ""
      ],
      "align": "center",
      "sizing": "450px"
    }
  ]
}
[/block]

### Custom Code Configuration

The `int_shoppinggives_sg_changes` cartridge includes a default template for ShoppingGives located in `int_shoppinggives_sg_changes\cartridge\templates\default\checkout\confirmation\confirmati
on.isml`.

If you have customized the template, you must merge it into your cartridge(s) and override the highlighted sniped code into your updated `app_storefront_base cartridge’s confirmation.isml` template.

[block:image]
{
  "images": [
    {
      "image": [
        "https://files.readme.io/2481d9d-image.png",
        null,
        ""
      ],
      "align": "center",
      "sizing": "400px",
      "border": true
    }
  ]
}
[/block]

### Data Storage

Site Preferences – the SitePreferences system object has been extended to store the setup and confirmation values for each B2C Commerce site.

### Availability

Out of the box and after the integration, the SFCC cartridge will provide automatic resync jobs to update the ShoppingGives Cause Stack backend and provide the expected behavior for consumers. There are two additional optional jobs named `exportOrder` and `exportProduct`  that may be scheduled individually.

### Failure/Recovery Process

When the cartridge is down, orders and products will not be exported. This will not operationally affect the storefront.

### Roles/Responsibilities

No recurring tasks need to be fulfilled to get the full potential of ShoppingGives other than the scheduled Jobs. This is the extent of what is required if the configuration details are correct in your *Site Preferences*.

### Staging vs. Production

Credentials have to be changed in the cartridge to point to the desired environment.

Make sure to connect with your ShoppingGives representative to get the correct credentials.

## Technical Notes

### Compatibility

ShoppingGives compatibility mode is 22.7, and the Site Genesis version is 105.2.1

### Jobs

ShoppingGives cartridge supports four optional jobs that are imported in the metadata:

* OrdersFeedExportFull is a job that will gather all orders for a site.
* OrdersFeedExportDelta is a job that will collect all orders after the date of the last order feed job for a site.
* ProductsFeedExportFull is a job that gathers all the products within the site.
* ProductsFeedExportDelta is a job that will collect all products after the date of the last product feed job for a site.

> 📘 Info
>
> Each process as described above packages its data as an XML file.
>
> Here's some documentation for [B2C](https://documentation.b2c.commercecloud.salesforce.com/DOC2/index.jsp) from SalesForce

> 📘 Re-activate the current code version in sandboxes
>
> Re-activating the current code version in sandbox enviroments may be necessary to ensure the custom job steps are available. To do so, click *Administration > Site Development > Code Deployment Activate* and select the updated version.

## Website Widgets

Please refer to our [Headless Widget Integration Guide](https://developers.shoppinggives.com/docs/headless-integration-guide)