B2C Shop Connector 1.0 Example - Mule 4
This example for Anypoint Connector for Salesforce Commerce Cloud B2C Shop APIs (B2C Shop Connector) example shows you how to:
-
Use the Authorize Customer operation to get a Shopper JWT token.
-
Use the Get Customer operation to view the customer’s details.
This example uses the B2C Shop Connector Customer Auth Connection Provider configuration.
Authorize Customer Flow
In this flow, you configure the HTTP Listener source and Authorize Customer operation to retrieve the Shopper JWT token from Postman:
-
In Studio, select File > New > Mule Project.
-
Enter a name for your Mule project and click Finish.
-
In the Mule Palette view, select HTTP > Listener.
-
Drag Listener to the Studio canvas.
-
On the Listener configuration screen, optionally change the value of the Display Name field.
-
Specify
/customer/shopper-customers/{version}/organizations/{organizationId}/customers/actions/login
for the Path field: -
Click the plus sign (+) next to the Connector configuration field to configure a global element that can be used by all instances of HTTP Listener in the app.
-
On the General tab, specify
8081
for Port. -
In the Mule Palette view, select the Authorize Customer operation and drag it on to the flow:
-
Obtain the required parameters for the Authorize Customer operation from Postman:
-
Select the Commerce Cloud B2C Shop Connector, and then, in the Mule Palette view, select Commerce Cloud B2C Shop Connector Shopper Token Config and configure it with the required values:
-
After entering all the required parameters, save the Mule project.
-
Run the project as a Mule application by right-clicking the project name in Package Explorer and selecting Run As > Mule Application.
-
Navigate to
http://localhost:8081/customer/shopper-customers/{version}/organizations/{organizationId}/customers/actions/login
. -
Open Postman and check the response, noting the JWT Token in the response header.
You can use this JWT Token as the authorization header parameter in Postman to perform operations.
XML for the Authorize Customer Flow
Click the Configuration XML tab at the base of the canvas and copy and paste the following XML code into the Studio XML editor to quickly load the flow for this example into your Mule app:
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:commerce-cloud-shopper-api="http://www.mulesoft.org/schema/mule/commerce-cloud-shopper-api"
xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns:commerce-cloud-shopperapi="http://www.mulesoft.org/schema/mule/commerce-cloud-shopperapi"
xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/commerce-cloud-shopperapi http://www.mulesoft.org/schema/mule/commerce-cloud-shopperapi/current/mule-commerce-cloud-shopperapi.xsd
http://www.mulesoft.org/schema/mule/commerce-cloud-shopper-api http://www.mulesoft.org/schema/mule/commerce-cloud-shopper-api/current/mule-commerce-cloud-shopper-api.xsd">
<flow name="guest-user-login-demoFlow">
<http:listener
doc:name="8081/customer/shopper-customers/{version}/organizations/{organizationId}/customers/actions/login"
config-ref="HTTP_Listener_config"
path="/customer/shopper-customers/{version}/organizations/{organizationId}/customers/actions/login"
allowedMethods="POST">
<http:response>
<http:headers><![CDATA[#[output application/java
---
{
"Authorization" : message.attributes.headers.Authorization
}]]]></http:headers>
</http:response>
<http:error-response statusCode="#[error.errorMessage.attributes.statusCode]">
<http:body><![CDATA[#[output text/json --- error.errorMessage.payload]]]></http:body>
</http:error-response>
</http:listener>
<commerce-cloud-shopper-api:create-customer-shopper-customers-organizations-customers-actions-login-by-version-organization-id
doc:name="Authorize Customer"
version="#[attributes.uriParams.version]"
organizationId="#[attributes.uriParams.organizationId]" clientId="#[attributes.queryParams.clientId]"
siteId="#[attributes.queryParams.siteId]" authorization="#[attributes.headers.Authorization]" config-ref="Commerce_Cloud_B2C_Shop_Connector_Shopper_token"/>
</flow>
</mule>
Get Customer Flow
In this flow, you configure the HTTP Listener source and Get Customer operation to retrieve and view the customer’s details:
-
In Studio, select File > New > Mule Project.
-
Enter a name for your Mule project and click Finish.
-
In the Mule Palette view, select HTTP > Listener.
-
Drag Listener to the Studio canvas.
-
On the Listener configuration screen, optionally change the value of the Display Name field.
-
Specify
/customer/shopper-customers/{version}/organizations/{organizationId}/customers/{customerId}
for the Path field: -
Click the plus sign (+) next to the Connector configuration field to configure a global element that can be used by all instances of HTTP Listener in the app.
-
On the General tab, specify
8081
for Port. -
In the Mule Palette view, select the Get Customer operation and drag it onto the flow:
-
Obtain the required parameters for the Get Customer operation from Postman:
-
Select the Commerce Cloud B2C Shop Connector Config from the Commerce Cloud B2C Shop Connector and configure it with the required values, or add a new configuration by clicking the green plus (+) sign:
The authentication token from Authorize Customer shown here is used as the Authorization parameter value.
-
After entering all the required parameters, save the Mule project.
-
Run the project as a Mule application by right-clicking the project name in Package Explorer and selecting Run As > Mule Application.
-
Navigate to
http://localhost:8081/customer/shopper-customers/{version}/organizations/{organizationId}/customers/{customerId}
. -
Open Postman, and provide the JWT Token (
xref:Authorize Customer<Shopper JWT Token>
) from the header. -
Check the response to see the customer details.
XML for the Get Customer Flow
Click the Configuration XML tab at the base of the canvas and copy and paste the following XML code into the Studio XML editor to quickly load the flow for this example into your Mule app:
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:commerce-cloud-shopper-api="http://www.mulesoft.org/schema/mule/commerce-cloud-shopper-api"
xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/commerce-cloud-shopper-api http://www.mulesoft.org/schema/mule/commerce-cloud-shopper-api/current/mule-commerce-cloud-shopper-api.xsd">
<flow name="get-customerFlow">
<http:listener
doc:name="8081/customer/shopper-customers/{version}/organizations/{organizationId}/customers/{customerId}"
config-ref="HTTP_Listener_config"
path="/customer/shopper-customers/{version}/organizations/{organizationId}/customers/{customerId}"
allowedMethods="GET">
<http:error-response statusCode="#[error.errorMessage.attributes.statusCode]">
<http:body><![CDATA[#[output text/json --- error.errorMessage.payload]]]></http:body>
</http:error-response>
</http:listener>
<commerce-cloud-shopper-api:get-customer-shopper-customers-organizations-customers-by-version-organization-id-customer-id
doc:name="Get Customer"
config-ref="Commerce_Cloud_Shopper_Connector_Customer_auth_config"
version="#[attributes.uriParams.version]" organizationId="#[attributes.uriParams.organizationId]"
customerId="#[attributes.uriParams.customerId]" siteId="#[attributes.queryParams.siteId]" />
</flow>
</mule>