OnClick Function to handle 2 Events?

So I’m trying to use OnClick to show my inventory when the button is clicked and it’s not showing and to not show it if it’s clicked and it already is shown. Here is my code:
using UnityEngine;
using System.Collections;

public class ShopShow : MonoBehaviour
{
	public GameObject shopButton;
	public Vector3 newPos;

	bool isShown = false;

	public void Start ()
	{
		newPos = new Vector3(1150, 350, 0);
	}

	public void ShowShop ()
	{
		if (!isShown)
		{
			shopButton.transform.position = newPos;
		}

		isShown = true;
	}

	public void CloseShop ()
	{
		if (isShown)
		{
			shopButton.transform.position = new Vector3(1150, 5, 0);
		}

		isShown = false;
	}
}

So unless I’m missing something, this should work right?

where is your code to call the functions?
I would use update to check the var and then call the function something like

public Update(){
if(isShown){
ShowShop();}
else {CloseShop();}
}

public void ShowShop () {
shopButton.transform.position = newPos;
}

public void CloseShop (){
shopButton.transform.position = new Vector3(1150, 5, 0);
}