Skip to main content

Shopify Deposit Ticket to iPaaS

Transfer deposit tickets from Shopify orders to iPaaS

Updated yesterday

Summary

Shopify Deposit Tickets can be transferred from Shopify Orders to iPaaS via collection mapping.
The mapping collection identifies deposit-type orders (using a filter) and maps their header, address, line, and payment details into iPaaS for downstream accounting and integration workflows.

This collection supports Order Deposit Ticket transfers, including Gift Card payments and other Payment transactions.

Field Constraints

  • OrderNumber must follow the *-D suffix format.

  • Gateway must be properly classified into gift card or non-gift card payment flows.

  • All amounts (discount, tax, subtotal, total) must be valid decimals.

Mapping Collection Status

  • Status: Enabled

  • Trigger Events: Shopify Orders with OrderNumber.EndsWith("-D").

Id Format

Deposit Tickets use the OrderNumber with -D suffix as a unique transaction number in iPaaS.

Supported Child Collections

Parent Collection: Shopify Deposit Ticket Add/Update From iPaaS

  • Child Collection: Shopify Deposit Ticket Address To iPaaS.

  • Child Collection Shopify Deposit Ticket Line To iPaaS.

  • Child Collection: Shopify Deposit Ticket Payment Gift Card To iPaaS

  • Child Collection: Shopify Deposit Ticket Payment To iPaaS

System Caveats

iPaaS Caveats

  • Requires correct external IDs (SystemId, ParentId).

  • Gift card logic must be enabled only when supported.

Shopify Caveats

  • Deposit tickets are recognized by the -D suffix, not by explicit Shopify settings.

Setup Requirements

iPaaS Configuration

  • Enable Shopify Deposit Ticket Add/Update To iPaaS mapping collection.

  • Configure child mappings for Inventory, Options, Option Values, Variants, and Variant Inventory.

  • Ensure Lookup Translations for Status and InventoryPolicy are configured.

Shopify Configuration

In the integration settings, enter the following correctly:

  • OAuth URL Template:

    https://{API Store}.myshopify.com/admin/oauth/authorize?client_id={SystemTypeVersion:Client_Id}&scope={SystemTypeVersion:Scope}&redirect_uri={SystemTypeVersion:RedirectUrl}&state={iPaaSState}

  • OAuth Identifier Field: timestamp

  • OAuth Success Callback Field: code

Shopify Store Credentials

  • Client_Secret: Secret saved when creating your Shopify store

  • Scope: read_inventory,read_locations,read_order_edits,read_payment_terms, read_merchant_managed_fulfillment_orders, read_publications, read_fulfillments,read_files

  • RedirectUrl: https://portal.iPaaS.com/Deposit Ticket/subscription-mgmt/subscriptions/authorization/app

Authentication & Security

  • OAuth 2.0 Token: Used for Shopify API authentication.

Integration Flow

  1. Shopify Orders are evaluated for OrderNumber ending with -D.

  2. Header-level data is transferred (SystemId, TransactionNumber, totals).

  3. Address, Line Items, and Payments are processed through child collections.

  4. iPaaS records structured Deposit Ticket for downstream system integration.

  5. Variants and their inventory sync back into iPaaS.

Mappings

Shopify Deposit Ticket to iPaaS (Parent)

Mapping filter

OrderNumber.EndsWith("-D")

Description

Disable this mapping collection if you are using Shopify Plus. Order and deposit ticket mappings are configured to support Counterpoint integration requirements.

Mapping Type

Source Field (Shopify)

Destination Field (iPaaS)

Description

Dynamic Formula

SpaceportSystemId

SystemId

Required

Field

OrderNumber

TransactionNumber

Required

Dynamic Formula

GetSpaceportId(Id.Substring(0, Id.Length - 2), "Transaction", SpaceportSystemId)

ParentId

This mapping uses an iPaaS.com function to retrieve the iPaaS.com internal ID for a transaction based on the Shopify transaction Id.

Static

Ticket

Type

Lookup Translation

Status

This lookup translation convert status of Shopify Transaction Status to iPaaS Transaction Status.

Dynamic Formula

if(Email == null || Email == "") return "defaultCustomer@Shopify.com"; return Email;

EmailAddress

This snippet is designed to provide a fallback email address ("defaultCustomer@Shopify.com") in cases where Email is either not defined (null) or blank ("").

Field

TotalDiscounts

DiscountAmount

Field

TotalTax

TaxAmount

Field

ShippingPrice

ShippingAmount

Field

SubtotalPrice

Subtotal

Field

TotalPrice

Total

Field

ItemsTotal

TotalQty

Shopify Deposit Ticket Address To iPaaS (Child) |

Mapping Type

Source Field (Shopify)

Destination Field (iPaaS)

Description

Dynamic Formula

IsBillingAddress == "TRUE"

IsPrimaryBilling

This condition checks if IsBillingAddress is "TRUE", indicating that the address is the billing address. |

Dynamic Formula

IsShippingAddress == "TRUE"

IsPrimaryShipping

This condition checks if IsShippingAddress is "TRUE", indicating that the address is the shipping address.|

Field

Address1

Address1

Field

Address2

Address2

Field

City

City

Field

ProvinceCode

Region

Field

Country

Country

Field

Zip

PostalCode

Dynamic Formula

if (IsShippingAddress == "TRUE" && Parent.ShippingLines[0] != null) { var carrier = Parent.ShippingLines[0].Code; if (carrier == "Standard") {return "UPS GROUND";} else if (carrier == "AnotherShopifyValue") {return "Another iPaaS Shipment Method";} else {return null;} } else {return null;}

ShippingMethod

The iPaaS transaction shipping address needs the shipping method, but the shipping method is on another model in Shopify. Normally, you would want to use a translation collection to map shipping methods from your source system to iPaaS. But since the data is only available in another model, you can't easily use translations. So, this formula is a way to get a similar translation manually. There is only one example in the template formula demonstrating a single mapping from "Standard" to "UPS GROUND", but you could expand it as needed: if (IsShippingAddress == "TRUE" && Parent.ShippingLines[0] != null) { var carrier = Parent.ShippingLines[0].Code; if (carrier == "Standard") {return "UPS GROUND";} else if (carrier == "AnotherShopifyValue") {return "Another iPaaS Shipment Method";} else {return null;} } else{return null;}

Field

FirstName

FirstName

Field

LastName

LastName

Field

Company

Company

Shopify Deposit Ticket Line To iPaaS (Child)

Description

Shopify Plus uses GiftCard == false filter.

Mapping Type

Source Field (Shopify)

Mapping Type

Description

Static

Product

Type

Lookup Translation

Status

This lookup translation converts the status of Shopify Transaction Line Status to iPaaS Transaction Line Status.

Field

Title

Description

Field

Quantity

Qty

Dynamic Formula

if(GiftCard){return "Shopify-GC";} else {return Sku;}

UnitPrice

This expression calculates the effective unit price of a product after discounts. It takes the total price (Price * Quantity), subtracts the sum of discounts from DiscountAllocations, and then divides by Quantity to get the discounted price per item.

Dynamic Formula

((ConvertToDecimal(Price) * Quantity) - SumFieldFromCollection(DiscountAllocations, "Amount")) / Quantity

ExtendedPrice

This expression calculates the total cost of a product by multiplying its price (Price) by the quantity (Quantity), and then subtracting the total discounts from the DiscountAllocations collection. The result gives the net cost after discounts have been applied.

Field

Price

OriginalUnitPrice

Dynamic Formula

(ConvertToDecimal(Price) * Quantity) - SumFieldFromCollection(DiscountAllocations, "Amount")

DiscountAmount

This expression calculates the total discount amount by summing the values of the "Amount" field in the DiscountAllocations collection.

Dynamic Formula

SumFieldFromCollection(TaxLines, "Rate")

TaxPercent

This expression calculates the total tax rate by summing the values of the "Rate" field from the TaxLines collection.

Dynamic Formula

SumFieldFromCollection(TaxLines, "Price")

EstimatedTaxAmount

This expression calculates the total tax amount by summing the "Price" field values in the TaxLines collection.

Shopify Deposit Ticket Payment Gift Card To iPaaS (Child)

Mapping filter

Gateway == "gift_card"

Description

This payment transfer is for gateways of the "gift card" type.

Mapping Type

Source Field (Shopify)

Destination Field (iPaaS)

Dynamic Formula

Gateway

Method

Static

Shopify Gift Certificate

Description

Field

Amount

Amount

Static

Captured

Status

Shopify Deposit Ticket Payment To iPaaS (Child)

Mapping filter

if (Kind == "authorization" && CreditCardAuthIsCaptured(Authorization, Parent.Transactions) == false && Status == "success" && Gateway !="gift_card" ) {return true;} else if (Kind == "authorization" && CreditCardAuthIsCaptured(Authorization, Parent.Transactions) == true && Status == "success" && Gateway !="gift_card" ) {return true;} else if (Kind == "sale" && Status == "success" && Gateway !="gift_card") {return true;} else {return false;}

Description

This code checks whether a transaction is successful, isn’t related to a gift card, and is either an authorization (captured or not) or a sale. If these conditions are met, it transfers the product payment; otherwise, it does not.

Mapping Type

Source Field (Shopify)

Destination Field (iPaaS)

Description

Dynamic Formula

Gateway

Method

Field

Message

Description

Field

Amount

Amount

Dynamic Formula

if (Kind == "authorization" && CreditCardAuthIsCaptured(Authorization, Parent.Transactions) == false && Status == "success") {return "Authorized";} else if (Kind == "authorization" && CreditCardAuthIsCaptured(Authorization, Parent.Transactions) == true && Status == "success") {return "Captured";} else if (Kind == "sale" && Status == "success") {return "Captured";}

Status

This code checks the type, capture status, and success status of a transaction to determine the appropriate label:

Authorization Not Captured: If Kind is "authorization", Status is "success", and the authorization hasn't been captured, it returns "Authorized".

Authorization Captured: If Kind is "authorization", Status is "success", and the authorization has been captured, it returns "Captured".

Sale Transaction: If Kind is "sale" and Status is "success", it also returns "Captured".

LookUp Translations

Shopify Transaction Status To iPaaS

Destination Field (Shopify)

Source Field (iPaaS)

PENDING

Pending

FULFILLED

Complete

VOIDED

Cancelled

SHIPPED

Shipped

CONFIRMED

Pending

PAID

Pending

REFUNDED

Cancelled

true

Pending

Shopify Transaction Line Status To iPaaS

Destination Field (Shopify)

Source Field (iPaaS)

PARTIAL

Pending

FULFILLED

Complete

NOT ELIGIBLE

Cancelled

true

Pending

Error Handling

  • OrderNumber without -D: Skipped from deposit ticket mapping.

  • GiftCard flag missing: May cause incorrect line mapping.

  • Authorization not captured: Payment skipped.

Testing & Validation

Test Scenarios

  • Deposit Ticket Creation in iPaaS: Deposit Ticket added with correct title, SKU, and price.

  • Option Exclusion: Deposit Tickets with default “Title” options are skipped.

  • Variant Sync: Variants created with correct options and SKUs.

  • Inventory Sync: Quantities reflected per Shopify location.

Validation Rules

  • Deposit Order (Add): Correctly processed into iPaaS.

  • Deposit Order (Gift Card Payment): Gift Card mapping validated.

  • Authorization Payment: Captured properly.

  • Non-Deposit Order: Skipped.

Validation Checklist

  • OrderNumber suffix validated.

  • Header, Address, Line, Payment mappings are correct.

  • Gift card vs non-gift card split works.

  • Totals match Shopify order.

Additional Notes

  • Validate dynamic formulas for smooth transfer.

Did this answer your question?