How to Save boolean properly on Playerprefs?

I want to make a shop system if I buy the items, the items will be saved on Playerprefs, no need to buy again when I restart or re-open the game, for that I already make it to setInt but I don’t know when I call getInt. I tried to call it in the start method with a new int index but it doesn’t work.
This my script

for store the itemsType

(System.Serializable)
public class m_ShopItem 
{
    public Sprite theIcon;
    public int price;
    public bool isBuyed;
}

Then I make it list

public List<m_ShopItem> ShopItemsList = new List<m_ShopItem>();
 (SerializeField) GameObject ShopPanel;
    (SerializeField) Transform theContent;
    GameObject g;
    Button buyBtn;
    public GameObject itemTemplate;

    private void Start()
    {

        for (int i = 0; i < ShopItemsList.Count; i++)
        {

            g = Instantiate(itemTemplate, theContent);
            g.transform.GetChild(0).GetComponent<Image>().sprite = ShopItemsList(i).theIcon;
            g.transform.GetChild(1).GetComponent<TextMeshProUGUI>().text = ShopItemsList(i).price.ToString();
            buyBtn = g.transform.GetChild(2).GetComponent<Button>();
            if (ShopItemsList(i).isBuyed)
            {
                DisableBuyButton();
            }
            ShopItemsList(i).isBuyed = PlayerPrefs.GetInt("isBuyed") == 1 ? true : false;// i call it Get here 
            Debug.Log(ShopItemsList(i).isBuyed);
            buyBtn.AddEventListener(i, OnShopItemBtnClicked);
        }
    }
    void OnShopItemBtnClicked(int itemIndex)
    {
        if (m_shopManager.Instance.HasEnoughCoins(ShopItemsList(itemIndex).price))
        {
            m_shopManager.Instance.UseCoins(ShopItemsList(itemIndex).price);
            //purchase Item
            ShopItemsList(itemIndex).isBuyed = true;
            PlayerPrefs.SetInt("isBuyed", ShopItemsList(itemIndex).isBuyed ? 1 : 0); // SetThe Int here when button clicked and buy the item

            //disable the button
            buyBtn = theContent.GetChild(itemIndex).GetChild(2).GetComponent<Button>();
            DisableBuyButton();

            //add avatar
            m_Profile.Instance.AddBallType(ShopItemsList(itemIndex).theIcon);
        }
        else
        {
            //NoCoinsAnim.SetTrigger("NoCoins");
            Debug.Log("You don't have enough coins!!");
        }
    }

    void DisableBuyButton()
    {
        buyBtn.interactable = false;
        buyBtn.transform.GetChild(0).GetComponent<Text>().text = "PURCHASED";
    }

but the result is the same I have to rebuy when going to the main menu or restart the game.

Can anyone tell me what’s wrong with my script?