Create Transaction

In this article

Overview

You can use this Snap to create a transaction record for an existing order.

Prerequisites

None.

Support for Ultra Pipelines

Works in Ultra Pipelines

Limitations 

  • API versions: Shopify releases new API versions every quarter. Each stable version is supported only for a minimum of 12 months. Part of a Shopify API is deprecated if it becomes unnecessary, unsafe, or outdated. The API’s are marked as deprecated when they are removed in a newer version of the API. The deprecation is then retroactively applied to previous stable versions of the API.
  • API Rate Limit: All Shopify APIs are rate-limited. Shopify uses various strategies to enforce rate limits, such as Calculated query cost, Request-based limit, and Time-based limit. 
    Shopify Snap Pack uses admin APIs, which are applicable for Request-based limit. If the APIs cross the rate limit, the Snap fails.

    API

    Rate-limiting method

    Standard limit

    Shopify Plus limit

    Admin API

    (GraphQL)

    Calculated query cost

    50 points/second

    100 points/second

    Admin API

     (REST)

    Request-based limit

    2 requests/second

    4 requests/second

Shopify Behavior

If you provide an invalid value for Transaction ID or Parent ID, the Snap is not validated. The Snap ignores the invalid values and processes the operation.

Known Issues

None.

Snap Input and Output

Input/OutputType of ViewNumber of ViewsExamples of Upstream and Downstream SnapsDescription
Input 

Document


  • Min:1
  • Max:1
  • Mapper
  • Copy
The customer, product, and variant IDs.
Output

Document

  • Min:1
  • Max:1
  • Mapper
  • Create Order
  • Order Operations

The transaction ID for the order.

Snap Settings

Field NameField DependencyDescription
Label*N/A
Specify the name for the Snap. You can modify the default name to be specific and meaningful, especially if you have more than one of the same Snap in your Pipeline.

Default Value: Create Transaction
ExampleCreate_Transaction
Version*N/A

Specify the Shopify API version. Alternatively, click the Suggestion  icon to fetch the list of supported Shopify API versions and select a version.

Default Value: 2021-07
Example2021-04

Order Id*N/A

Specify the order ID for which you want to create a transaction.

Default Value: N/A
Example: ORD9

Number of RetriesN/A

Specify an integer value to set the maximum number of reconnection attempts that the Snap must perform, in case of connection failure or timeout.

Default Value: 1
Example: 2

Retry Interval (Seconds)N/A

Specify the duration in seconds for which the Snap must wait between two reconnection attempts, until the number of retries is reached.

Default Value: 1
Example: 2

Snap ExecutionN/A

Select one of the three modes in which the Snap executes. Available options are:

  • Validate & Execute: Performs limited execution of the Snap, and generates a data preview during Pipeline validation. Subsequently, performs full execution of the Snap (unlimited records) during Pipeline runtime.
  • Execute only: Performs full execution of the Snap during Pipeline execution without generating preview data.
  • Disabled: Disables the Snap and all Snaps that are downstream from it.

Default Value: Execute only
Example: Validate & Execute

Troubleshooting

ErrorReasonResolution

"402 Payment Required"

The requested shop is currently frozen. You need to log in as admin user and pay the outstanding balance to unfreeze the shop.
"404 Not Found"The requested resource is not found.The resource could be available again in the future.

"406 Not Acceptable"

The requested resource is only capable of generating content, but not acceptable according to the Accept headers sent in the request.N/A
"409 error"This is an intermittent error that you can encounter when there is a conflict in your orders, products, or customer data. For example, when you use unsupported characters.Check for the conflicts in your metadata and rerun the Pipeline.
"422 Unprocessable Entity"

The request body was well-formed but contains semantic errors. You can encounter a 422 error from a variety of scenarios including, but not limited to:

  • Formatting of the input is incorrect.

  • Checking out products that are out of stock.

  • Canceling an order that has fulfillments.

  • Creating an order with tax lines on both line items and the order.

  • Creating a customer without an email or name

  • Creating a product without a title.

The response body provides details in the errors or error parameters. Fix the error parameters as given in the error description.
"422 empty entity error"You might be sending null or empty or unsupported data. Check the data and fix the null or empty data.

"423 locked"

The requested shop is currently locked. Shops are locked if they repeatedly exceed their API request limit, or if there is an issue with the account, such as a detected compromise or fraud risk.

Wait for Shopify to unlock your account after the specified amount of time, after which you should be able to continue working on your Pipeline, or contact support if your shop is locked.

"429 Too Many Requests"Shopify APIs use different API rate-limiting methods. If the APIs exceeds the rate limit, the Snap fails.See the API Call Limit documentation for a breakdown of Shopify's rate-limiting mechanism.
"500 Internal Server Error"An internal error in Shopify application causes this error. Post the error details to the API and Technology forum so that Shopify staff can investigate the issue.

"501 Not Implemented"

The requested endpoint is not available on that particular shop, for example, requesting access to a Plus-specific API on a non-Plus shop. This response may also indicate that this endpoint is reserved for future use.N/A
"504 Gateway Timeout"The request could not complete in time. Shopify waits up to 10 seconds for a response.Break down the request in multiple smaller requests.

Example

Managing Order Transactions

This example Pipeline demonstrates how to manage transactions—starting from creating transactions for an order, performing an order operation, getting transactions, and finally deleting the order.
This Pipelines includes the following key steps:

  1. Creating an Order
  2. Creating a Transaction
  3. Performing order operations
  4. Getting Transactions

We use four Mapper Snaps to transform the data before each step.

Initially, we configure the JSON Generator Snap to pass the following data.

JSON Generator ConfigurationOutput

Next, we configure the first Mapper Snap to pass specific data relating to line items and tax amount. 

Upon validation, the Snap generates output as follows.

Create Order: We configure the Create Order Snap to create an order with the inputs (line items and tax amount) from the upstream Snap. Upon validation, we see the order details in the output preview of the Snap.

Create Order Snap ConfigurationOutput

Next, we configure the second Mapper Snap to pass the transaction data of the order as input to the downstream Snap.

Upon validation, the Snap generates the transaction data as follows.

Create Transaction: We configure the Create Transaction Snap to create a transaction for the order. Upon validation, we see the transaction details in the output preview of the Snap.

Create Transaction Snap ConfigurationOutput

Next, we configure the third Mapper Snap to pass the order details.

Upon validation, the Snap generates the output as follows.

Order Operations: We configure the Order Operations Snap to cancel the order. Upon execution the status of the order is displayed cancelled in the Shopify application.

Order Operations Snap ConfigurationOutput

Next, we configure the last Mapper Snap as follows.

Upon validation, the Snap generates the following output.

Get Transaction: We configure the Get Transactions Snap to get the transaction details for the created transaction. Upon validation, the Snap gets the transactions as we see in the output preview of the Snap.

Get Transaction Snap ConfigurationOutput

Delete Order: Finally, we configure the Delete Order Snap to delete the order. Upon validation, we see the status as success which indicates the order is deleted.

Delete Order Snap ConfigurationOutput

Download this Pipeline.

  File Modified

File Example_Shopify_Managing_Transactions.slp

Aug 14, 2021 by Kalpana Malladi


Snap Pack History

 Click here to expand...
Snap Pack Version 

Release

Date

Type

Updates

November 2024

main29029

 

Stable

Updated and certified against the current Snaplogic Platform release.

August 2024

main27765

 

Stable

Upgraded the org.json.json library from v20090211 to v20240303, which is fully backward compatible.

May 2024437patches27471 Latest

Fixed a resource leak issue with the Shopify Snaps, which involved too many stale instances of ProxyConnectionManager and significantly impacted memory utilization.

May 2024

main26341

 

Stable

Updated and certified against the current SnapLogic Platform release.

February 2024main25112 StableUpdated and certified against the current SnapLogic Platform release.
November 2023main23721 StableUpdated and certified against the current SnapLogic Platform release.
August 2023main22460 StableUpdated and certified against the current SnapLogic Platform release.

May 2023

main21015 

Stable

Upgraded with the latest SnapLogic Platform release.

February 2023main19844 StableUpgraded with the latest SnapLogic Platform release.
November 2022main18944 StableUpgraded with the latest SnapLogic Platform release.
August 2022main17386 StableUpgraded with the latest SnapLogic Platform release.
4.29main15993 StableUpgraded with the latest SnapLogic Platform release.
4.28main14627 StableUpgraded with the latest SnapLogic Platform release.
4.27main12833 StableUpgraded with the latest SnapLogic Platform release.
4.26 

main11181

Latest

Introduced the Shopify Snap Pack that enables businesses to set up an online store and sell their products online with ease. You can use this Snap Pack to create orders, products, customers, and run automated workflows. This Snap Pack offers the following Snaps:


See Also