ShipHero Integration

💡 System Overview, Purpose, and Scope

ShipHero is WMS software that enables easier shipping for e-commerce brands and 3PLs. ShipHero is a SAAS product.

For example, whenever a new order is placed on any online store, that item has to be shipped to the shopper which can be done either by the merchant directly (in this case, the merchant will need to maintain their inventory at their own location, hire staff, etc. which is a big burden) or merchants can outsource their warehouse operations to one of the agencies (like Sauceda Industries - a company which has warehouses where they maintain the inventory for the merchants)


  1. Whenever a new order is placed on the merchant's online store, the details of that order and the shipment label details that the shopper has paid for, are sent to ShipHero via Shopify ↔ ShipHero integration medium
  2. The agent responsible for that merchant's fulfillment queue will release that item from the warehouse to the shopper's address
  3. Now let's say that the shopper didn't like the item he/she purchased and want to return the item. THIS IS WHERE RETURN RABBIT ↔ SHIPHERO INTEGRATION COMES IN.
  4. The shopper will visit Return Rabbit Customer Portal and create a new Service Request for their order - the details of this SR will be relayed to ShipHero which enables them to see that a package with x number of specific items is inbound.
  5. Now, the shopper will ship the package to the address of the warehouse wherein the agent will inspect the package and the items and either mark the RMA as approved or rejected which enables Return Rabbit to automatically act on this SR further.

SCOPE: Return Rabbit & Shiphero only interact with each other in regards to return packages being shipped by the shoppers back to the merchants

💡 Glossary

  1. RMA (Return merchandise authorization) - equivalent to an Order Service / Service Request in Aspen
  2. Return Rabbit internal terms - SR [Service Request] is the same as OS [Order Service]

💡 Description of Integration

  1. Whenever any new SR is created in Return Rabbit, that data is sent to ShipHero (a new RMA is created)
  2. Once an RMA has been created within ShipHero, Return Rabbit receives any updates done on that RMA via webhooks. Aspen will only consider the webhooks where RMA status is any of the following: ['manual_approval', 'manual approval', 'warehouse_completed', 'warehouse complete']
  3. The difference between MANUAL_APPROVAL & WAREHOUSE_COMPLETE is that manual approval will mark a request to be approved manually from admin interface irrespective of the automation rules but WAREHOUSE_COMPLETE will process the request similar to how it would have exactly happened if authorised at warehouse interface within Return Rabbit i.e. if automation rules are enabled, the refund/exchange will get auto-issued without the need for manual approval from admin interface
  4. Given that step 2 above is fulfilled, the individual items in the request are either approved/rejected depending on whether the value of quantity == quantity_received or not. Let's say there are 2 quantities of any particular item coming in so value of quantity will be 2 but warehouse only finds 1 quantity which can be approved so value of quantity_received is 1. In this case, the entire retex with 2 quantities will get rejected since there's no support of partial retex approval in RR right now.
  5. Whether the item has to be restocked within Shopify or not (while performing refund) depends on the fact whether value of quantity == value of restock in the sample data object above.

💡 Responsibilities

  1. Return Rabbit and ShipHero systems interact to share information around any inbound packages i.e. any returns coming in from the shoppers back to the merchant
  2. ShipHero's system is primarily responsible for informing Return Rabbit about 2 main things:
    1. What items in the package are approved/rejected
    2. What items in the package can be resold or have to be scrapped (depending this information Return Rabbit will either restock or won't in Shopify while performing refunds)

💡 Activities, Tasks & Scheduled Jobs

  1. We get updates on RMAs right now via webhooks so we don't have any polling/scheduled jobs. But we do have polling support built in Return Rabbit so that in case webhooks systems ever go down, we can use polling as a backup method.