Salesforce Project

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 19

Project - Order Management

About the Project

You are working for a company called E-Zone as a Salesforce Developer and you have been assigned to a project where the
task is to develop a new digital experience for their customers. The end result should be a digital experience built on top of the
Salesforce Platform where users can perform the below tasks.

Functionalities must be available after the completion of the project

END-USER FUNCTIONALITIES

1. User must be able to search the product by name and category 


2. The user must be able to add the product to the cart and if the user logout and comes back another day user must be
able to see the existing product
3. End-User must be able to place, return and cancel an order
4. The user must be able to add/edit/delete the address book
5. The user must be able to log a case for any issues and check the status
6. Use must be able to track the order status without log-in into the system
7. The user must be able to chat with the support agent
8. User must be able to see FAQs without login
9. Once the order is created we need to send the order to an external system.

INTERNAL USER FUNCTIONALITY

1. The user Must be able to see the cases and work on those
2. User Must be able to see the knowledge article and then attach those articles to that case
3. Can Work on Orders and Edit those order records
4. User Must be able to see the Account Request record and approve/reject them
NOTE: - 

1. There might be some requirements that will not be mentioned in the document and you also need to implement that if
you implement anything which is not outlined in the requirement then consult with the client/ senior and then implement
that part.
2. Before going with any custom development try to find the solution which can be done using automation tools like
Process Builder, Lightning Flow, Workflow Rule, or Approval process

Phase 1
Module 1 - Data Model for the Project

This module will focus on the Data Model of the Project and involves a detailed description of all the entities involved in the
project.

1. Account - Standard Salesforce Component which will be used as the Parent of the End Customer ( Community User )
2. Contact - Standard Salesforce Component which will be used to create the Community User in Salesforce.
3. Order - Custom Salesforce Object to be used to store the order information. We can not use Standard Order Object as
it requires to have the contract in order to create an Order record.
4. Order Line Item - Custom Object which is a child of Order Object and will store the information about the Items to be
included in order.
5. Product - Standard Salesforce Object
6. Account Request - Custom Salesforce Object which will be used to request a new account for the community.
7. Address Book - Custom Salesforce Object to store the address information
8. Payments - Custom Salesforce Object to store the information about the payment of order records.
9. Coupons - Custom Objects to store the coupon and 
10. Product Offers - Junction object between product and Coupons to indicate which product is eligible for the offer
11. Product Images - A Child object to the Product that will store the Images related to the Product.
12. Cart - The custom object which will store the information about the current cart of the user
13. Cart Items - The child of the cart object is associated with the Master-Detail relationship and will contain all the
information about the items which the user has added to the cart.
14. Categories - Custom objects hold the name of the category with which the product will be associated.
15. Product Categories - Custom salesforce object which will be the child of category and product to link product and
category.

THE BELOW OBJECTS ARE NOT INCLUDED IN THE FIRST PHASE OF THE PRODUCT LAUNCH

1. Wishlist - The custom object to store the wishlist created by the user
2. Wishlist Items - The child of the Wishlist object which will contain the information about the product added to the wish
list
3. Related Products
4. Product Ratings

1.1 PRODUCT IMAGES CUSTOM FIELDS


Sr. No Field Label Field API DataType Parent Object Options HelpText Length Note

1 Product Product__c Lookup Product NA The related pr NA NA


oduct
The URL for
2 URL URL__c Url NA NA the image Na NA

The type of
URL, Static image which
3 Image Type Type__c PickList NA Resource, will determine Na NA
None what to display

Required if
Static Static
4 Resource Resource__c Text NA NA Resource is Na Na
Selected in
Image Type

Contains the
fully Qualified
Path of the
5 Resource URL ResourceURL Text NA NA image to be NA NA
__c shown on the
product detail
page

If Selected this
image will be
6 Hero Image HeroImage__c CheckBox NA NA displayed on NA NA
the Product
List Page

7
8
9

1.2 PAYMENT CUSTOM FIELDS

Sr. No Field Label Field API DataType Parent Object Options HelpText Length Note

The related
1 Customer Customer__C Lookup Contact NA customer who
is making the
payment

The related
2 Order Order__c M-D Order__c NA order for which
the payment is
being created

Created,
Failed,
3 Status Status__C Picklist NA Success, Hold,
Review,
Declined
The Total
4 Amount Amount__c Currency(10,0) NA TNA amount of the 10
payment

5 Transaction Date__c Date NA NA The date of the


Date transaction ID

The Unique Id
6 Transaction Id TransactionId_ text NA NA of the 255
_c transaction Id

1.3 ACCOUNT REQUEST CUSTOM FIELD


Sr. No Field Label Field API DataType Options HelpText Parent Object Length Note

The Name of
1 Name Name Text the Account NA 80 NA

Open, In
Process, The status of
2 Status Statuc__c Picklist Approved, the Account NA NA
Declined, Hold

Phone of the
3 Phone Phone__c Phone NA Account NA NA
Owner
The Email for
4 Email Email__C Email NA the customer

5 Billing Street BillingStreet__ Text NA Address of the 255


c Customer

6 Billing City BillingCity__ Text 80

7 Billing State BillingState__c Text 40

Billing Postal BillingPostalC


8 Code ode__C Text 6

https://datahub
9 Billing Country BillingCountry PickList All available .io/core/countr
countries y-list

10 Shipping ShippingStreet Address of the


Street __c Customer

11 Shipping City ShippingCity_


_
ShippingState
12 Shipping State __c

Shipping ShippingPosta
13 Postal Code lCode__C
Shipping ShippingCount All available
14 Country ry__c PickList countries
Description__
15 Description C TextArex Long NA 500

The date of
16 Date of Birth DOB__c Date NA birth of the NA NA NA
customer

Primary The First


17 Contact First FirstName__c Text NA Name of the NA 80
Name Primary
Contact
The Last
Primary Name of the
18 Contact Last LastName__C Text NA Primary NA 80 NA
Name Contact
The email of
19 Primary PrimaryEmail_ Email NA the promary NA NA
Contact Email _c Contact
The title of the
20 Primary PrimaryTitle__ Text Na primary NA 255 NA
Contact Title c Contact

The phone no
21 Primary PrimaryPhone Phone NA of the primary NA NA NA
Contact Phone Contact

1.4 COUPONS CUSTOM FIELDS


Sr. No Field Label Field API DataType Options Help Text Parent Object Length Note

Flat, The type of


1 Type Type__c PickList Percentage discount NA NA

The total no of
2 Total Quantity Quantity__c Number(10,0) NA discount NA 10
coupons
available
Total no of
3 Remaining RemainingQu Number(10,0) NA discount NA 10
Quantity antity__c coupons
availble

Indicates when
4 Expiry Date ExpiryDate__c Date NA the coupon will NA NA
be expired

Formula : Indicates if the


5 Expired Expired__c ExpiryDate < NA coupon is
Today expired or not

Flat_Discount_ Required if
6 Flat Discount _C Currency(10,2) type is Flat
Required if
7 % Discount Discount__c Percentage(3) type if
Percentage

1.5 ADDRESS BOOK CUSTOM FIELDS

Sr.N Field label Field API DataType HelpText Options Length Note
Street of the
1 Street Steet__C Text address NA 255 NA

2 City City__c Text The customer 80


City

3 State__c State__c Text Customer Stat 10

The Country https://datahub


4 Country Country__c Picklist which All available .io/core/countr
customer countries y-list
belongs to
PostalCode__ The Area
5 Postal Code c Number Postal Code 6

The Landmark
6 Land Mark LandMark__c Text for Location 255
detetection

The parent
customer who
7 Customer User__c Lookup (User) is creating the NA NA NA
address

1.6 ORDER

SR. Field Label Field API DataType Help Text Options Length
N
Parent Account
1 Account Name AccountName__c Lookup to Account related to NA
customer

The customer
record under
2 Customer Customer__c Lookup to Contact which order is NA
created

Open, In
Process,
Dispatched,
Shipped, Out
3 Status Status__c PickList Status of the for Delivery,
Order Record Delivered,
Closed, Return
Requested,
Returned,
Cancelled

Shipping
4 Shipping Address ShippingAddress__c TextArea Long Address of the 500
Order

5 Billing Address BillingAddress__c TextAres Long Billing Address 500


of the Order

The order
6 Total Items TotalItems__c Rollup: SUM of All Order Item Quantity Quantity

7 Total Total__c Rollup: SUM of All Order Item Total Order Amount

Status of the
8 Payment Status PaymentStatus__c PAID, COD, Partially Paid, EMI Payment for
the order
The amount
which has
9 Paid Amount AmountPaid__c Rollup: SUM of All Payment Record Amount been paid for
order record.

The Unique
10 Order Number Name ( Standard Name Field) Auto Number: Format : (O-000000) Identifer for the
order record

11 Order Date OrderDate__c DateTime Order date

The date
which the
12 Delivered Date DeliverDate__C Date order has
been delivered

The expected
13 Expected Delivery Date ExpectedDate__c Date delivery date
of the order
COD, Net
14 Payment Method PaymentMethod__c Picklist Banking, CC,
Debit Card,
EMI, Wallet

1.7 ORDER LINE ITEM

Sr. No Field Field API DataType Parent Object Help text length
Label Name
1 Order Order__c Master-Detail Order The related order NA
The item to be included
& This will be made
2 Product Product__c Lookup Product required from the Validation NA
Rule
Quantity__c( The total no of items to be
3 Quantity Required) Number(6,2) NA included in the order 8

Formula Currency ( 16, 2 ) (


4 Total Total__c Quantity * Unit Price ) NA The total amount for the item 8

5 List Price ListPrice__c Currency(6,2) NA The List price of the item 9


UnitPrice__c (
6 Unit Price required ) Currency(6,2) NA The actual price of the item. 9

1.8 PRODUCT - CUSTOM FIELDS


Sr. No Field Label Field API DataType Help Text Length

1 Inventory TotalQuantity_ Number(8) The total quantity for the product 10


_c ( required )

RemainingQu
2 Remaining antity__c ( Number(8)
Quantity required )
If true the product is available for the OFF
3 Offer Available Discount__c Checkbox SALE NA

Rollup Note:- Do not


Summary ( include this
4 Rating Rating__c AVG: Rating of The avg rating of the product NA field as part of
ALL Product initial
Rating ) development

Rollup Note:- Do not


Summary ( include this
5 Total Rating TotalRating__c SUM: Rating of All Ratings related to the product NA field as part of
ALL Product initial
Rating ) development

1.9 PRODUCT OFFERS CUSTOM FIELDS

Sr. No Field Label Field API DataType Parent Object Options Length Note HelpText

This will be This will be


made required made required
1 Product Product__C Lookup Product NA NA from the from the
Validation Validation
Rule Rule

2 Offer Discount__c M-D Coupon__c NA NA NA


3 Sequence Sequence__c Number(3,0) NA NA NA NA

1.10 CATEGORY CUSTOM FIELDS

Sr. No Field Label Field API DataType Parent Object Options Length Note HelpText

This is the
1 Name Name Text NA NA 80 standard field
provided by
salesforce
The sequence
2 Sequence Sequence__c Number(4,0) NA NA 4 for the
category to be
displayed

The parent
Parent ParentCategor category if this
3 Category y__c Lookup Category__c Na NA NA is the child
category

1.11 PRODUCT CATEGORY CUSTOM FIELDS

Sr. No Field Label Field API DataType Parent Object Options Length Note HelpText

This will be
made required The product for
1 Product Product__c Lookup Product NA NA from the the category
Validation
Rule

2 Category Category__c Master-Detail Category__c NA NA NA The category


for the product

The sequence
for the
3 Sequence Sequence__c Number(3,0) NA NA 3 NA category to be
displayed

1.12 CART CUSTOM FIELDS


Sr. No Field Label Field API DataType Parent Object Options Length Note HelpText

The auto-
1 Cart # Name AutoNumber NA NA 80 Standard generated Id
Name Field for the cart
record

The actual Id
for the cart will
be the unique
Id for all the
2 Cart Id CartId__c Text NA NA 255 carts. Note
while creating
the cart
generates a
random string

The status of
the cart. By
default, all
Open, Closed, carts will be
3 Status Status__c Picklist NA Ordered NA NA open and only
one cart can
be open for a
customer at a
time

Rollup
Summary: The total
4 Total Quantity Quantity__c SUM of All NA NA 3 NA Quantity
Quantity for the related to this
related cart cart record
Item record

Rollup
Summary:
SUM of All
5 Total Amount Amount__c Total Amount
for the related
cart Item
record

This will be The customer


made required record who
6 Customer Customer__c Lookup Contact NA NA from the have created
Validation the cart
Rule

The value for The account of


this field be the customer
7 Account Account__C Account NA NA auto populated who has
from the created the
automation cart record
tool

8
9
10

1.13 CART ITEM CUSTOM FIELDS


Sr. No Field Label Field API DataType Parent Object Options Length Note HelpText

The auto-
Standard generated Id
1 Item # Name AutoNumber NA NA 80 Name Field for the cart
item record
The parent cart
2 Cart Id Cart__c Master-Detail Cart__c NA NA NA under which
the item is
added

This will be The product


made required record which is
3 Product Product__c Lookup Product__c NA NA from the added as item
Validation under the cart
Rule record

The total no of
4 Quantity Quantity__c( Number(4,0) NA NA 4 NA items to be
Required ) included into
the cart
The Amount
5 Amount Amount__c ( Currency(4,0) NA NA 4 NA for the single
Required ) item record

Formula: Total amount


6 Total Amount TotalAmount__ Currency(Qua NA NA NA NA for the item
c ntity* Amount) record

This field will The original


be auto amount of the
7 List Price ListPrice__c Currency(4,0) NA NA 4 populated from product before
the Automation any discount
tool

The Selling
8 Unit Price UnitPrice__c ( Currency(4,0) NA NA 4 NA Price of the
Required ) Product
9
10

Module 2 - Develop the Component to be used inside Salesforce


Once you have completed the Data Model for the project, now you need to start the development of the component inside
salesforce.

2.1 - OBJECT OWD SETUP

Sr. No Object Name OWD


1 Account Private
2 Contact Controlled By Parent
3 Order Private
4 Order line Controlled By Parent
5 Product Public Read Only
6 Account Request Public Read Only
7 Address Book Private
8 Payment Private
9 Coupons Public Read Only
10 Product Offers Controlled By Parent
11 Product Images Controlled By Parent
12 Categories Public Read Only
13 Product Categories Controlled By Parent
14 Cart Private

2.2 - FUNCTIONALITY RELATED TO ACCOUNT REQUEST OBJECT

Check the below points and apply your knowledge to achieve the below functionality
1. Once15theCart Item record is created
Account Controlled
into theBySystem
Parent a new Email should be sent to the customer stating that the Account
is under review and we will get back to you within 72 hours.
2. In Addition to the above point, an approval process should also be triggered automatically and this approval process will
automatically be executed and send the email to VP
3. Once VP approved the account then set the status as approved on the Account Request record Create an Account
record with the same information and also create a contact record under the same Account record.
4. Once the Account record is created then Send an Email to the Customer stating that Your account has been approved
and you will be getting the Credentials in a Separate Email within 24 Hours.
5. If VP Rejects the account a new email should be sent to the customer stating that we can not process the account this
time.
6. In case if VP approves the account after the Account and Contact record has been created. Now, create a customer
community user and then send the email to the customer with Login Details.

2.3 - VALIDATION RULE

1. Validation Rule on Coupons Object where Expiry Date should always be greater than today while creating the record.
2. Resource URL and static resource must be populated if the Image Type is Selected as Static Resource on Product
Image Record.
3. Static Resource, Resource URL, and URL must be left blank if the Image Type is selected as None on the product
Image record.
4. While Creating/updating the Order Record Customer Must be required to select
5. While Creating/updating the Order Line Item it is required to have the Product Record selected
6. While Creating/updating the Order Line Item the Quality field is required
7. While Creating/updating the Address Book record Check if the User is blank then Throw Error 
8. While Creating/updating the Cart Item the Product & Quantity Field Must be Required
9. While Creating/updating the Product Offer, Check if the Product Field is Blank then show the Error.
10. While Creating/updating the Product Category, Check if the Product Field is Blank then show the Error.

2.4 FUNCTIONALITY RELATED TO ORDER/CART LINE ITEM

1. When an Order Line Item is created then It should automatically populate the ListPrice__c price value with the value
which is there in the related product List price value. Hint: - Please use any automation tool like Process Builder or Flow
( Flow is recommended )
2. When a Cart Item is created then It should automatically populate the ListPrice__c price value with the value which is
there in the related product List price value. Hint: - Please use any automation tool like Process Builder or Flow ( Flow is
recommended )

2.5 - FUNCTIONALITY RELATED TO ORDER

1. Send an email alert to the customer once the order is created in the system. The email must contain the information
about
a. Order No
b. Order Amount
c. Discount if Any
d. Shipping Address
e. Estimated Delivery Date
f. Link to Order from where they can see more details
2. Sent an email to the customer once the business has processed the order with the same details as Step #1 and also
include Payment status in this email.
3. Sent an email to the customer once the business has shipped the order with the same details as Step #1
4. Sent an email to the customer once the order is out for delivery with the same details as Step #1
5. Sent an email to the customer once the order is delivered with a Survey link.
6. Sent an email to the customer if the order is canceled with the proper reason.
7. Sent the payment reminder to the customer if the order has been created and the customer has not selected COD as
the Payment Method. This email should include
a. Order No
b. Order Amount
c. Link To Order ( This link should take the user to the community site which you will implement later in the Project )
8. Once the Order is created into the System then All the related Product Remaining Quantities must be updated so that
the customer can see updated information on product detail and the product list page.
9. Once the Order is Cancelled then also the related product's Remaining Quantity must be updated

2.6 Functionality Related to Product Offers


● Whenever any new Offer is created in the system for Any Product. Send the Email Alert to All the Customers (
Community Users ) with the Offer and Product Details. Include Product Images in the Email and a Button named
“Avail Offer”. If the user clicks on the Button then the User should be redirected to the Product Detail page on your
Community site ( The redirect part will be implemented later everything else should be there )
● Hint: - Need to Develop an Apex Trigger Here and Develop the Custom Email Template

Module 3 - Implement Salesforce Community ( Experience Cloud )

1. Enable Lighting Experience


2. Create a Lightning Experience and Name it “E-Zone”
3. Now, Clone an Existing Profile “Customer Community Plus Login User” and Name it “E-Zone Profile”
4. Give access to all the objects to this profile that are mentioned in the project and for OWD check the above table.
5. Provide field-level access for all the objects
6. Develop Product Categories Component
a. This component will be responsible to display all the product categories.
b. The Parent Category should be displayed and once clicking on the parent category it should show all the related
categories if any and also sort the product list page based on the selected category.
c. Clicking on any category should display the product in a related category only
7. Develop Home Page
a. This is the landing page where the customer will be logged in for the first time
b. This page will contain the below information
i. Cart Details is any open cart
ii. Details of Any open Order
1. Order No
2. Order Amount
3. Shipping Address
4. Payment Status
iii. Recent Orders in tabular form
iv. Link to Product List Page
8. Develop a Product List Page
a. This is the product list page where all the products will be displayed and for all the products the hero image
should be displayed. Check the below list of what all need to have for every product
i. Each row will display max 3 products
ii. For Each product's display
1. Hero Image
2. Name
3. Price
4. Short Description
5. In Stock or Out of Stock
6. Quantity along with -+ button
7. Add To Cart Button
iii. When clicking on any product image or name it should take to product details where it will show 
1. Image carousel with all the images related to that product
2. Name
3. Price
4. In Stock or Out of Stock
5. Description
6. Quantity along with -+ button
7. Add To Cart Button
8. Related products
9. Develop Add To Cart Functionality
a. When clicking on Add To Cart button, first it will check if the product is available ( In Stock ), and if yes then it will
Add the Product to the Cart. If Necessary Create a Custom Object to store the Cart and Cart Details.
b. Show a Success toast if added
c. Show Error toast if any error happens
d. Show error toast if the product is out of stock
10. Develop Product Detail Page - When clicking on Any product image or name it should take to product details where it
will show
a. Image carousel with all the images related to that product
b. Name
c. Price
d. In Stock or Out of Stock
e. Description
f. Quantity along with -+ button
g. Add To Cart Button
h. Related products
11. Develop Cart Details Page - This component will display all the details about the cart. All the items in the cart will be
displayed in a row with the below information
a. Price
b. Quantity
c. Short Description
d. Quantity increase decrease - + button
e. delete button
f. In the end, it will display the total of the cart items 
g. It will also show a link to apply the coupon and if users click on Apply Coupon it should open a text field where
users can enter the coupon no. For, the next steps check the next point
12. Develop Apply Coupon Component: - 
a. It should check if the coupon entered by the user is valid or not. 
b. If a coupon is valid check the type of Coupon
c. Depending upon the type apply the coupon on the appropriate product and show the message next to the product
d. Also, show the updated amount of the cart with a message that the coupon has been applied.
e. One customer can only apply one coupon in a cart.
13. Develop Address Component - This component will display all the addresses related to users if any otherwise will ask
for the address information from the user both shipping and billing addresses.
a. The Order should be placed at the selected shipping and billing address
14. Develop Payment Page
a. By default, All the Orders should be COD for now
15. Develop Order Detail Page - This is the final destination of the Project which will show all the details of the order
including
a. Order No
b. Estimated Delivery Date
c. Total Amount
d. Tax if Any?
e. Shipping and Billing Address side by side
f. All the items are in Tabular form
g. Cancel Order & Re-Order buttons on both the bottom and top 
16. Develop Cancel order Page - When the user clicks on the Cancel Order button and then navigates to this page
a. Show a message that all the items will be canceled and the show continue and the cancel button
b. If users click on cancel then go to the order details page
c. If the user clicks on Continue then verify if the Order is In process or below stage then Cancel otherwise show the
error message that the Order can not be canceled contact to E-Zone.

Module 4 - Integration Payment Gateway

Before we Integrate the Payment Gateway we need some custom objects 

1. Payment Authorization
2. Process Exception
3. Gateway Log
4. Refund
5. Invoice

Payment Authorization Custom Fields

In this module, we will integrate the payment gateway and then we will modify the Payment Component to use PayPal or
Credit Card as a Payment Method. You can also use Stripe/Paytm/PayPal depending on your location.

1. Account Setup
a. For PayPal use - https://www.paypal.com/in/welcome/signup/#/mobile_conf link to Signup 
b. For Stripe Use - https://dashboard.stripe.com/register
c. For Paytm use - https://developer.paytm.com/docs/v1/payment-gateway
2. Read the Payment Gateway API for Authentication and then Make the request from Postman, SOAPUI, Advanced Rest
Client, or any other Webservice testing Tool
3. Create a Metadata to Store the Client Id, Client Secret 
4. Check the possibility of using Named Credentials
5. Ready to Start? Check Next Steps

4.1 MODIFY PAYMENT COMPONENT

1. Now, as you are ready with the payment gateway it’s time to modify the Payment Page Component
2. The payment page shows all available payment options like 
a. Credit Card
b. Stripe
c. PayPal
d. Paytm
e. Cash On Delivery
3. Keep the Credit Card as Selected and ask for the Information about the Card. Note: - Do not save any card details in the
System ( Salesforce)
4. Whatever option is selected by the user, ask for the appropriate information
5. Now if the user clicks on proceed to payment then validate all the details by sending the details to API, If payment is a
success then navigate to Order Detail Page otherwise show an error message. “Something went wrong Please try after
some time”

Module 5 - Develop My Profile Component

In this phase, we will focus on the Profile component of the User. So when the user clicks on the My Profile link it should open
our custom page and this page will have the below information.

1. User Details - This will be the selected component by default and will display the basic user information like 
a. Name
b. Email
c. Phone
d. Address
2. My Account - If the user clicks on My Account then a New Component should be displayed where it will display all the
details of the account related to that user in read-only mode.
3. My Contact - If the user clicks on My Contact then a New Component should be displayed where it will display all the
details of the contact related to that user in read-only mode.
4. My Orders - When the user clicks on My Orders, then shows all the orders to the users and there must be pagination
implemented. This component should have a filter to filter the orders for the selected range of dates. Next to each order,
there should be 2 buttons
a. View Details which will take to order detail component
b. Reorder: - If the user clicks on the order then a new cart should be generated with all the items under that order
and take the user to the Cart Details Page
c. For Further information check Phase 6.
5. My Address - When the User clicks on My Address then it should Open all the addresses in the grid format. So two
addresses should be displayed in 1 row with Edit, Delete HyperLink. 
a. And there should be a button called add New Address which will add a new address to the system.
b. This New Address is a  new Component where users need to enter the details of the address.
6. My Carts :
a. When the user clicks on My carts then it should show all the carts related to users.
b. This will be a new Component that will be built on top of LWC

Module 6 - Develop Order List Component

In this module, you will need to develop the Order List component where you need to develop the order list component to
display All the orders related to the customer.

1. Orders must be displayed in tabular form


2. There must be pagination and each page should display 10 records
3. There should be filters to display the order record for a selected date range.

Module 7 - Integrate with External System

In this module, you will be sending the data to the External System to store the order data and from that database, our
business will do the order processing.
As a developer, we only need to raise a platform event and the rest will be taken care of by the external team

7.1 SETUP ORDER EVENT PLATFORM EVENT

1. Create a Platform Event and Name it “Order Event” with API Name OrderEvent__e
2. Create All required fields under the Platform Event. 
3. This platform event should carry the below information from Salesforce
a. Order No
b. AccountId
c. Account Name
d. Contact Id
e. Contact Name
f. Contact Email
g. Contact Phone
h. Total Amount
i. Total Quantity
j. Shipping Address
k. Billing Address 
l. Payment Status
m. Order Status
4. Once the platform event is ready. It’s time to publish the platform Event.
5. Once an order is created then send all the information using this platform event. Hint: - You need to create the Platform
Event.

7.2 SETUP ORDER UPDATE PLATFORM EVENT

1. Create a Platform Event and Name it “Order Update”


2. Create the required fields to send the data which are given below
a. Order #
b. Order Status
c. Order Amount

Module 8 - Implement Return Order Functionality


In this module, We will implement the Return Order functionality. And it will have the below functionality

1. The user must be able to return the order


2. The Return button should only display next to the order if the order is in the delivered state
3. If the User clicks on Return next to any order then it will ask for a reason. If the user has provided a valid reason then
cancel the order and Change the State to Return Requested. 
4. The user should get an email that we have got the request to return the order and it will share the Order No along with
the expected pickup date.
5. Once the order is returned then there should be automation behind the scene which will take all the Line Item's quantity
and update the Related product Remaining Quantity to change the Inventory.

Module 9 - Develop Account Request Component

In this module, you will be implementing the Account Request LWC Component. This component will display the input
parameters for all the information and once the user clicks on submit button then a new record for Account Request must be
created and the other functionality should take place behind the scene.

This component will include all the fields which you have created into the object and all fields must be required to be input from
the User.

Module 10 - Club Everything into a Single Digital Experience


10.1 MODIFY THE DIGITAL EXPERIENCE

1. Add Navigations to the Digital Experience


a. Home - The custom component that you have developed
b. Shop - Add Product List page Here
c. Offers - This is a dummy page where there will be an image saying Coming Soon
d. About - Add some sample text for about
i. Contact Us - Should open a new component that will ask for basic information and creates a case 
ii. Request Account - Uses the Account Request component to create an Account Request component
e. FAQ - Add some FAQ here later it will be replaced with the Knowledge Article

10.2 - MODIFY USER PROFILE AND USER SETTING PAGE

1. Open User Profile Page and Add My Profile Component There that you have developed
2. Open the User Setting page and add the My Profile Component There that you have developed

Module 11 - Setup Email to Case and Web to Case

1. Setup email to case so that customers can directly send the email for their issues or for any inquiry
2. Set up the web to case so that users can create the case from the website directly 

Module 12 - Enable Knowledge Articles and Create some knowledge Articles


Watch this video - https://www.youtube.com/watch?v=eCbRUDGO79w

Module 13 - Setup Omnichannel and add the omnichannel into the digital
experience

13.1 Check out this video on how to enable omnichannel - https://www.youtube.com/watch?v=MS58u13uAQI&t=35s4


13.2 Add the Omnichannel into Digital Experience so that customers can chat with Sales/Service Reps

Module 14 - Add the Knowledge article to a digital experience


Modify the FAQ tab and show all your knowledge articles there and these articles must be public. Check out the below video
for the same
https://www.youtube.com/watch?v=oKRFsKQCp8c&list=PLaGX-30v1lh0yjm8UbB-4smaykJzCsH2y&index=6

Module 15 - Go Live & Celebration


Phase 2 - 
Module 1 - Create necessary objects
1. Wishlist - The custom object to store the wishlist created by the user
2. Wishlist Items - The child of the Wishlist object which will contain the information about the product added to the wish
list
3. Related Products - The custom object which will contain information about the similar related products
4. Product Ratings - The custom object contains information about the product rating.

1.1 CREATE FIELDS FOR WISHLIST OBJECT

Sr. No Field Label Field API DataType Parent Object Options HelpText Length Note

The User who


1 User User__c Lookup User NA is creating the NA NA
Wishlist

This is
2 Name Name Text NA NA The name of 80 standard
the WishList  Name Field

If checked then
3 Public Public__c Checkbox NA NA the wishlist will NA NA
be publically
visible

1.2 CREATE FIELDS FOR WISHLIST ITEMS OBJECT


Sr. No Field Label Field API DataType Parent Object Options HelpText Length Note

The User who


1 User User__c Lookup User NA is creating the NA NA
Wishlist

AutoNumber : {ITEM- This is


2 Name Name {0000} NA NA The name of 80 standard
Starting Number: 1 the WishList  Name Field

The wishlist
3 WishList WishList__c Master-Details WishList__c NA under which NA NA
the items is
created

The product
4 Product Product__c Lookup  Product NA which is being NA NA
added as
Wishlist Item

1.3 CREATE FIELDS FOR RELATED PRODUCT OBJECTS

Sr. No Field Label Field API DataType Parent Object Options HelpText Length Note

1 Product Product__c Lookup Product NA The Parent NA NA


product

If checked, the
product will be
2 Show on Page Visible__c Checkbox NA NA visible on the
Product Detail
Page

1.4 CREATE FIELDS FOR PRODUCT RATING

Sr. No Field Label Field API DataType Parent Object Options HelpText Length Note

1 Product Product__c Lookup Product NA The Parent NA NA


product

The Rating
2 Comment Comment__c Text Area Rich NA NA Comment NA NA
entered by the
user

The * Rating
3 Rating Rating__c(Re Number(1) NA NA provided by NA NA
quired) the customer

The customer
4 User User__C Lookup User NA who has rated NA NA
the Product

Module 2 - Validation Rule Setup

2.1 While creating or updating the Wishlist Object User must be selected.


2.2 While Creating the Wishlist Item the User & Product must be selected.
2.3 While Creating the Related Product it is required to select the Product
2.4 While Creating the Product Rating, all the fields are required

Module 2 - Develop Related Product Component

Develop a Lighting Web Component that will sit inside the Product Detail Page and will display the related products if there are
any. If there is no related product then it will show “No Related Products”

In the related products tab, it should be showing the Short Description of the Product and The product Thumbnail along with
the Unit Price.

It should also be having the ability to add the product to the cart itself.

Here is the tab mockup for the Product detail page

Module 3 - Develop Rating Component

Develop a New Lightning Web Component which will display the Product Raring under the Product Detail Page. 
This component should display a rating like below.

Module 4 - Modify the Product List Component

Modify the Product List Component to display the Average rating next to each product. And rating should be displayed in the
form of *. You might need to develop the rating component separately.

You might also like