Skip to main content
Instant Exchanges

Learn more about our Instant Exchanges feature.

Michel Mongeau avatar
Written by Michel Mongeau
Updated over 9 months ago

Please note that Instant Exchanges is only available for Shopify Merchants at this time.

Article Overview:


How to Setup Instant Exchanges

Copy/Paste Script 1 in Shopify:

  1. Log in to Shopify

  2. Navigate to Settings at the bottom-left corner of the page

  3. In the sidebar on the left click ‘Checkout’

  4. Scroll towards the bottom of the page to the Order Status Page section

  5. In the "additional scripts" input box, copy/paste Script 1 below

  6. Hit save at the top right of the page

Script 1:

<script>
function attemptRedirect(retriesLeft) {
const key = `ReturnLogic-additionalScriptUrl-${Shopify.checkout.order_id}`;
const remoteScriptUrl = sessionStorage.getItem(key);
if (remoteScriptUrl) {
let scriptElement = document.createElement('script');
scriptElement.src = remoteScriptUrl
document.head.appendChild(scriptElement);
}
else if (retriesLeft > 0) {
setTimeout(function() {
attemptRedirect(retriesLeft - 1);
}, 200);
}
}
attemptRedirect(50);
</script>


Copy/Paste Script 2 in Shopify:

  1. While still in Shopify, navigate to the ‘Customer Events’ option in the settings sidebar

  2. Click ‘Add Custom Pixel’ in the top, right-hand corner

  3. Name the pixel (we strongly recommend ReturnLogic Checkout) and click "Add pixel"

  4. Navigate to line 9 in the code section

    1. This is directly under the commented out code that says ‘Step 2.’

  5. Copy/paste Script 2 below

  6. Click Save in the top right-hand corner

  7. Hit "Connect" in either the bottom or top right-hand corner and agree to the terms.

    1. Note: If you do not accept the terms, you will not be able to use our Instant Exchanges feature.

Script 2:

analytics.subscribe('checkout_completed', event => {
sessionStorage.setItem('Shopify-checkout', JSON.stringify(event.data.checkout));
const urlIndex = event.data.checkout.attributes.findIndex(attribute => attribute.key === 'ReturnLogic');
const url = event.data.checkout.attributes[urlIndex].value;
console.log({ url });
delete event.data.checkout.attributes[urlIndex];

if (url) {
let pixelElement = document.createElement('script');
pixelElement.src = url + '?externalOrderId=' + event.data.checkout.order.id;
document.head.appendChild(pixelElement);

fetch(url + '?externalOrderId=' + event.data.checkout.order.id, {
method: "GET",
headers: {
"Content-Type": "application/json",
},
}).then(response => response.json())
.then((pixelScriptUrl) => {
console.log("Response:", pixelScriptUrl);
let pixelElement = document.createElement('script');
pixelElement.src = pixelScriptUrl;
document.head.appendChild(pixelElement);
})
.catch(error => {
console.error("Error:", error);
});
}
});

Confirm Setup in ReturnLogic:

  1. Navigate to ReturnLogic Settings

  2. Click on the Originate Tab dropdown in the sidebar and select ‘Exchanges’

  3. Select "Setup Instant Exchanges"

  4. Confirm you have added Scripts 1 and 2 into your Shopify store by hitting the confirmation box and hit "Continue" to enable Instant Exchanges

Implementation Tip:

For the best experience, we recommend setting your Shopify store's payment capture method to "Automatically at checkout". This will impact all of your orders in your Shopify store, but it will also allow you to capture payment of the exchange order. So even if your customer doesn't send the item(s) back, you still collect the full payment on the exchange order. You can do this under your Shopify settings under "Payments".


How Instant Exchanges Works

Instant Exchanges affects your Customers, Customer Service Team and your Warehouse Team differently.

How Does Instant Exchanges Affect My Customers:

  • Upfront Invoice Payment: The shopper will now be directed to pay their invoice through Shopify Payments when submitting their upsell exchange request*. Because this process is done through Shopify Payments and not a third party provider, all of your financial information will be in Shopify, mitigating the risk of having to reconcile books for accurate financial data.

  • Out of Stock Products: If a customer selects an out of stock product and tries to checkout, the customer will now be alerted that the chosen replacement is out of stock. The customer will then be redirected to the catalog to select a new replacement, mimicking the standard Shopify "out of stock" experience when purchasing through your store.

  • Prompts to Finish their RMA: If a shopper does not pay their invoice for an upsell exchange request* and re-enters the Return Center, the shopper will be prompted to either complete their previously started return request. If they opt to start a new return request, the old RMA will be deleted.

How Does Instant Exchanges Affect My Customer Service Team:

  • Abandoned RMAs: Customer Service team members will now be able to find and filter by RMAs that were abandoned. They will have the ability to easily copy/paste a direct link to the shopper's checkout cart to encourage the shopper to complete their upsell exchange request* in addition to clearly seeing outstanding balance amounts on the RMA Details Page without having to go into Shopify.

  • Overselling Restrictions: Customer Service team members will no longer be able to add products to an exchange order if those products are out of stock in Shopify and not allowed for overselling in Shopify. This will apply even if overselling is allowed in ReturnLogic.

  • RMA Adjustment Restrictions: Because the customer is paying upfront for their new item and will have already paid the invoice when submitting the RMA, Customer Service team members cannot modify the financial sections of an RMA after it's been paid. These financial sections include:

    • Exchange Type

    • Bonus Credit

    • Sales Tax

    • Discounts

    • Shipping

    • Deductions and Fees

How Does Instant Exchanges Affect My Warehouse Service Team:

  • Fulfillment Holds: After a customer pays their invoice and submits their RMA, ReturnLogic will put a Shopify Fulfillment hold on the order. This hold will not be removed until the RMA is processed in ReturnLogic. Immediately after the RMA is processed, we will remove the fulfillment hold and the order will become available for fulfillment.

    • Note: If you have automatic authorization and automatic processing turned on for exchanges, the order will behave as any other standard order from your store. Meaning the order will be released immediately for fulfillment, providing an instant exchange for the customer.

*An upsell exchange requests is an exchange request that results in an invoice greater than $0. This could be through selecting a more expensive item in your catalog as an exchange replacement or through selecting a more expensive variant (for those merchants who charge an additional fee for certain variants of a product).


New Shopper Experiences (Videos)

New Shopper Experience: Instantly pay invoices

New Shopper Experience: Finish an Abandoned RMA


Instant Exchanges: Recommended Configurations

ReturnLogic is capable of supporting an endless variety of workflows which is great for building a return process that works best for you and your customers! At times though, it can be overwhelming with so many options at your fingertips. To help you take advantage of all Instant Exchanges now offers, we recommend the following setting configurations:

Fully-automated Instant Exchanges:

For merchants who want to provide a great customer experience regardless of fraud risk:

Setting Name

Configuration

RMA Authorization

On

Automatic Processing - Exchanges

On - "Upon Creation"

Semi-automated Instant Exchanges:

For merchants who want to provide a great customer experience while balancing fraud risk:

Setting Name

Configuration

RMA Authorization

On

Automatic Processing - Exchanges

On - "In Transit"

Risk-adverse, semi-automated Instant Exchanges:

For merchants who want to automate and decrease fraud risk, even if it impacts the customer experience:

Setting Name

Configuration

RMA Authorization

On

Automatic Processing - Exchanges

On - "Received"

To best protect you and your business against Returns Fraud opportunists and delight your customers, we recommend using the semi-automated Instant Exchanges workflow. This will, at minimum, guarantee the customer shipped something back before you send the customer their new product while also providing a faster turn around time on the exchange for the customer.


Abandoned Returns

What is an abandoned return?

An abandoned return is created when a customer is prompted to pay the invoice generated by an upsell exchange, but exits the process before paying and submitting their RMA.

This is a new status within the ReturnLogic ecosystem. By assigning the "abandoned" status to upsell opportunities that have been abandoned, ReturnLogic is able to help eliminate excess noise in the return process and give the Customer Service team an opportunity to help close outstanding revenue opportunities.

Bonus Benefit: If you have the “Cart Reminders” email active in Shopify, your shoppers will get an email reminder to finish their checkout for their abandoned return request.

Note: This "Cart Reminders" email goes out for all abandoned carts regardless of whether or not they're driven by the returns process; thus, we do not recommend changing the verbiage of those email templates to be return-specific.


Shopify Reporting

You will easily be able to see the discount codes that are generated through the Instant Exchange process. To do this, you need to follow the steps below:

  1. Navigate to your Shopify store

  2. Click “Discounts” the left hand nav bar

  3. Type "Return Logic Exchange Credit” in the search bar

This will show you every single discount code that was generated through Instant Exchanges. We also reference the RMA number in the title of the discount as well for easier cross-referencing in case you or your team members are looking for a specific instance.

For further data analysis, you can export the view.


FAQs

Already have scripts in your Shopify Checkout settings?

If you have existing code in that section, make sure the <script> tags are not are not nested inside another <script> tag.

This is an example of how it should look:

<script>[RL Code Block]</script> <script>[Some other 3rd-party code]</script>

This is an example of how it shouldn’t look:

<script><script>[RL Code Block]</script>[Some other 3rd-party code]</script>

What if my 3PL doesn't respect or listen to Shopify Fulfillment Holds?

If your 3PL or warehousing team does not respect the Shopify fulfillment hold, as soon as the shopper pays the invoice in the Return Center, their exchange order will be fulfilled. This will happen regardless of RMA status, as the invoice of the payment will create a live order in your store. Without the fulfillment hold, the live order will be sent for fulfillment immediately.

Are warranties impacted?

No. All warranties, regardless of whether or not they generate an invoice, will go through pre-existing workflows based on your setting configurations.

Are all exchanges impacted?

No, only upsell exchanges are impacted. Variant exchanges or Full Catalog Exchanges that do not result in an invoice being generated will go through pre-existing workflows based on your setting configurations.

*What is an upsell exchange request?

An upsell exchange requests is an exchange request that results in an invoice greater than $0. This could be through selecting a more expensive item in your catalog as an exchange replacement or through selecting a more expensive variant (for those merchants who charge an additional fee for certain variants of a product).


We're here to help! Email us at support@returnlogic.com or use the live chat inside the platform with any questions or feedback.

Did this answer your question?