how I can save the data of a list of purchased items ?

I want to save the list of items purchased from a store and displayed in another list
here is the store script :
using UnityEngine;
using UnityEngine.UI;
using System.Collections.Generic;

[System.Serializable]

public class Shop : MonoBehaviour
{
#region Singlton:Shop

public static Shop Instance;

void Awake()
{
    if (Instance == null)
    	Instance = this;
    //else
    //	Destroy (gameObject);
}

#endregion

[System.Serializable] public class ShopItem
{
	public Sprite Image;
	public int Price;
	
	public bool IsPurchased = false;

    public static void SetBool(string IsPurchased, bool state)
    {
        PlayerPrefs.SetInt(IsPurchased, state ? 1 : 0);
    }

	 public static bool GetBool(string IsPurchased)
    {
        int value = PlayerPrefs.GetInt(IsPurchased);

        if (value == 1)
        {
            return true;
        }

        else
        {
            return false;
        }
    }
}

public List<ShopItem> ShopItemsList;
public List<ShopItem> ShopItemsListIcon;
[SerializeField] Animator NoCoinsAnim;


[SerializeField] GameObject ItemTemplate;
GameObject g;
[SerializeField] Transform ShopScrollView;

Button buyBtn;

void Start ()
{
	int len = ShopItemsList.Count;
	for (int i = 0; i < len; i++) {
		g = Instantiate (ItemTemplate, ShopScrollView);
		g.transform.GetChild (0).GetComponent <Image> ().sprite = ShopItemsListIcon *.Image;*

_ g.transform.GetChild (1).GetChild (0).GetComponent ().text = ShopItemsList .Price.ToString ();_
* buyBtn = g.transform.GetChild (2).GetComponent ();*
_ if (ShopItemsList .IsPurchased) {
* DisableBuyButton ();
}
buyBtn.AddEventListener (i, OnShopItemBtnClicked);
}
}
void OnShopItemBtnClicked (int itemIndex)
{
if (Game.Instance.HasEnoughCoins (ShopItemsList [itemIndex].Price)) {
Game.Instance.UseCoins (ShopItemsList [itemIndex].Price);
//purchase Item*
* ShopItemsList [itemIndex].IsPurchased = true;
//disable the button*
* buyBtn = ShopScrollView.GetChild (itemIndex).GetChild (2).GetComponent ();
DisableBuyButton ();
//change UI text: coins*
* Game.Instance.UpdateAllCoinsUIText ();
//add avatar*
* Profile.Instance.AddAvatar (ShopItemsList [itemIndex].Image);
} else {
NoCoinsAnim.SetTrigger (“NoCoins”);
Debug.Log (“You don’t have enough coins!!”);
}
}
void DisableBuyButton ()
{
buyBtn.interactable = false;
buyBtn.transform.GetChild (0).GetComponent ().text = “PURCHASED”;
}*_

}
Here is the profile script ( where the purchased items is displayed ) :
using UnityEngine;
using UnityEngine.UI;
using System.Collections.Generic;
public class Profile : MonoBehaviour
{
* #region Singlton:Profile*
* public static Profile Instance;*
* void Awake ()*
* {*
* if (Instance == null)*
* Instance = this;*
* else*
* Destroy (gameObject);*
* }*
* #endregion*
* public class Avatar*
* {*
* public Sprite Image;*
* }*
* public List AvatarsList;*
* [SerializeField] GameObject AvatarUITemplate;*
* [SerializeField] Transform AvatarsScrollView;*
* GameObject g;*
* int newSelectedIndex, previousSelectedIndex;*
* [SerializeField] Color ActiveAvatarColor;*
* [SerializeField] Color DefaultAvatarColor;*
* [SerializeField] Image CurrentAvatar;*

* void Start ()*
* {*
* GetAvailableAvatars ();*
* newSelectedIndex = previousSelectedIndex = 0;*
* }*
* void GetAvailableAvatars ()*
* {*
* for (int i = 0; i < Shop.Instance.ShopItemsList.Count; i++) {*
_ if (Shop.Instance.ShopItemsList .IsPurchased) {
* //add all purchased avatars to AvatarsList*
AddAvatar (Shop.Instance.ShopItemsList .Image);
* }
}
SelectAvatar (newSelectedIndex);
}
public void AddAvatar (Sprite img)
{
if (AvatarsList == null)
AvatarsList = new List ();*_

* Avatar av = new Avatar (){ Image = img };*
* //add av to AvatarsList*
* AvatarsList.Add (av);*
* //add avatar in the UI scroll view*
* g = Instantiate (AvatarUITemplate, AvatarsScrollView);*
* g.transform.GetChild (0).GetComponent ().sprite = av.Image;*
* //add click event*
* g.transform.GetComponent ().AddEventListener (AvatarsList.Count - 1, OnAvatarClick);*
* }*
* void OnAvatarClick (int AvatarIndex)*
* {*
* SelectAvatar (AvatarIndex);*
* }*
* void SelectAvatar (int AvatarIndex)*
* {*
* previousSelectedIndex = newSelectedIndex;*
* newSelectedIndex = AvatarIndex;*
* AvatarsScrollView.GetChild (previousSelectedIndex).GetComponent ().color = DefaultAvatarColor;*
* AvatarsScrollView.GetChild (newSelectedIndex).GetComponent ().color = ActiveAvatarColor;*
* //Change Avatar*
* CurrentAvatar.sprite = AvatarsList [newSelectedIndex].Image;*
* }*
}

check this tutorial Save & Load

playerprefs

i see already this tuto but it’s not the same case ( i’m a beginner )