async def METHOD_NAME(self, method, url, **kwargs):
    final_url = os.path.join(self.api_url, "admin/api/2022-04/" + url)
    async with ClientSession(headers=self.headers) as session:
        async with session.METHOD_NAME(method, final_url, **kwargs) as response:
            data = await response.text()
            if "invalid api key or access token" in data.lower():
                raise ShopifyAPIError("Invalid API key or access token")
            try:
                data = json.loads(data)
            except json.JSONDecodeError:
                raise ShopifyAPIError("Invalid JSON data")
            return data