Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...


Note
titleGeneral Guidelines. Remove Before Publishing.
  • Always use title casing for Heading formats 1 and 2.
  • Always use active voice.
  • Do not use "Please" anywhere in the document.
  • Screenshots
    • Always use the New Form UI.
    • Be optically similar. Max size 1000 px or corresponding gridline size as in the style guide.
    • Do not capture Snap borders when showing configurations in the Examples section. You can add a border in the editor here.
    • See Image Style Guidefor details.
  • Examples must always use first-person plural references. You can use the second-person if needed depending upon the example's content.

In this article

Table of Contents
maxLevel2
absoluteUrltrue

Overview

Use this Snap to...

Prerequisites

  • Valid client ID.
  • A valid account with the required permissions.

None.

Support for Ultra Pipelines

Capture if Ultra Mode is supported. If the Snap requires certain configurations to support Ultra mention those as well.   

Limitations

In this article

Table of Contents
maxLevel2
absoluteUrltrue

Overview

You can use this Snap to generate refund transactions for an order.

Image Added

Prerequisites

None.

Support for Ultra Pipelines

Works in Ultra Pipelines

Limitations

Excerpt
  • 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



Info
titleShopify Behavior
  • Order discount is applied for invalid discount codes also. The discount percentage or amount is allotted more than percentage/amount set for valid discount code. For example, summer20 is a valid discount code, which should apply 20% of discount. However, if we provide discount percentage as 50%, then it applies 50% discount ignoring the set discount percentage.
  • 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

Binary

Binary or

Document


  • Min:1
  • Max:1
  • Mapper
Snap
  • Copy
Snap
  • ..
  • Requires the EDI data and internal ID as a JSON document.Output

    Document

    Binary

    Binary or

    The order details, such as time of order creation, order ID, order note, amount, and currency code.

    Output

    Document


    • Min:1
    • Max:
    • ..
    • ..
    The EDI transaction ID and order confirmation
    • 1
    • Mapper
    • Get Order
    • Order Refund
    • Group By N

    Retrieves a specific refund.

    Snap Settings

    ...


    Field Name

    ...

    titleDocumenting Fields Based On Data Type/UI Element

    **Delete Before Publishing**

    Choose from the following sentences to document specific field types.

    ...

    Field 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: Calculate Order Refund
    Example: Ord_354

    Version*N/A

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

    Default Value: 2021-07
    Example: 2021-04

    Order Id*N/ASpecify a unique identifier for the order.

    Default Value: N/A
    Example: Ord_254

    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: 5

    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

    ...

    Check boxes:

    • If selected, <Snap behavior>.
      If selected, an empty file is written when the incoming document has no data.
    • If selected, <behavior>. If not selected/Otherwise, <behavior>
      Use "If not selected" if the first sentence is long.
      If selected, the Snap uses the file path value as is. Otherwise, the Snap uses the file path value in the URL.
      If selected, an empty file is written when the incoming document has empty data. If there is no incoming document at the input view of the Snap, no file is written regardless of the value of the property.
    • Select to <action>
      Use this if the behavior is binary. Either this or that, where the converse behavior is apparent/obvious.
      Select to execute the Pipeline during validation.

    Text Fields

    • Describe what the user must/must not do. Additional details, as applicable, in a separate sentence. Include caveats such as the field being conditionally mandatory, limitations, etc.
      The name of the account.
      Enter the account ID that you want to use to log in to the endpoint.
      Required if IAM Role is selected.
      Do not use this field if you are using batch processing.

    Numeric Text Fields

    • Describe what the user must/must not do. Additional details, as applicable, in a separate sentence. Include caveats such as the field being conditionally mandatory, limitations, etc. Include special values that impact the field's behavior as a bullet list.
      Enter the number of records in a batch.
      Enter the number of seconds for which you want the Snap to wait between retries.
      Enter the number of seconds for which the Snap waits between retries.
      Use the following special values:
      * 0: Disables batching.
      * 1: Includes all documents in a single request.

    ...

    Field Sets

    Specify advanced parameters that you want to include in the request.

    This fieldset consists of the following fields:

    • Field 1
    • Field 2
    • Field 3

    Troubleshooting

    ...

    Batch execution failed

    ...

    The Pipeline ended before the batch could complete execution due to a connection error.

    Verify that the Batch size field is configured to handle the inputs properly. If you are not sure when the input data is available, configure this field as zero to keep the connection always open.

    Examples

    Excluding Fields from the Input Data Stream

    We can exclude the unrequired fields from the input data stream by omitting them in the Input schema field set. This example demonstrates how we can use the <Snap Name> to achieve this result:

    <screenshot of Pipeline/Snap and description>

    Download this Pipeline. 

    Downloads

    Note
    titleImportant Steps to Successfully Reuse Pipelines
    1. Download and import the Pipeline into SnapLogic.
    2. Configure Snap accounts as applicable.
    3. Provide Pipeline parameters as applicable.
    • all Snaps that are downstream from it.

    Default Value: Execute only
    Example: Validate & Execute


    Insert excerpt
    Create Order
    Create Order
    nopaneltrue

    Example

    Calculating Refund For An Order

    This example Pipeline demonstrates how to calculate refund for an order and subsequently create an Order Refund using the Calculate Order Refund and Create Order Refund Snaps.

    Image Added

    First, we pass the following customer and order data using the JSON Generator Snap.

    Paste code macro
    titleCustomer and Order Data
    [
        {
            "email": "john.doe@snaplogic.com",
            "phone": "9533322211",
            "test": true,
            "line_items": [
                {
                    "variant_id": 40273525866686,
                    "product_id": 6863881928894,
                    "quantity": 1
                }
            ],
            "transactions": [
                {
                    "kind": "sale",
                    "status": "success",
                    "amount": 5000
                }
            ],
            "billing_address": {
                "address1": "Sector-1",
                "address2": "Apartment 5",
                "city": "Vishakapatnam",
                "company": null,
                "country": "India",
                "first_name": "John",
                "last_name": "Doe",
                "phone": "9533322211",
                "province": "AP",
                "zip": "530046",
                "name": "John",
                "country_code": "IN"
            },
            "shipping_address": {
                "address1": "Sector-1",
                "address2": "Apartment 5",
                "city": "Vishakapatnam",
                "company": null,
                "country": "India",
                "first_name": "John",
                "last_name": "Doe",
                "phone": "9533322211",
                "province": "AP",
                "zip": "530046",
                "name": "John",
                "country_code": "IN"
            }
        }
    ]

    Upon validation, we see the following data in the output preview of the Snap.

    Paste code macro
    titleCustomer and Order Data Output
    [
    	{
    		"email":"john.doe@snaplogic.com"
    		"phone":"9533322211"
    		"test":true
    		"line_items":
    	[
    	{
    		"variant_id":40273525866686
    		"product_id":6863881928894
    		"quantity":1
    	}
    ]
    		"transactions":
    [
    	{
    		"kind":"sale"
    		"status":"success"
    		"amount":5000
    	}
    ]
    		"billing_address":
    	{
    		"address1":"Sector-1"
    		"address2":"Apartment 5"
    		"city":"Vishakapatnam"
    		"company":null
    		"country":"India"
    		"first_name":"John"
    		"last_name":"Doe"
    		"phone":"9533322211"
    		"province":"AP"
    		"zip":"530046"
    		"name":"John"
    		"country_code":"IN"
    }
    		"shipping_address":
    	{
    		"address1":"Sector-1"
    		"address2":"Apartment 5"
    		"city":"Vishakapatnam"
    		"company":null
    		"country":"India"
    		"first_name":"John"
    		"last_name":"Do"
    		"phone":"9533322211"
    		"province":"AP"
    		"zip":"530046"
    		"name":"Rohit"
    		"country_code":"IN"
    		}
    	}
    ]
    
    
    

    Next, we configure the Create Order Snap to create an order. On validation, the Snap creates an order.

    Create Order Snap ConfigurationOutput

    Image Added

    Image Added

    Next, we configure the first Mapper Snap to map the ID against the Order Id column.
    Image Added

    Upon validation, the Snap generates the following data in the output preview of the Snap.
    Image Added

    Next, we configure the JSON Splitter Snap to split each item in the line items into separate documents. We specify the $line_items for Json Path and $order_id (path of the object) for Include Path to include in the output.
    Image Added

    Upon validation, we see the value for each line item in the order separately.
    Image Added

    Next, we configure the second Mapper Snap to map the following attributes in the line item.
    Image Added

    Upon validation, the Snap generates the line item data as configured.
    Image Added

    Next, we use the Group by Fields Snap to group the line items by Order ID. However, we are only interested in refund line items; hence, we specify refund_line_items in the Target field. Upon validation we see the list of items grouped under refund_line_items object.

    Group By Fields Snap ConfigurationOutput

    Image Added

    Image Added

    Next, we use the Mapper Snap to pass the refund line items output from the upstream Snap to calculate order refund subsequently.
    Image Added

    Upon validation, the Snap generates the refund order data as follows.
    Image Added

    Next, we configure the Calculate Order Refund Snap to calculate the refund for the order.
    Image Added

    Upon validation, the Snap generates the status of the refund (full refund in this case) and other details, such as quantity, line_item_id, orderId, and location_id.
    Image Added

    Next, we use the fourth and the last Mapper Snap in our Pipeline to pass the details as highlighted below to use the Snap's output in the downstream Snap for creating an order refund.
    Image Added

    We configure the Create Order Refund Snap to create a refund for the order.
    Image Added

    Upon validation, the Snap generates a refund for the order and we can view the related refund data in the output preview of the Snap.
    Image Added

    We further use the JSON formatter Snap to format the JSON file, and write the document on to SL database using the File Writer Snap.

    Download this Pipeline.


    Downloads

    Multiexcerpt include macro
    namedownload_instructions
    pageOpenAPI


    Attachments
    patterns*.slp, *.zip


    Insert excerpt
    XYZ Shopify Snap PackXYZ
    Shopify Snap Pack
    nopaneltrue

    ...

    See Also