Partial.ly
Back to home

Connect Shopify with a Custom App

The recommended Shopify integration path is to connect Shopify to Partially with a merchant-created custom Shopify app. This lets Partially connect directly to the merchant's Shopify store without requiring an automation platform like Zapier or n8n for the standard Shopify order workflow.

With the custom app connection, Partially can:

  • Create a Shopify order when a Partially payment plan is opened.
  • Add Partially payment history to the Shopify order notes.
  • Mark the Shopify order as paid when the Partially plan is paid.
  • Cancel the associated Shopify order from Partially when a plan is canceled, when the order is still within Shopify's order access window.
  • Optionally restock items when canceling the Shopify order.

Zapier and n8n can still be used for custom automation or legacy workflows, but they are optional and should not be presented as the recommended setup for the standard Shopify integration.

Create the custom Shopify app

High-level steps:

  1. Go to the Shopify Dev Dashboard.
  2. Sign in with the same Shopify account used to manage the shop.
  3. Open the Apps menu and create a new app.
  4. Give the app a name.
  5. Under Access > Scopes, select the required Admin API scopes.
  6. Release the app.
  7. Install the app from the app home section.
  8. Copy the app's Client ID and Client secret from the app settings.

The following scopes are required for full functionality:

  • write_orders
  • read_products
  • read_price_rules
  • read_discounts
  • read_inventory
  • read_locations
  • read_checkouts
  • write_order_edits
  • write_metaobject_definitions and write_metaobjects (needed to mark orders older than 60 days paid; see "Orders older than 60 days" below)

Depending on the Shopify features enabled for the merchant, Partially may also request related Shopify permissions during connection. If the connection test or a Shopify feature reports missing permissions, have the merchant review the Shopify custom app scopes and reconnect.

Enter credentials in Partially

In Partially, go to Settings > Integrations, then click the connect button next to Shopify.

Enter:

  • The Shopify shop domain, such as store-name.myshopify.com, and click the Continue button.
  • In the custom app settings section, enter the custom app Client ID and Client secret.
  • Click the update Shopify settings button to save the credentials.

After saving your credentials use Test connection button. A successful test confirms Partially can use the custom app credentials to access the Shopify shop.

Shopify settings after connection

After the custom app is connected, merchants can configure Shopify order sync options in Partially, including:

  • Order tags for orders purchased with a Partially payment plan.
  • The Shopify order note template.
  • Inventory behavior when Partially creates a Shopify order.
  • Whether Shopify should send an order confirmation email.
  • Whether the merchant should receive an email if Partially cannot submit a plan to Shopify.
  • Whether customer phone numbers should be submitted to Shopify.
  • Shopify discount code support when the app has access to the needed discount scopes.

Orders older than 60 days

Shopify only lets custom apps access orders from the last 60 days, so Partially can't mark an order paid directly once the order is older than that. A Shopify order for a payment plan longer than 60 days returns "Order does not exist" when Partially tries. Shopify Flow, which is free on all Shopify plans, can update any order, so a Flow workflow marks these orders paid for Partially:

  1. Add the write_metaobject_definitions and write_metaobjects scopes to the custom app, release a new version, and approve the new scopes in the Shopify admin.
  2. In Partially, use Test connection on the Shopify settings page, then click Create metaobject definition in the "Orders older than 60 days (Shopify Flow)" section. Test connection also creates it automatically once the scopes are there. This adds a "Partial.ly order action" metaobject definition (type partially_order_action, with request_id, action, order_id and plan_id fields) to the store. It must exist before the workflow can be created.
  3. In Shopify, open the Flow app and create a workflow:
    • Trigger: Metaobject entry created, with the Partial.ly order action definition selected.
    • Condition: action is equal to mark_paid.
    • Action: Send Admin API request with the orderMarkAsPaid mutation, and {"input": {"id": "<order_id>"}} as the input. Insert the metaobject's order_id field with the variable picker. It holds the full order GID, such as gid://shopify/Order/123.
    • Turn the workflow on.
  4. In Partially's Shopify settings, check "I've created and turned on the workflow" in step 4 of the same section and click Save.

When a plan is paid in full and its order is more than about 59 days old, or Shopify reports the order as missing, Partially creates a "Partial.ly order action" entry, and the workflow marks the order paid. The workflow's Recent runs in Flow show each run and any errors. Orders less than 60 days old are still marked paid directly.

Important notes

Partially does not replace the standard Shopify checkout. Merchants still add a Partially checkout button or widget to their Shopify product/cart pages so customers can open a Partially payment plan.

The custom app connection handles the Shopify order sync after the Partially plan is opened and as the plan is paid or canceled.

For merchants who previously used Zapier or n8n to create Shopify orders or mark orders as paid, recommend upgrading to the custom app connection for the standard workflow.

YouTube tutorial

How to Create a Custom Shopify App for Partially