Skip to main content

 Hey there,

I’ve checked all of the same questions here but couldn’t find a solution.

What I did so far:
1. Deleted the Klavyio Plugin
2. Deleted the REST API Key
3. Followed the guide here: https://help.klaviyo.com/hc/en-us/articles/115005255808-How-to-Integrate-with-WooCommerce
Result: Got the "unable to access the orders API, please check connection settings and try again" error
4. Revoked the REST API keys created from the integration
5. Created a REST API key by following this guide here: https://github.com/woocommerce/woocommerce/wiki/Getting-started-with-the-REST-API
6. Did the troubleshooting section here: https://help.klaviyo.com/hc/en-us/articles/115005255808?wtime=%7Bseek_to_second_number%7D

Tested on Postman (https://pressynow.com/wp-json/wc/v2/orders) with a new a GET result and this is the result:

<!DOCTYPE html>
<html lang="en">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width">
<meta name='robots' content='noindex, follow' />
<title>WordPress › Error</title>
<style type="text/css">
html {
background: #f1f1f1;
}

body {
background: #fff;
border: 1px solid #ccd0d4;
color: #444;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
margin: 2em auto;
padding: 1em 2em;
max-width: 700px;
-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .04);
box-shadow: 0 1px 1px rgba(0, 0, 0, .04);
}

h1 {
border-bottom: 1px solid #dadada;
clear: both;
color: #666;
font-size: 24px;
margin: 30px 0 0 0;
padding: 0;
padding-bottom: 7px;
}

#error-page {
margin-top: 50px;
}

#error-page p,
#error-page .wp-die-message {
font-size: 14px;
line-height: 1.5;
margin: 25px 0 20px;
}

#error-page code {
font-family: Consolas, Monaco, monospace;
}

ul li {
margin-bottom: 10px;
font-size: 14px;
}

a {
color: #0073aa;
}

a:hover,
a:active {
color: #006799;
}

a:focus {
color: #124964;
-webkit-box-shadow:
0 0 0 1px #5b9dd9,
0 0 2px 1px rgba(30, 140, 190, 0.8);
box-shadow:
0 0 0 1px #5b9dd9,
0 0 2px 1px rgba(30, 140, 190, 0.8);
outline: none;
}

.button {
background: #f3f5f6;
border: 1px solid #016087;
color: #016087;
display: inline-block;
text-decoration: none;
font-size: 13px;
line-height: 2;
height: 28px;
margin: 0;
padding: 0 10px 1px;
cursor: pointer;
-webkit-border-radius: 3px;
-webkit-appearance: none;
border-radius: 3px;
white-space: nowrap;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;

vertical-align: top;
}

.button.button-large {
line-height: 2.30769231;
min-height: 32px;
padding: 0 12px;
}

.button:hover,
.button:focus {
background: #f1f1f1;
}

.button:focus {
background: #f3f5f6;
border-color: #007cba;
-webkit-box-shadow: 0 0 0 1px #007cba;
box-shadow: 0 0 0 1px #007cba;
color: #016087;
outline: 2px solid transparent;
outline-offset: 0;
}

.button:active {
background: #f3f5f6;
border-color: #7e8993;
-webkit-box-shadow: none;
box-shadow: none;
}
</style>
</head>

<body id="error-page">
<div class="wp-die-message">
<p>There has been a critical error on this website.</p>
<p><a href="https://wordpress.org/support/article/faq-troubleshooting/">Learn more about troubleshooting
WordPress.</a></p>
</div>
</body>

</html>

 

Thanks for any help you can provide me!

Hi there @alanarg ,

Welcome to the Community.

For some context on what is happening: Klaviyo attempts to make API calls to your WooCommerce store during the integration setup. WooCommerce stores require authorization credentials, which is like an added layer of security when making API calls to your store. An example of a call that Klaviyo makes is:

curl https://STORE_URL/wp-json/wc/v3/orders \
    -u CONSUMER_KEY:CONSUMER_SECRET

This is a generic WooCommerce REST API endpoint that should be available for all WooCommerce stores: https://woocommerce.github.io/woocommerce-rest-api-docs/#list-all-orders

 

If you have a web developer, they can test an API call to this endpoint in an app like Postman (make sure you are using the store URL that is auto-populating within the “Connection Details” when setting up the Klaviyo integration - see more on that below ). If Klaviyo cannot make this type of call when setting up the integration, then an error message will result. You (or your dev team) can make this exact call outside of Klaviyo, using the credentials generated for Klaviyo (found within WordPress > WooCommerce > Settings > Advanced > REST API). You may need to generate a new set of REST API keys with read/write permissions to obtain the full consumer key and consumer secret. This will give you some insight into what might be blocking Klaviyo’s call.

 

Ultimately, this error can happen for a few different reasons:

 

Reason 1: Firewall on your server blocking Klaviyo requests.

You may have a firewall or security layer set up that is blocking any API requests coming from Klaviyo. Therefore, we need to make sure that Klaviyo is authorized to access your server and/or hosting provider. Our user agent is Klaviyo/1.0. We include this User Agent in the request header for all of our API calls. We recommend that you whitelist this user agent. Be sure to allowlist our User Agent within any additional firewall layers (such as Cloudflare), as well as via your hosting provider (i.e. BlueHost, WPX, Kinsta, LiquidWeb, HostGator, etc.).

 

Reason 2: Your website does not meet standard SSL requirements

When setting up the Klaviyo integration you will see that we are auto-populating the store URL within the “Connection Details” section. This is the Store URL that we are using to make our API requests that we discuss in the paragraphs above:

NLab7XKdxrD_dHbshRdzq7Icv0DT1vG80lM892meAxR9n3Fxjp89bLP0j5Jg_5Vmx4KaSmMllOOk357EjWRNIz4TMYbNJ2WlB_QNdJiCPb27Qu7M8SZdJXYFLDC4n9LQ3kTv64Rwt095JtVsAupfu-k

Klaviyo expects your store URL to adhere to HTTPS protocols, meaning that the website has a valid SSL certificate. If your website is in HTTP rather than HTTPS, you may run into issues. You can check if your SSL certificate is valid at https://www.ssllabs.com/ssltest/analyze.html. We expect that the tests pass with A gradings.

 

Reason 3: 3rd party caching plugins conflicting with the Klaviyo plugin

Do you have any 3rd party caching plugins installed? These caching plugins tend to conflict with the Klaviyo plugin, so we strongly recommend disabling them, and then trying to setup the integration once more. The usual suspect is a caching plugin such as WP Rocket, WP Total Cache, or W3Cache. We recommend turning off each plugin one by one until the authentication is successful.

 

Reason 4: Incorrect permissions on API keys

The Klaviyo plugin 3.0.0 and above should be auto-generating API keys with read and write permissions. Please confirm that the Klaviyo API credentials have BOTH Read & Write permissions. You can confirm this in WordPress via WooCommerce > Settings > Advanced > REST API.

nev_cj8McQRoqrnSaPFRb-bHIiB32Rp4jTubwPcMofr5WVmvH3NI6bsIc-OcU379dZSIOlu6FCJl3cMvNDzJ1X511Wv_WHdcWcPhXHU9Wtvh3gSSK6k_eV29AZyRRAKdtRBoZp1aRoz1Cm29RMtu_xo

Reason 5: Web browser privacy extensions

Your web browser's privacy extensions could also be interfering with Klaviyo's ability to make the necessary setup calls. Can you please try setting up the integration with a different web browser, where all of the following are disabled:

  • Enabled Firewalls
  • Privacy/Security Settings
  • Ad Blockers

 

If you are not the web developer of your store, I recommend forwarding this info to someone on your web development team to get their thoughts.

You can find more general information on this message here: Community Post > WooCommerce Integration Unable to access API with credentials specified.

If these tips don't work, then please send our Support Team the following information:

  1. What 3rd party plugins are you using?
  2. What hosting provider are you using?
  3. What version WordPress are you using?
  4. What version WooCommerce are you using?
  5. Please also provide us with the following so that we can make some test calls:
  • URL to your WordPress admin sign in
  • Username
  • Password

    *Feel free to create a new Username/Password combination specifically for Klaviyo Support. You can send the login information securely via onetimesecret.com

 


Reply