Integration With Netsuite

Last Updated: December 4, 2024

ReturnGO integrates with NetSuite to help you streamline your returns management. NetSuite is an all-in-one ERP cloud business management solution that helps organizations operate more effectively by automating core processes and providing real-time visibility into operational and financial performance.

Capabilities 

The ReturnGO-NetSuite integration supports:

  • Creating a Credit Memo in Netsuite once items are both refunded and validated.

Limitations

  • Exchanges do not generate a credit memo.

Requirements

To connect your NetSuite account to ReturnGO, you’ll need the following information:

  • Account ID
    • Numbers only
  • Consumer Key
  • Consumer Secret
  • Token ID
  • Token Secret

Linking Your NetSuite Account to ReturnGO 

To link your NetSuite account to ReturnGO: 

  1. Go to Integration > Products & Services
  2. Click on +ADD PRODUCT OR SERVICE. 
  3. Choose NetSuite from the drop-down list. 
  4. Click on the check mark.

5. Enter your credentials. 
6. Click CONNECT. 

Once you've connected the integration via ReturnGO:

  1. Go to your NetSuite dashboard.
  2. Go to Setup > Integrations > Manage integrations.
  3. Open the integration you created for ReturnGO.
  4. In the Authentication section, check:
    1. Token-based Authentication
    2. TBA: issuetoken Endpoint
    3. TBA: Authorization Flow
  5. The Callback URL should be set to "https://app.returngo.ai/oauth-response"
  6. Check User Credentials.

Setting Integration Updates per Return Method

Configure your return methods to update Netsuite for each return method, so that the ERP will be notified about returns.

Note: This setting can be configured for all return method types except No shipment required.

To configure your Netsuite integration per return method:

  1. Go to Settings > Return Methods.
  2. Select the return method you want to configure.
    Method1-png-1
  3. Open the Return Address and Restocking Location section.
  4. Set whether to update Netsuite for this return method.
    1. The default is Do not update.
    2. If you have multiple connections, choose which one you want to update for returns that use this return method.
  5. Click on the save icon to save your changes.

    Peoplevox-method-png

Configuring Field Mapping for Credit Memo

You can upload a JSON config file to map the required fields for creating a credit memo on NetSuite. This enables you to configure the specific data you want ReturnGO to transmit when creating a Credit Memo.

ReturnGO will use the provided mapping to automatically populate the relevant fields on the Credit Memo.

Note: This is particularly useful for more advanced users who have a developer and need to customize the information sent to NetSuite.

Fields:

  • ReturnGOField - The name of the property as it's used on ReturnGO. 
    • On some fields in the config file, this may appear as targetField
  • SourceField - The name of the property as it's used on Netsuite.

Using the config file, you can set the following fields according to your requirements:

  1. Sales Order fields
  2. Customer details
  3. Department details
  4. Return method details
  5. Currency information

Sample JSON File

{

  "fieldsMappingOnSalesOrder": [
    {
      "sourceField": "otherRefNum",
      "returnGOField": "orderName"
    }
  ],
  "fieldsMappingOnItem": [
    {
      "sourceField": "shop_skuforprint",
      "returnGOField": "sku"
    }
  ],
  "creditMemoConfig": {
    "fieldsToCopy": {
      "customForm": {
        "id": "151",
        "refName": "Shop Name Credit Note"
      },
      "shopname_shopify_source_name": "web",
      "shopname29": "online"
    },
    "fieldsToSetFromReturnGO": [
      {
        "targetField": "shopnametotal_refund_with_tax",
        "sourceField": "totalRefunded"
      },
      {
        "targetField": "shopname_refund_type",
        "sourceField": "provider"
      },
      {
        "targetField": "exchangerate",
        "sourceField": "exchangeRate"
      }
    ],
    "fieldsToSetFromSalesOrder": [
      {
        "targetField": "memo",
        "sourceField": "memo"
      },
      {
        "targetField": "otherRefNum",
        "sourceField": "otherRefNum"
      },
      {
        "targetField": "shopname_sps_ponum_from_salesorder",
        "sourceField": "otherRefNum"
      },
      {
        "targetField": "billAddress",
        "sourceField": "billAddress"
      },
      {
        "targetField": "shopname_order_id",
        "sourceField": "shopname_order_id"
      },
      {
        "targetField": "shopname_sales_channel",
        "sourceField": "",
        "subFieldsMapping": [
          {
            "targetField": "id",
            "sourceField": "shopname_sales_channel.id"
          },
          {
            "targetField": "refName",
            "sourceField": "shopname_sales_channel.refName"
          }
        ]
      },
      {
        "targetField": "entity",
        "sourceField": "",
        "subFieldsMapping": [
          {
            "targetField": "id",
            "sourceField": "entity.id"
          }
        ]
      },
      {
        "targetField": "department",
        "sourceField": "",
        "subFieldsMapping": [
          {
            "targetField": "id",
            "sourceField": "department.id"
          },
          {
            "targetField": "refName",
            "sourceField": "department.refName"
          }
        ]
      },
      {
        "targetField": "shopname_sales_channel_customercategor",
        "sourceField": "",
        "subFieldsMapping": [
          {
            "targetField": "id",
            "sourceField": "shopname_sales_channel_customercategor.id"
          },
          {
            "targetField": "refName",
            "sourceField":

"shopname_sales_channel_customercategor.refName"

          }
        ]
      },
      {
        "targetField": "shopname_shopify_store",
        "sourceField": "",
        "subFieldsMapping": [
          {
            "targetField": "id",
            "sourceField": "shopname_shopify_store_id"
          },
          {
            "targetField": "refName",
            "sourceField": "shopname_shopify_store.refName"
          }
        ]
      },
      {
        "targetField": "shopname_channel",
        "sourceField": "",
        "subFieldsMapping": [
          {
            "targetField": "id",
            "sourceField": "shopname_channel.id"
          },
          {
            "targetField": "refName",
            "sourceField": "shopname_channel.refName"
          }
        ]
      },
      {
        "targetField": "shopname26",
        "sourceField": "",
        "subFieldsMapping": [
          {
            "targetField": "id",
            "sourceField": "shopname26.id"
          },
          {
            "targetField": "refName",
            "sourceField": "shopname26.refName"
          }
        ]
      }
    ],
    "returnMethodMapping": {
      "Ship with prepaid label (EU returns)": {
        "location": {
          "id": "670",
          "refName": "AMS: STORE NAME RETURNS (UK)"
        }
      },
      "Ship with prepaid label (Netherlands returns)": {
        "location": {
          "id": "671",
          "refName": "AMS: STORE NAME RETURNS (NL)"
        }
      },
      "Ship with prepaid label (UK returns)": {
        "location": {
          "id": "670",
          "refName": "AMS: STORE NAME RETURNS (UK)"
        }
      }
    },
    "currencyMapping": {
      "AUD": {
        "id": "1"
      },
      "USD": {
        "id": "2"
      },
      "CAD": {
        "id": "3"
      },
      "EUR": {
        "id": "4"
      },
      "GBP": {
        "id": "5"
      },
      "INR": {
        "id": "6"
      },
      "SGD": {
        "id": "7"
      },
      "HKD": {
        "id": "10"
      },
      "NZD": {
        "id": "12"
      },
      "AED": {
        "id": "13"
      }
    }
  },
  "creditMemoItemConfig": {
    "fieldsToCopy": {
      "price": {
        "id": -1
      }
    },
    "fieldsToSetFromReturnGOItem": [
      {
        "targetField": "shopname_return_reason",
        "sourceField": "returnReason"
      },
      {
        "targetField": "shopname_returndetails",
        "sourceField": "extendedReason"
      },
      {
        "targetField": "rate",
        "sourceField": "refundedAmountWithoutTax"
      }
    ],
    "fieldsToSetFromSalesOrderItem": [
      {
        "targetField": "item",
        "sourceField": "",
        "subFieldsMapping": [
          {
            "targetField": "id",
            "sourceField": "item.id"
          }
        ]
      }
    ]
  }
}

To upload the config file:

  1. Go to Settings > Integrations > Products & Services.
  2. Open the Netsuite integration box.
  3. In the Credit Memo Config in JSON Format field, paste the contents of the config file.
  4. Click on the save icon to confirm.


Troubleshooting the Integration 

Many of the issues encountered related to integration can be identified during setup. 

Here are a few things you can check to try and fix such issues: 

Setup Issues 

Make sure your API credentials are accurate. 

  • There should be no extra spaces before or after each API entry. 
  • Make sure you are using live or production API credentials, and not dev or test APIs. 
  • Try to re-generate a new API key and reconnect. 

NetSuite-Related Issues 

For NetSuite-related issues, please contact NetSuite support.

For any other issues, feel free to contact ReturnGO support through chat or email.