---
schema_version: "1"
id: 951774374b183763a282a76e0530279f200518f020bd9e3c844621e63145d969
title: Shopper Data with the B2C Commerce Integration
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/commerce/264-0-0/om_shopper_data_with_b2c_com_integration.md
canonical_url: https://help.salesforce.com/s/articleView?id=commerce.om_shopper_data_with_b2c_com_integration.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 4d8c43ff8cd293a0e86fca2e3ece2cb13214ab955c5bdc2ac2f3d804d545725a
description: The B2C Commerce integration creates standard accounts and contacts to represent business shoppers or buyers. It identifies a business buyer by the presence of a company name in an order’s billing address. By default, it also creates standard accounts and contacts to represent individual shoppers.
products:
  - Commerce
  - Salesforce Order Management
release: "264"
---
# Shopper Data with the B2C Commerce Integration

The B2C Commerce integration creates standard accounts and contacts to represent business shoppers or buyers. It identifies a business buyer by the presence of a company name in an order’s billing address. By default, it also creates standard accounts and contacts to represent individual shoppers.

### Required Editions

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition"><colgroup><col></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;"><a href="https://help.salesforce.com/s/articleView?id=commerce.om_editions.htm&amp;language=en_US" target="_blank">View supported editions</a>.</td></tr></tbody></table>

To represent individual shoppers with person accounts instead, configure the permission set to access Account records. See [Configure Access to the Console App](https://help.salesforce.com/s/articleView?id=commerce.om_impl_console_app_access.htm&language=en_US) ..

If you’re representing individual shoppers with person accounts, don’t change the names or API names of the two default Account record types. The B2C Integration uses those types to represent shopper accounts.

By default, the integration identifies an existing shopper record by its name or email address. You can configure it to identify existing shoppers by applying your org’s duplicate and matching rules for Accounts, Contacts, and Person Accounts. For more information, see [Manage Duplicate Records](https://help.salesforce.com/s/articleView?id=sales.managing_duplicates_overview.htm&type=5&language=en_US).

The integration can’t look up any encrypted fields on Salesforce objects. Encrypting any of the fields it uses to look up records causes order ingestion to fail. If you want to encrypt the Account Name, Account Person Email, or Contact Email field, then you must implement custom duplicate and matching rules that don’t use any encrypted fields. For more information on encryption restrictions, see [General Shield Platform Encryption Considerations](https://help.salesforce.com/s/articleView?id=xcloud.security_pe_considerations_general.htm&type=5&language=en_US).

When the integration receives order data, it checks the billing address company name value. If the billing address contains a non-null company name, the integration considers the shopper to be a business buyer. Otherwise, it considers the shopper to be an individual. It then proceeds based on the shopper type and the current Person Accounts for Shoppers setting.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:33.33333333333333%">
          <col style="width:33.33333333333333%">
          <col style="width:33.33333333333333%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d5674e80">Business Buyer</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d5674e83">Individual Shopper When Using Standard Accounts</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d5674e86">Individual Shopper When Using Person Accounts</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Business Buyer" class="slds-cell-wrap" style="vertical-align:top;" headers="d5674e80 ">
              <p>If <strong class="uicontrol">B2C Integration Data Matching Rules</strong> is selected, use
                the org’s matching rules to identify an account or contact that matches the buyer
                information in the order data. If not selected, search for these records:</p>
              <ul>
                <li>Account with a name matching the company name in the order data</li>

                <li>Contact with an email matching the buyer email in the order data</li>

              </ul>
              <p>Associate buyer records with the new order according to the search results.</p>
              <dl>

                <dt style="font-weight:bold;padding-top:.25rem;">Neither found</dt>

                <dd style="padding-left:1.5rem;padding-bottom:.5rem;">Create a standard account and a contact using the order data. Assign the new
                  account to the new contact’s Account field. Associate both new records with
                  the new order.</dd>


                <dt style="font-weight:bold;padding-top:.25rem;">Both found</dt>

                <dd style="padding-left:1.5rem;padding-bottom:.5rem;">Associate both existing records with the new order.</dd>


                <dt style="font-weight:bold;padding-top:.25rem;">Account found; contact not found</dt>

                <dd style="padding-left:1.5rem;padding-bottom:.5rem;">Create a contact using the order data. Don’t associate the contact’s Account
                  field with the existing account. Associate the existing account and new
                  contact with the new order.</dd>


                <dt style="font-weight:bold;padding-top:.25rem;">Account not found; contact found</dt>

                <dd style="padding-left:1.5rem;padding-bottom:.5rem;">Create an account using the order data. Don’t associate the existing
                  contact’s Account field with the new account. Associate the new account and
                  existing contact with the new order.</dd>

              </dl>
            </td>

            <td data-label="Individual Shopper When Using Standard Accounts" class="slds-cell-wrap" style="vertical-align:top;" headers="d5674e83 ">
              <p>If <strong class="uicontrol">B2C Integration Data Matching Rules</strong> is selected, use
                the org’s matching rules to identify an account or contact that matches the
                shopper information in the order data. If not selected, search for these
                records:</p>
              <ul>
                <li>Account with a name matching the concatenated first name and last name in the
                  order data</li>

                <li>Contact with an email matching the shopper email in the order data</li>

              </ul>
              <p>Associate shopper records with the new order according to the search results.</p>
              <dl>

                <dt style="font-weight:bold;padding-top:.25rem;">Neither found</dt>

                <dd style="padding-left:1.5rem;padding-bottom:.5rem;">Create a standard account and a contact using the order data. Assign the new
                  account to the new contact’s Account field. Associate both new records with
                  the new order.</dd>


                <dt style="font-weight:bold;padding-top:.25rem;">Both found</dt>

                <dd style="padding-left:1.5rem;padding-bottom:.5rem;">Associate the account that has the matching contact record with the new
                  order.</dd>


                <dt style="font-weight:bold;padding-top:.25rem;">Account found; contact not found</dt>

                <dd style="padding-left:1.5rem;padding-bottom:.5rem;">Create a contact using the order data. Don’t associate the contact’s Account
                  field with the existing account. Associate the existing account and new
                  contact with the new order.</dd>


                <dt style="font-weight:bold;padding-top:.25rem;">Account not found; contact found</dt>

                <dd style="padding-left:1.5rem;padding-bottom:.5rem;">Create an account using the order data. Don’t associate the existing
                  contact’s Account field with the new account. Associate the new account and
                  existing contact with the new order.</dd>

              </dl>
            </td>

            <td data-label="Individual Shopper When Using Person Accounts" class="slds-cell-wrap" style="vertical-align:top;" headers="d5674e86 ">
              <p>If <strong class="uicontrol">B2C Integration Data Matching Rules</strong> is selected, use
                the org’s matching rules to identify a person account that matches the shopper
                information in the order data. If not selected, search for a person account record
                with a person email matching the shopper email in the order data.</p>
              <dl>

                <dt style="font-weight:bold;padding-top:.25rem;">Person account not found</dt>

                <dd style="padding-left:1.5rem;padding-bottom:.5rem;">Create a person account using the order data. An associated contact is
                  created. Associate the new person account with the new order.</dd>


                <dt style="font-weight:bold;padding-top:.25rem;">Person account found</dt>

                <dd style="padding-left:1.5rem;padding-bottom:.5rem;">Associate the matching person account with the new order.</dd>

              </dl>
            </td>

          </tr>
        </tbody>
      </table>

The integration sets only the Account field on a contact when it creates the account and contact at the same time. If one of the records exists, setting that value without validation can break the integration because contacts can’t have duplicate Accounts and Business Phones. However, you can set the Account field on a contact manually or via customization as long as you check for a duplicate.

Changing the Person Accounts for Shoppers setting doesn’t affect existing shopper records. However, it can affect whether the integration recognizes existing individual shopper records that were stored when the setting was different. Before you change this setting on a production org, review these considerations:

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png)

Note If the B2C Integration Data Matching Rules setting is on, this behavior can vary depending on your org’s matching rules.

 
| Person accounts for Shoppers | Result |
| --- | --- |
| On | The integration recognizes an individual shopper stored as a person account because it searches for an account by Name and a contact by Email. Thus, it recognizes a person account with a matching Name and a contact with a matching Email, normally the contact associated with the person account. |
| Off | The integration doesn’t recognize an individual shopper stored as a standard account and contact because it searches only for a person account by Person Name. A standard account doesn’t have a Person Name, and the integration doesn’t search for a contact in this case. |
|   |   |

Changing this setting can take up to an hour to take effect.