Skip to main content

Overview

Shopify Order Sync creates an order in your Shopify store for every purchase made through ElasticFunnels. You keep ElasticFunnels for the funnel and the checkout, and Shopify (with the 3PL apps connected to it) for shipping, tax records and accounting.

Paid orders, tagged

Each order arrives marked paid and tagged ElasticFunnels, with the customer, both addresses, SKUs, shipping, tax and discount.

One order per funnel

Optional: the main sale and its upsells and downsells from one funnel session arrive as one Shopify order.

Refunds carried over

A refund made in ElasticFunnels reaches the Shopify order, so a 3PL app stops shipping a cancelled order.

Your prices

The order shows what the customer paid in ElasticFunnels, whatever the price in your Shopify catalog.

Tracking comes back

When Shopify or its 3PL app ships the order, the tracking number comes back to ElasticFunnels and the buyer gets a shipped email.

Limits to know first

  • One Shopify store per brand. The Shopify integration can be added once per brand. To sync to a second store, use a second brand.
  • Connected from ElasticFunnels. You connect your store yourself from Integrations (see Set up). ElasticFunnels is not listed in the Shopify App Store yet. Brands that already have a custom Shopify app from our team keep using it.
  • Shopify stock is not reduced. Order lines are custom line items matched by SKU. They are not linked to your Shopify products or variants, so Shopify does not lower its inventory count for these orders. Track stock in ElasticFunnels (the product’s Inventory settings) or in your 3PL.
  • No product import from Shopify. ElasticFunnels does not read your Shopify catalog. Products are created in ElasticFunnels; they can be pushed to Shopify (see Products in Shopify).
  • Cancellations and refunds made in Shopify do not come back. Cancelling or refunding an order in the Shopify admin does not refund it in ElasticFunnels. Refund in ElasticFunnels and the refund reaches Shopify. Only shipment tracking comes back from Shopify (see Tracking back from Shopify).

Set up

1

Add Shopify in ElasticFunnels

Go to Apps > Integrations, click New Integration and choose Shopify.
2

Connect your store

Enter Your Shopify Store Domain (your .myshopify.com address), turn on Sync orders to Shopify under Integration Options and click Connect your Shopify Store. Shopify opens and asks you to approve access to orders, customers, products, draft orders, inventory, price rules and shipping. After you approve, you return to ElasticFunnels with the store connected.
3

Choose which orders go to the store (optional)

Under Merchants, pick All merchants, Specific merchants (whitelist) or Exclude merchants (blacklist). Under Affiliate Filtering, you can do the same by affiliate ID.
4

Decide on merging (optional)

Set Max wait (minutes) to 0 to send every purchase as its own order, or above 0 to merge a funnel’s purchases into one order. See Merge the funnel into one order.
5

Test it

Turn on Send test orders, place a test purchase, then in Shopify go to Orders and filter by the tag ElasticFunnels. Turn Send test orders off again when you are done.
Started from Shopify instead? If the ElasticFunnels app is already installed in your Shopify admin, open it and click Connect in ElasticFunnels. ElasticFunnels opens in a new tab with the Shopify form for your brand and your store already filled in. Log in first if asked. If your store is already connected to a brand in another ElasticFunnels account, the link stops there; disconnect it in that account first.

Settings

These are on the Shopify card under Integrations → Operations. Everything below Sync orders to Shopify in this table appears only while it is on. The same card also has Enable Shopify Checkouts (Shopify Checkout) and Enable Shop Pay Merchant (Shop Pay), which use your store as a checkout instead.

When orders are sent

With Max wait (minutes) at 0, each purchase is queued about 15 seconds after it completes and sent on the next sync run. The sync runs every minute, so the order usually appears in Shopify within a minute or two.

Merge the funnel into one order

With Max wait (minutes) above 0, the main sale and the upsells and downsells bought in the same funnel session are held and sent to Shopify as one order. The order is sent at whichever comes first:
  • no new purchase in the session for Send early after quiet (minutes), or
  • Max wait (minutes) has passed since the first purchase.
The rule is time-based only. ElasticFunnels does not get a “funnel finished” signal: reaching the thank-you page does not send the order early. Example with Max wait 15 and Send early after quiet 5: a buyer orders at 10:00, takes an upsell at 10:02 and declines the downsell. The order is sent around 10:07 with both items. A buyer who keeps buying every few minutes is sent at 10:15 at the latest. On a merged order, the customer and shipping details come from the main sale, and the totals, tax, shipping and discount are added up across all the lines. A purchase that comes in after the order was sent goes to Shopify as its own order.

Gift orders

When a buyer sends bonus items as a gift, the gift is synced as its own $0 order tagged gift, with the recipient’s address. Its notes name the buyer’s order and include the gift message. A gift is never merged into the buyer’s order.

What the Shopify order contains

  • Financial status paid (payment was collected in ElasticFunnels)
  • A sale transaction for the order total, with the payment method as the gateway name. A $0 gift order has no transaction
  • Shopify sends no order confirmation or receipt email to the customer
  • Email, first and last name, phone
  • Billing and shipping address
  • If Shopify rejects the phone number, the order is sent again without it
  • Product name, quantity and the price the customer paid
  • SKU from the product’s SKU field in ElasticFunnels (the product code when the SKU is empty)
  • Variant name, when the product has one
  • Custom line items: not linked to Shopify products, so Shopify stock does not change
  • Shipping line
  • Tax line with the tax exactly as charged in ElasticFunnels (Shopify does not recalculate it)
  • Discount
  • Processed date set to the purchase time
  • Tags ElasticFunnels and ElasticFunnel (the older tag is kept so existing Shopify Flow and 3PL rules keep matching), plus gift on gift orders
  • Source ElasticFunnels
  • Order name # followed by the ElasticFunnels order number
  • Order notes with the EF order ID, EF order number and funnel ID, plus provider, tracking and carrier when an ElasticFunnels fulfillment integration already has them

Refunds and cancellations

When you refund a synced purchase in ElasticFunnels:
  • Full refund: the Shopify order is cancelled, which stops a 3PL app from shipping it. Shopify does not email the customer.
  • Partial refund: a refund for that amount is created on the Shopify order. Items are not restocked and Shopify does not email the customer.
  • Full refund of one purchase on a merged order (for example only the upsell): only that purchase’s lines are refunded on the Shopify order, and the rest of the order still ships. The Shopify order is cancelled only once every purchase on it has been refunded.
ElasticFunnels only cancels or refunds orders it created. Orders you created yourself in Shopify, or that came from your Shopify store, are never touched. If ElasticFunnels cannot confirm that it created an order, it does nothing. This works one way only: a cancellation or refund made in the Shopify admin is not carried back to ElasticFunnels.

Tracking back from Shopify

When your store or the 3PL app connected to it fulfills a synced order in Shopify with a tracking number, ElasticFunnels picks it up:
  • Every ElasticFunnels purchase on that Shopify order gets the tracking number, carrier and tracking URL, and is marked shipped.
  • The buyer gets one shipped email per Shopify order, even when the order merges several purchases. It uses the shipped email set up on the merchant. No email is sent for a shipment older than 3 days (for example when an old order is edited in Shopify); its tracking is still recorded.
  • If the order was paid through a PayPal merchant, the tracking number is also sent to PayPal.
  • Purchases already shipped by one of the ElasticFunnels fulfillment integrations (ShipOffers, Jetpack) keep the tracking from that integration.
There is nothing to turn on: ElasticFunnels registers the Shopify notifications it needs when order sync is on. Only the first fulfillment with a tracking number is used.

Orders that are not synced

  • Orders paid through the Shop Pay or Shopify Checkout merchants. They already exist in Shopify.
  • Orders from merchants or affiliates excluded by your filters.
  • Test orders, unless Send test orders is on.

Products in Shopify

While Sync orders to Shopify is on, saving the integration or clicking Sync products creates each ElasticFunnels product in Shopify as a product with one variant: your ElasticFunnels title and price, the product code as SKU, vendor ElasticFunnels, and inventory not tracked. Sync products only creates products that are not in Shopify yet; it does not update ones already there. Later edits to a product are sent to Shopify only for stores connected with Enable Shop Pay Merchant turned on. Synced orders do not use these products. They still arrive as custom line items, so creating products in Shopify does not make Shopify stock go down.

Retries

If Shopify rejects the order or does not answer, the order is tried again up to 5 times: after 5, 15, 30, 60 and 120 minutes. A retry never creates a duplicate: if the order already exists in Shopify, ElasticFunnels uses it. After the last retry the sync is marked failed. Contact support and we can send the order again.

Finding synced orders in Shopify

  • Tag filter: Shopify Admin → Orders → Filters → Tagged with ElasticFunnels
  • Order name: search for the ElasticFunnels order number
  • Order notes: each order lists the EF order ID, order number and funnel ID

Troubleshooting

  1. Check that Sync orders to Shopify is on.
  2. Check the Merchants and Affiliate Filtering settings: the order’s merchant or affiliate may be excluded.
  3. If it was a test order, Send test orders must be on.
  4. Orders paid through Shop Pay or Shopify Checkout are never synced; they are already in Shopify.
  5. With merging on, the order waits up to Max wait (minutes) before it is sent.
  6. Contact support if the order still does not appear.
ElasticFunnels could not find a Shopify app to connect with. Contact support.
Expected. Orders use custom line items that are not linked to your Shopify variants, so Shopify does not change its inventory. Track stock in ElasticFunnels or in your 3PL.
Expected. The order carries the price the customer paid in ElasticFunnels, not your Shopify catalog price.
ElasticFunnels sends the tax exactly as collected. If Shopify shows a different number, Shopify’s automatic tax is also on. See Tax.
Merging is off (Max wait (minutes) is 0), or the upsell was bought after the merged order had already been sent. Raise Send early after quiet (minutes) if your buyers take longer between offers.

Data and privacy

The order and customer details stay in ElasticFunnels as part of your conversions and customer records; Shopify receives a copy to create the order. The Shopify app answers Shopify’s required privacy webhooks:
  • customers/data_request and customers/redact: acknowledged, but they do not export or delete anything in ElasticFunnels. The buyer’s orders and customer record stay in your conversions and customers. To export or erase a buyer’s data, contact support.
  • shop/redact: removes the Shopify integration after the app is uninstalled. Order history already in ElasticFunnels is kept.
If you uninstall the app from Shopify, the integration is disabled and syncing stops. Orders already in Shopify stay there.

Frequently Asked Questions

No. Orders are created with custom line items, so they do not need matching Shopify products. If you want your products listed in Shopify anyway, use Sync products.
No. The lines are not linked to Shopify variants, so Shopify inventory does not change.
No. Products are created in ElasticFunnels and can be pushed to Shopify, not the other way round.
One store per brand. Use a separate brand for each store.
Yes, from ElasticFunnels to Shopify: a full refund cancels the Shopify order, a partial refund creates a Shopify refund. Refunds made in Shopify do not come back to ElasticFunnels.
Yes. Set Max wait (minutes) above 0. See Merge the funnel into one order.
Only if you turn on Send test orders. It is off by default. When it is on, each test order is tagged test-order and its note says no payment was taken.
The order is retried up to 5 times over about four hours, without creating duplicates.
Contact support. We can send past orders for you.
Your 3PL sees the synced orders in Shopify and fulfills them as usual. When it adds the tracking number in Shopify, the tracking comes back to ElasticFunnels and the buyer gets a shipped email. See Tracking back from Shopify.
No. On a merged order, a full refund of one purchase refunds only its lines. The order is cancelled only once every purchase on it is refunded.

Using Shopify as checkout

To sell through Shopify from your funnels instead of syncing orders from other gateways, use one of these merchants:
  • Shopify Checkout: sends visitors to your Shopify cart and native checkout.
  • Shop Pay: creates a draft order in Shopify and sends the customer to Shopify checkout, with Shop Pay for returning customers; supports bumps.
Both need your Shopify store connected (Integrations → Operations → Shopify). Neither supports one-click upsells, because the payment happens on Shopify. Orders paid through them are already in Shopify, so order sync skips them.

Next Steps

Fulfillment

Send orders to ShipOffers or Jetpack directly from ElasticFunnels

Tax

Calculate tax at checkout so Shopify receives the right amounts

Shop Pay

Use Shopify draft orders and Shop Pay as your checkout

Shopify Checkout

Send funnel visitors to your Shopify cart