Skip to main content

Step #3 - Sticky Checkout - Creating a Shopify App, API Keys & Checkout Domain.

In this article, we'll tackle creating your first Shopify Developer app to generate Shopify API Keys and how to find your Cloudflare API Key for Sticky Checkout.

Written by Zakk Sykes
Updated this week

Step #3 - Sticky Checkout - Creating a Shopify App, API Keys & Checkout Domain.

NOTE: As of January 1st, 2026, Shopify deprecated creating new traditional apps and has transitioned apps to the Developer dashboard. This article has been updated to reflect these new processes.

In this article, we'll cover how to connect your Shopify Store & Cloudflare account to Sticky Checkout. This includes how to connect your Cloudflare Domain, creating the Shopify app necessary for the API Keys/Tokens.

Without further ado, let's begin!


Navigating to Sticky Checkout & Connecting Your Domain

To begin, let's login to your Sticky.io Account. Once signed in, Services > Sticky Checkout.

You'll be redirected to a different part of Sticky.io. On the left-hand navigation menu, click Checkout > Domains > Add Domain.

A pop up window will appear, prompting you to choose Standalone or Shopify. This guide will cover Shopify > Next.

First things first, let's enter our Cloudflare API Token. After entering the token, click Connect.

Then click on Domain Name and choose your Cloudflare Domain.

Next is specifying your Subdomain. The subdomain is what customers will see when they're redirected from Shopify to Sticky Checkout.

Generally, you'd type 'Checkout' or 'Payments'. So the customer would see: e.g. payments.teststore.com or checkout.teststore.com.

Once you're satisifed with your subdomain, click Add Checkout Domain to proceed to the next step.


Connecting Sticky Checkout to Shopify

Next up, we'll tackle connecting Shopify to Sticky Checkout. This is a very involved process. Including fetching your Shopify Store URL, creating a Shopify Developer App & fetching its respective keys. To recap;

  • Shopify Store URL

  • Shopify API Key

  • Shopify Webhook Signing Key


Finding Your Shopify Store URL

To find your Shopify Store URL, first login to your Shopify Account. Once logged in, search for "Domains".

While on the Domains page, the second row is your Shopify Store URL.

Navigate back to Sticky Checkout and paste the URL, or paste it in a notepad since we'll be copying a few other fields momentarily.


Creating & Releasing Your Shopify Developer App

Next is creating your first Shopify Developer app. As a heads up, this is a very involved process. Take your time, and let's walk through each and every step to make sure it's done correctly.

From the Shopify search bar, type Develop apps and click App Development.

Once loaded, click Build apps in Dev Dashboard.

This will redirect you to the Shopify Developer Dashboard. And from here, we'll click Create app.

While on the Create an App screen, you'll be given two options. Choose, Start from Dev Dashboard, and name the app whatever you'd like. This is internal and not customer facing. e.g. Sticky Checkout Test 123.

Here is where things become very involved. Strap in and let's get started!

image (35)-20251219-105856.png

Let's start from the top at App URL. To get what's needed for this field, navigate to Settings on the left nav-menu. Right-click and open Settings in a new tab.

Note: If you don't open "Settings" in a new tab. There is no way to get to the prior screen and you will have to start over.

From Settings, we'll see our Client ID & Secret as illustrated below.

We will take both of these values and add them to the URL String provided below.

https://api.sticky.io/checkout-hub/shopify/integration/callback/ClientIDHere/ClientSecretHere

Replace:

  • ClientIDHere with your actual Client ID

  • ClientSecretHere with your actual Client Secret

Here is the output of what the URL should closely resemble. (No brackets or special symbols).

https://api.sticky.io/checkout-hub/shopify/integration/callback/9dc92c56f90fAfzj123e81f4g5832haa/shpss_b49e6aa6f831519163v949f4f94r5r4

Please copy your Client ID & Secret Key as they will be needed again later on.

Once finished, you can close the Settings tab, and we'll paste the URL string in the App URL field.

After pasting the URL, make sure the checkbox for "Embed app in Shopify admin" is disabled.

Please copy the App URL as it will be needed again later on.

Next is Access. This is where we'll provide the necessary scopes or "API Permissions" that Sticky Checkout needs for your Shopify Store.

This gives us the ability to do things like sync your Product Catalog, back-sync orders to Shopify, and much more.

Although it may seem jarring, this is hugely improved over the legacy method used by Shopify for enabling API Scopes.

Simply copy all of the text in the box below and paste it into the Scopes section.

read_analytics,read_app_proxy,write_app_proxy,read_assigned_fulfillment_orders,write_assigned_fulfillment_orders,read_audit_events,read_customer_events,read_cart_transforms,write_cart_transforms,read_all_cart_transforms,read_validations,write_validations,read_cash_tracking,read_channels,write_channels,read_checkout_branding_settings,write_checkout_branding_settings,write_checkouts,read_checkouts,read_companies,write_companies,read_custom_fulfillment_services,write_custom_fulfillment_services,read_custom_pixels,write_custom_pixels,read_customers,write_customers,read_customer_data_erasure,write_customer_data_erasure,read_customer_merge,write_customer_merge,read_delivery_customizations,write_delivery_customizations,read_price_rules,write_price_rules,read_discounts,write_discounts,read_discounts_allocator_functions,write_discounts_allocator_functions,read_discovery,write_discovery,write_draft_orders,read_draft_orders,read_files,write_files,read_fulfillment_constraint_rules,write_fulfillment_constraint_rules,read_fulfillments,write_fulfillments,read_gift_card_transactions,write_gift_card_transactions,read_gift_cards,write_gift_cards,write_inventory,read_inventory,write_inventory_shipments,read_inventory_shipments,write_inventory_shipments_received_items,read_inventory_shipments_received_items,write_inventory_transfers,read_inventory_transfers,read_legal_policies,write_legal_policies,read_delivery_option_generators,write_delivery_option_generators,read_locales,write_locales,write_locations,read_locations,read_marketing_integrated_campaigns,write_marketing_integrated_campaigns,write_marketing_events,read_marketing_events,read_markets,write_markets,read_markets_home,write_markets_home,read_merchant_managed_fulfillment_orders,write_merchant_managed_fulfillment_orders,read_metaobject_definitions,write_metaobject_definitions,read_metaobjects,write_metaobjects,read_online_store_navigation,write_online_store_navigation,read_online_store_pages,write_online_store_pages,write_order_edits,read_order_edits,read_orders,write_orders,write_packing_slip_templates,read_packing_slip_templates,read_payment_terms,write_payment_terms,read_payment_customizations,write_payment_customizations,read_pixels,write_pixels,read_privacy_settings,write_privacy_settings,read_product_feeds,write_product_feeds,read_product_listings,write_product_listings,read_products,write_products,read_publications,write_publications,read_purchase_options,write_purchase_options,write_reports,read_reports,read_resource_feedbacks,write_resource_feedbacks,read_returns,write_returns,read_script_tags,write_script_tags,read_shopify_payments_provider_accounts_sensitive,read_shipping,write_shipping,read_shopify_payments_accounts,read_shopify_payments_payouts,read_shopify_payments_bank_accounts,read_shopify_payments_disputes,write_shopify_payments_disputes,read_content,write_content,read_store_credit_account_transactions,write_store_credit_account_transactions,read_store_credit_accounts,write_theme_code,read_themes,write_themes,read_third_party_fulfillment_orders,write_third_party_fulfillment_orders,read_translations,write_translations,customer_read_companies,customer_write_companies,customer_write_customers,customer_read_customers,customer_read_draft_orders,customer_read_markets,customer_read_orders,customer_write_orders,customer_read_quick_sale,customer_write_quick_sale,customer_read_store_credit_account_transactions,customer_read_store_credit_accounts,unauthenticated_write_bulk_operations,unauthenticated_read_bulk_operations,unauthenticated_read_bundles,unauthenticated_write_checkouts,unauthenticated_read_checkouts,unauthenticated_write_customers,unauthenticated_read_customers,unauthenticated_read_customer_tags,unauthenticated_read_metaobjects,unauthenticated_read_product_pickup_locations,unauthenticated_read_product_inventory,unauthenticated_read_product_listings,unauthenticated_read_product_tags,unauthenticated_read_selling_plans,unauthenticated_read_shop_pay_installments_pricing,unauthenticated_read_content

The final result should look like this for your Scopes section. Ensure there are no spaces at the beginning or end of your Scopes.

Optional scopes will remain as is. And we will enable "Use Legacy Install Flow".

And finally, our Redirect URL. Simply copy and paste the URL you created above under App URL and paste it here.

Before releasing, again, please copy the URL/Redirect URL somewhere, like notepad as we will be needing it momentarily.

For now, click Release at the bottom of the screen.

A pop-up window will appear giving you the option to name the version, it isn't required, skip, and click Release.

We've released the app, but it isn't installed. We're almost at the finish line. Let's segue to the next step below.


Building Your Installation URL

As a heads up, this next part is going to be very tedious. We'll be building your installation URL, which, when copied and pasted into your browser, will take us back to Shopify to install the app we just walked through creating.

Here is a template of the Installation URL

https://{shop}.myshopify.com/admin/oauth/authorize?client_id={your_api_key}&scope={scopes}&redirect_uri={redirect_url}&state={timestamp}&grant_options[]=offline

In the above URL string, there are a few brackets that are blank and where blank, we'll be adding information from your Shopify Store and the App.

As you fill out each bracket, you must remove { }. Leaving in the URL string will not work.

Replace:

  • {shop} with your .myshopify domain. e.g. sticky123.myshopify.com

  • {your_api_key} with your Shopify Client ID. You should already have this copied from when we were creating the app earlier.

  • {scopes} all of the scopes we copied and pasted earlier. Should be added here. For reference, I've provided them again below for you.

read_analytics,read_app_proxy,write_app_proxy,read_assigned_fulfillment_orders,write_assigned_fulfillment_orders,read_audit_events,read_customer_events,read_cart_transforms,write_cart_transforms,read_all_cart_transforms,read_validations,write_validations,read_cash_tracking,read_channels,write_channels,read_checkout_branding_settings,write_checkout_branding_settings,write_checkouts,read_checkouts,read_companies,write_companies,read_custom_fulfillment_services,write_custom_fulfillment_services,read_custom_pixels,write_custom_pixels,read_customers,write_customers,read_customer_data_erasure,write_customer_data_erasure,read_customer_merge,write_customer_merge,read_delivery_customizations,write_delivery_customizations,read_price_rules,write_price_rules,read_discounts,write_discounts,read_discounts_allocator_functions,write_discounts_allocator_functions,read_discovery,write_discovery,write_draft_orders,read_draft_orders,read_files,write_files,read_fulfillment_constraint_rules,write_fulfillment_constraint_rules,read_fulfillments,write_fulfillments,read_gift_card_transactions,write_gift_card_transactions,read_gift_cards,write_gift_cards,write_inventory,read_inventory,write_inventory_shipments,read_inventory_shipments,write_inventory_shipments_received_items,read_inventory_shipments_received_items,write_inventory_transfers,read_inventory_transfers,read_legal_policies,write_legal_policies,read_delivery_option_generators,write_delivery_option_generators,read_locales,write_locales,write_locations,read_locations,read_marketing_integrated_campaigns,write_marketing_integrated_campaigns,write_marketing_events,read_marketing_events,read_markets,write_markets,read_markets_home,write_markets_home,read_merchant_managed_fulfillment_orders,write_merchant_managed_fulfillment_orders,read_metaobject_definitions,write_metaobject_definitions,read_metaobjects,write_metaobjects,read_online_store_navigation,write_online_store_navigation,read_online_store_pages,write_online_store_pages,write_order_edits,read_order_edits,read_orders,write_orders,write_packing_slip_templates,read_packing_slip_templates,read_payment_terms,write_payment_terms,read_payment_customizations,write_payment_customizations,read_pixels,write_pixels,read_privacy_settings,write_privacy_settings,read_product_feeds,write_product_feeds,read_product_listings,write_product_listings,read_products,write_products,read_publications,write_publications,read_purchase_options,write_purchase_options,write_reports,read_reports,read_resource_feedbacks,write_resource_feedbacks,read_returns,write_returns,read_script_tags,write_script_tags,read_shopify_payments_provider_accounts_sensitive,read_shipping,write_shipping,read_shopify_payments_accounts,read_shopify_payments_payouts,read_shopify_payments_bank_accounts,read_shopify_payments_disputes,write_shopify_payments_disputes,read_content,write_content,read_store_credit_account_transactions,write_store_credit_account_transactions,read_store_credit_accounts,write_theme_code,read_themes,write_themes,read_third_party_fulfillment_orders,write_third_party_fulfillment_orders,read_translations,write_translations,customer_read_companies,customer_write_companies,customer_write_customers,customer_read_customers,customer_read_draft_orders,customer_read_markets,customer_read_orders,customer_write_orders,customer_read_quick_sale,customer_write_quick_sale,customer_read_store_credit_account_transactions,customer_read_store_credit_accounts,unauthenticated_write_bulk_operations,unauthenticated_read_bulk_operations,unauthenticated_read_bundles,unauthenticated_write_checkouts,unauthenticated_read_checkouts,unauthenticated_write_customers,unauthenticated_read_customers,unauthenticated_read_customer_tags,unauthenticated_read_metaobjects,unauthenticated_read_product_pickup_locations,unauthenticated_read_product_inventory,unauthenticated_read_product_listings,unauthenticated_read_product_tags,unauthenticated_read_selling_plans,unauthenticated_read_shop_pay_installments_pricing,unauthenticated_read_content

Replace:

  • {redirect_url} We created this earlier. For reference, here is the output of what the Redirect URL should look like. In its entirety, it goes inside {redirect_url} with { } being removed after.

https://api.sticky.io/checkout-hub/shopify/integration/callback/9dc92c56f90fAfzj123e81f4g5832haa/shpss_b49e6aa6f831519163v949f4f94r5r4

Replace:

  • {timestamp} with a timestamp generated on EpochConverter.com. And again, once the timestamp has been added. Remove { } from the URL string.

You can email me at zsykes@sticky.io or schedule some time here should you have any questions.


Install the app

At this point, the URL string should consist of a few thousand characters. Notably, due to the scopes being added in the URL string.

Simply copy the URL string in its entirety, with no spaces, and paste it in your browser.

NOTE: Only Shopify Store Owners are able to install apps. If you are not the store owner, give the app install URL to the owner to install themselves.

Once pasted in your browser, you'll be taken to Shopify to install the app as illustrated below.

After installing the app, you'll be taken to a blank white page with the Shopify App Access token. Copy the token somewhere safe and secure, as we'll be using it momentarily.


Adding Your Domain & Finishing Shopify Integration

We're almost at the finish line! Now that the app is installed, and anything of value is copied to a secure location, we'll segue back to Sticky Checkout.

You should have this tab already open, but if not, you can access Sticky Checkout from your Sticky Account > Services > Sticky Checkout.

Back on Sticky Checkout > Domains. Input the following:

  • Shopify Store URL: Accessible in Shopify under your domains. Includes ".myshopify"

  • Shopify Access Token: Copied after installing the Shopify Developer App. (Only shown once)

  • Shopify Secret Key: Taken from the Settings menu when creating your Developer App.

Once you're done, click Connect.

You'll get a response indicating whether or not it was successful. And similarly, under Shopify Store Name, you'll see the name of your store.

If successful, you can proceed by clicking Next.

That covers the integration to Sticky Checkout! In the next article, we'll discuss creating a funnel that initiates the Shopify Product sync and the next steps to creating your landing pages.

Did this answer your question?