Shopify is a hosted ecommerce platform in use by over 250,000 merchants from small to large. Shipwire has built an integration via an App available in the Shopify App Store.
|Who developed integration:||Shipwire|
|Status:||No known issues
On this page
- Connecting Shipwire with Shopify
- Setting up carrier-calculated shipping
- Configuring Shopify products for Shipwire fulfillment
- Additional Information and Troubleshooting Tips
Order Entry – Orders are submitted to Shipwire from your e-commerce store automatically via our Order Entry API. Once your online store receives an order, Shipwire takes care of the rest.
Order Tracking – All tracking information related to completed shipments is pushed automatically, including tracking information.
Inventory Status – Inventory counts are synced with your store from our warehouses.
Shipping Rates – Obtain real-time shipping rates at any time during checkout. Shipwire will return the most cost-effective rates, choosing from the best warehouse, packaging, and carrier available based on your Optimizer preferences. Please note this feature requires access to Shopify’s Carrier Services API, which is not included in all Shopify plans.
Connecting Shipwire with Shopify
Follow these steps to connect your Shipwire account with your Shopify store.
- First, if you would like to include real-time shipping rates from your Shipwire account in your Shopify checkout, you will need to determine if carrier-calculated shipping is activated within your Shopify account. Go to Settings > Shipping in your Shopify control panel and scroll down to the “Shipping zones” section. If you encounter the notice that states “Your current plane doesn’t offer this feature” (see screenshot below), then you will need to contact Shopify Support to switch to a plan with the Carrier Service API enabled before continuing with installation. If, instead of this notice, you see “Carrier-calculated shipping” with a link to “Manage carriers”, then you are all set and may continue with the instructions.
- If you do not enable Shipwire real-time rates for your connection, or choose to use some additional shipping options in your Shopify store, please read the incorrect shipping types section below with important information on how to make sure your shipping types are recognized properly when they get pulled into Shipwire.
- Visit the Shipwire App page in the Shopify App Store and click “Get”
- If you are not already logged in to your Shopify store, you will be asked to enter your store URL and login information
- Once logged in, you will be presented with the option to either create a new Shipwire account by filling in your details, or, if you have an existing account, click the blue “Login” text to the right by “Already have a Shipwire account?”
- Provide a name for the connection (if you have more than one Shopify store, this will help you distinguish between them in your Shipwire account), and choose the specific features you would like to enable, and agree to the terms. “Fulfillment service” should be checked if you plan to use Shipwire to fulfill some or all of your orders. Checking this does not automatically tag your products for Shipwire fulfillment, it just surfaces Shipwire as an available fulfillment method within Shopify. You will need to select which products you would like Shipwire to fulfill. For “Carrier service”, if you do not use Shipwire to fulfill all of your products, you may want to uncheck this feature, as there is not currently a way to blend shipping rates when some items on the order are being fulfilled by Shipwire and others are not. Checking “Carrier service” allows you to present Shipwire-provided rates to your customers at checkout. Shipwire quotes shipping costs from the warehouse containing inventory closest to your customer, in the correct box size, and also shops rates across all available carriers to return the best rates for each service level (ground, 1 day, 2 day). The service allows you to add or subtract a certain dollar amount or percentage from the rates returned. Shipwire rates will only be included in your checkout flow when products with SKUs that exist in your Shipwire account are included in a customer’s cart. The “Include pending stock as inventory on-hand” option will add product that is on its way to Shipwire (not yet received) as part of sellable inventory count in Shopify. The “Display messages on packing list” option will cause the contents of the Shopify “Note” field on orders to show on the packing list printed at one of our warehouses. This is great for including gift messages.
- Confirm installation of the App with Shopify
Setting up carrier-calculated shipping
As long as you had the “Carrier service” feature checked when you installed the Shipwire App, you will have had a new Shipping Rate named “Shipwire App” added to your store for each region. This is visible at Settings > Shipping in the Shopify control panel. We recommend deleting any other rates (click the rate and then click the “Delete rate” button) so that the only options presented are Shipwire-provided rate quotes. Also, if you would like, you may add or subtract a certain amount from the Shipwire-provided rate quotes by clicking the “edit” link next to the rates for “Shipwire App”.
IMPORTANT: For best results, do not mix the Shipwire rating module with Shopify’s carrier specific modules (FedEx, UPS, USPS). The carrier-specific modules do not have the concept of multiple warehouses in multiple countries and can only generate a single price from the location you have designated in your Shopify store.
Configuring Shopify products for Shipwire fulfillment
Now that the Shipwire App is installed, you can configure individual products to be fulfilled, as well as set product inventory levels to be kept in sync using the Shipwire real-time inventory service.
IMPORTANT: You must add products to Shipwire before setting the matching product in Shopify to be fulfilled by “Shipwire App”. Please also ensure that the SKUs are entered exactly the same into Shipwire and Shopify. SKUs are case-sensitive in Shopify. Ie “ABC123″ and “abc123″ are recognized by Shopify as different SKUs, and if you have one version in Shipwire, and the other in Shopify, the integration will not work correctly (at the very least, inventory will not sync at all). Please see the Configure and store product section of our support area for more details.
- Use the left navigation bar to to select the Products tab. If you have not created a product, do so by clicking the Add a product button and proceed to the next step. You may also click the Import products link below it to upload a CSV spreadsheet.
- Scroll to the Inventory & variants section, which is part of the Add a product workflow. Under “Fulfillment”, select “Shipwire App” from the drop down menu. If you would like, under “Inventory policy”, you may choose “Shipwire App tracks this variant’s inventory”. Then click “Save and close”. If you choose this, your product inventory levels will be updated on an hourly basis with a real-time count from your Shipwire account. In between updates from Shipwire, your product will use Shopify’s inventory management system to ensure that it’s not oversold.
Existing products – change individually
- If you added products to your Shopify store before installing the Shipwire app, you may set products to be fulfilled by Shipwire individually (by individual product variant), or you may do so in bulk (the next section covers this). You will see your products displayed like this in the Inventory & variants section. To begin enabling Shipwire fulfillment for a specific product, click the Edit button to the right of it.
- In the Edit Variant popup window, find the fulfillment section and use the drop down menu to select “Shipwire App”. If you would like, under “Inventory policy”, you may choose “Shipwire App tracks this variant’s inventory” (more details about this in step 2 above). Click to Save or Save and close.
Existing products – change in bulk (Recommended bulk edit method)
To change your products in Shopify to be fulfilled by the Shipwire App in bulk (all at once), you may use Shopify’s bulk edit functionality.
Click this special link to your Shopify admin’s product bulk edit page. It will take you to the bulk editor with all of your products listed, with the “Fulfillment service” and “Inventory tracking” fields already added to your view (if you don’t use the link, you’ll need to go to Products, select all, click “Edit Products”, then click “add more fields” and add these fields manually).
You will see all your SKUs and what fulfillment service and inventory tracking has been chosen for them. Use the drop down to change any to “Shipwire App” that are set to “Manual” or “Shopify”, then click “Save all changes”. To change many products at once, click the topmost “Fulfillment service” field that you would like to change, and then hold “Shift” on your keyboard and click the bottommost one. With multiple selected, any change you make in the dropdown selection to the topmost item will be copied to all the others. Note: if you are using this to change inventory tracking to “Shipwire App”, it is possible that Shopify will not request an inventory update from Shipwire and fail to update your inventory levels. Shopify is aware of this bug and working on a solution. A known workaround is to edit each product individually (change from “Shipwire App” to “Shopify”, click save, then change back to “Shipwire App” and click save, and you’ll immediately see fresh Shipwire inventory amounts in the quantity field.).
Existing products – change in bulk (CSV method)
If you find that Shopify’s bulk edit functionality does not work as you would like, this more complex (but powerful) method that we wrote *before* Shopify’s bulk edit functionality existed may be useful to you. The process is to export all your products to CSV in the Shopify control panel, modify the file, and import back into Shopify. Here are the detailed steps:
- First, in your Shopify control panel, go to the Products page.
- Click the “Export” button at the top of the page
- Select to export all products and click “Export products”
- Check your email for a link to the product file and download
- Open the CSV file and modify the “Variant Fulfillment Service” column. You will want to set the value to “shipwire-app” (without the quotes) for all products that Shipwire will be fulfilling (the associated SKUs must already exist in your Shipwire account). If you would like your Shopify product inventory to be managed by the Shipwire App, also change the relevant rows in the “Variant Inventory Tracker” column to “shipwire-app” (without the quotes). Note: If you are migrating from the built-in Shopify integration and have Shipwire fulfill less than 100% of your products and would like a quick way to update them all to use the new App, use the auto-filter feature in Excel to filter the “Variant Fulfillment Service” column to only show rows equal to “shipwire” (the fulfillment name of Shopify’s built-in Shipwire integration). You may then type “shipwire-app” in the first row and copy and paste that in that column for the rest of the rows without any chance of accidentally changing the fulfillment selection for any non-Shipwire fulfilled products. The same may be done for the “Variant Inventory Tracker” column. Here is a guide on using auto-filter in Excel.
- Save your modified CSV file as a new filename, such as “products-updated.csv”. Do not overwrite your original product export file, as you may need it if you made any mistakes while editing the file.
- Return to the Products page in the Shopify control panel and click the “Import” button at the top of the page.
- Click browse and select your modified CSV file. Check the “Overwrite existing products that have the same handle” option. Click “Upload file”.
- The next page will show a message stating: “Importing will overwrite any existing products that have the same product handle.” Confirm all looks correct and click the “Start import” button. Wait for the import to complete and confirm that no errors occurred (You will be given a summary report. If you miss it, click “Import” and it will show the results of the last import at the top of the page.)
Sold line items
- Now that you have enabled Shopify products to be fulfilled by the Shipwire App, you must instruct Shipwire to fulfill products when they’re sold. Once you’ve received a new order after having switched your products to being fulfilled by Shipwire, use the left navigation bar and select the Orders tab. Search the Fulfillment Status column to find an order status that says Not Fulfilled. Click the corresponding hyperlink (found in the Order column).
- At the top of the page, click the Fulfill items button and Shipwire will be alerted to fulfill the order. You can view the details in the History section below.
Manual vs automated fulfillment
- The default in Shopify is to require merchants to manually submit orders to a fulfillment provider. If you would prefer to have your successfully paid orders automatically sent to Shipwire for fulfillment, go to Settings > Checkout in your Shopify control panel. From the Checkout page, scroll down to the section entitled Order processing. Under the heading “After an order has been paid” select the option: Automatically fulfill the order’s line items.. If you would like Shopify to send a message to your clients once the order has been shipped by Shipwire and includes a tracking number, check the box for “Notify customers of their shipment via email.” Click Save. Shopify has more information on their Fulfill an order support page.
Q.Why am I seeing the message “There are no available services for the countries you’ve selected” in the Shopify admin panel under Settings > Shipping?
A.This is a bug in Shopify, and can be safely ignored. It has zero impact on your integration. You will see this when you are adding the “Shipwire App” carrier-calculated rate to a brand new shipping zone in the Shopify UI. You will also see it when editing an existing Shopify shipping zone that has the Shipwire App carrier-calculated rate added.
Q.Why are orders marked as potentially fraudulent in Shopify being sent to Shipwire?
A.If you have chosen automatic fulfillment of orders (see manual vs automatic fulfillment above), please note that, by default, orders that Shopify determines are of a high fraud risk potential are not automatically sent to Shipwire for fulfillment. If you find that high risk orders are making their way through, please check the following setting in your Shopify admin: First, click Settings, then click Checkout. Find the Order processing section. Under the heading “After an order has been paid”, you should see that “Automatically fulfill the order’s line items” is already selected. Ensure that “Automatically fulfill all orders, even those with a high risk of fraud” is not checked. If you found that it was not checked, but high risk orders were still passing to Shipwire, please contact Shopify support, as they send these fulfillment creation requests to us.
Q.Why is my inventory not syncing?
A.Most likely this is due to a setup error in your Shopify store. First, ensure that you have selected “Shipwire App” for “Inventory Policy” for all of your products that Shipwire fulfills. The easiest way to check this is by doing a bulk edit in Shopify of all your products. See this section on how to do that. Second, ensure that your SKUs are entered exactly the same into Shipwire and Shopify. SKUs are case-sensitive in Shopify. Ie “ABC123″ and “abc123″ are recognized by Shopify as different SKUs, and if you have one version in Shipwire, and the other in Shopify, inventory sync will not work. Change the SKU name in Shopify to match what you have in Shipwire. After you have done this, in your Shopify admin, change “Inventory Policy” for the product to “Shopify”, click save, then switch back to “Shipwire App” and click save again. This will cause Shopify to request an inventory update from Shipwire, and it will now recognize the returned SKU information as matching.
Q.If I cancel or refund an order in Shopify, will it be canceled in Shipwire?
A.No, the current integration will not cancel an order in Shipwire after an order has been canceled or refunded in Shopify. Before canceling an order in Shopify, please log into your Shipwire account and see if you can cancel the order. If it happens frequently that you want to cancel an order in Shipwire that you’ve sent to us, you may wish to consider switching to manual fulfillment mode in your Shopify account or reducing the frequency with which orders entered into Shipwire get automatically sent to the warehouse for shipment – see Configuring Order Transmit Times
Q.I selected to have the “Carrier service” feature enabled during installation, but shipping rates are not displaying at checkout and I can’t see a Shipwire rate under Shipping Rates in the Shopify control panel. What is wrong?
A.The carrier service feature requires access to Shopify’s Carrier Services API, which is not included in all Shopify plans. If Carrier Service is not enabled on your store, then we will not be able to provide shipping rates. To determine if this is causing your issue, go to Settings > Shipping in your Shopify control panel and scroll down to the “Carrier calculated shipping” section. If you encounter a yellow notice that states “Your current plan doesn’t support carrier-calculated shipping”, then you will need to contact Shopify Support to switch to a plan with the Carrier Service API enabled. Once you have access to the Carrier Service API for your store, you will need to edit the configuration of your Shipwire Shopify app to appropriately enable real-time rates. To do this, in your Shipwire account, click the account drop-down in the top right, choose Third party connectors, click on “Configure” for Shopify, then click the appropriate Account name, then tick the checkbox for “Carrier service” and click Update.
Q.Why are Shipwire real-time rates not showing up in the Shopify checkout?
A.Please check the above question and answer first, as that is the most frequent issue. If you’ve checked that and are still having an issue, here are things to check: 1) make sure that the items you have placed in the Shopify cart to test real-time rates with have “Shipwire App” picked as the fulfillment service provider under “Products” in the Shopify control panel, that the SKU matches what you’ve loaded into Shipwire, and that you’ve entered the weight and dimensions for the product in the Shipwire control panel. If any of this is missing, we will be lacking the necessary information to calculate a rate. 2) Make sure that you do not have “hold” chosen instead of “process” for any shipping methods in “Shipping Preferences” in the Shipwire control panel – if you have “hold” picked, we will not be able to provide a real-time rate at checkout for that method, since you’ve chosen to apply shipping method manually.
Q.How can I run a wholesale (B2B) store through Shopify?
A.This article has some good suggestions and discusses this at length. You may wish to connect with a Shopify expert to assist with this. If you would like B2B customers to only be able to order mastercases, then only list your mastercase SKUs on your Shopify store. Do not follow the suggestion of “question #2″ which has you create “case packs” with selectable quantities of 6,12,18,24, etc of your individual SKUs. That would create orders that would cause the warehouse to make individual picks rather than mastercase picks.
Q.Can I have multiple Shopify stores integrated with one Shipwire account?
A.Yes. Simply install the Shipwire App in as many Shopify stores as you would like. There are no other special considerations to take into account, and a good number of merchants are doing this already.
Q.Can I take pre-orders with Shopify for inventory not yet at Shipwire?
A.Absolutely. Simply check the “Allow users to purchase this item, even if it is no longer in stock.” box when adding/editing a product in Shopify, along with choosing “Shipwire App” for fulfillment. Please make sure that you have the SKU added to Shipwire first, even though no inventory will be available for it. When the order is sent to Shipwire, if it is not yet in stock, it will go into a Backorder status and be shipped out as soon as stock is received. Also, to avoid having your customers charged until the orders are ready to ship, we recommend following Shopify guidelines outlined here. You may also want to read the answer to the question below as an alternate approach – How do I include pending stock as inventory on-hand?
Q.How do I include pending stock as inventory on-hand?
A.You may include “pending stock”, which is inventory that you have reported that you are sending to a warehouse, and so should be available soon, in the inventory quantities we send back to your Shopify store. This is useful if you would like to allow customers to purchase this inventory that is about to arrive at a Shipwire warehouse. To do this, in your Shipwire account, click the account drop-down in the top right, choose Third party connectors, click on “Configure” for Shopify, then click the appropriate Account name, then tick the checkbox for “Include pending stock as inventory on-hand” and click Update.
Q.Why do orders remain in an “Unfulfilled” status in Shopify after they have been sent to Shipwire?
A.When orders are sent to Shipwire, they retain a “Fulfillment status” in Shopify of “Unfulfilled” until they have a tracking number assigned to them. Once the order has a tracking number, it will be updated to “Fulfilled” in Shopify, and the customer will receive a shipment confirmation email from Shopify, if that option was picked in Shopify’s Checkout Settings – see Manual vs automated fulfillment and shipping notifications
Q.Can I have Shipwire fulfill some products, and fulfill other products on my own or through a supplier/dropshipper?
A.Yes. When Shopify receives an order with products going to multiple fulfillment parties, the Shipwire App will only retrieve the portion of the order with the products that you’ve set for us to fulfill. Shipment/tracking updates will happen as usual. Please note, however, that Shopify does not allow blending of real-time shipping rates, so you will not be able to effectively use our real-time rating option. If you have “Carrier service” enabled on your Shopify App connection, and there is an order with both Shipwire fulfilled items and non Shipwire fulfilled items, we will simply generate a rate based on the SKUs in the order that exist in your Shipwire product catalog. Given this, the best option will be turning off “Carrier service” in your Shopify App connection, and instead using standard Shopify shipping rate settings that work best for you.
Q.How do I enable free shipping for a certain dollar value order?
A.Shopify has this functionality built into their platform. Please see these instructions on their website for setting up. Be sure to use “Free” in your description (such as “Free ground shipping”), and we will interpret this as “GD” shipping when we receive the order, which means we will use our typical algorithms to determine which carrier and ground method to use to save you the most on shipping. If you have real-time rating enabled, and the order value exceeds the amount you chose for free shipping, the free option will by default be chosen for the customer at checkout, but they will still see Shipwire real-time rates, and be able to choose one of them if they would prefer.
Q.How can I create a recurring subscription for my products?
A.Shopify provides this functionality through apps, such as BOLD’s Recurring Orders, ReCharge, Paywhirl and Chargify. Recurring orders will get pushed into Shopify as new orders automatically, and will be passed to Shipwire as per your typical process (manual or automatic, depending on how you’ve set it up).
Q.How do I edit my Shopify App connection options after I’ve installed the App?
A.In your Shipwire account, click the down arrow on your account and select “Third party connectors”, then click the “Configure” button for Shopify. (Or click this direct link). Click on the store name you wish to modify, change the details as desired and click “Update”.
Q.I installed the App before having carrier-calculated rates enabled in my Shopify store, and would like to use real-time rates now, after I installed the App. How do I do this?
A.Fortunately, you can edit your Shopify connection and add real-time rating to your Shopify store. In your Shipwire account, click the down arrow on your account and select “Third party connectors”, then click the “Configure” button for Shopify. (Or click this direct link). Click on the store name you wish to modify, make sure “Carrier service” is checked and click “Update”.
Q.While trying to install the App, I get this error from Shopify: “Oauth error invalid_request: You do not have permission to access the requested scopes”. How do I fix this?
A.This means you are attempting to install the Shipwire App with a staff member account with limited access. Please either ask the administrator or someone with “Full access” to install the App, or provide your account with Full access. See a list of Shopify staff accounts for your store here.
Problems sending orders to Shipwire
- Check if your store is configured correctly by signing in to your account and reviewing the instructions under the Sell tab.
- TIP: Orders received on Shopify from before the products were marked as fulfilled by Shipwire cannot later be pushed to Shipwire. Only orders taken after Shipwire is properly configured, and the products in the order are already marked as fulfilled by Shipwire in Shopify are eligible to be pushed to Shipwire. If you have already received an order where one item was not marked as fulfilled by Shipwire that you would like to send, you will need to load the order manually into Shipwire or via CSV import.
Incorrect shipping types
The following can only occur if you are using Shipping rates in your Shopify store besides the “Shipwire App” ones. If you offer multiple shipping types (Shopify calls them ship_type) and orders are coming to Shipwire with the incorrect shipping type, then you don’t have the right mapping between Shopify ship_types and Shipwire shipping methods, and you need to match them.
- For example, consider if Shopify captures an order as ‘1-Day Express’. This name (1-Day Express) doesn’t map to any predetermined mappings in Shipwire, so we’re unable to determine the shipping type and will default to Ground Shipping. For International shipping types we do not recognize, it will default to Basic International.
- To automate accurate mapping, rename your current Shopify shipping rates to match the names shown in the example mapping below (i.e. rename ‘1-Day Express’ as ‘1 Day Service’). Once you’ve done this, check Shopify orders against how they are captured in Shipwire to be certain the shiptypes and carriers are correct. The default mapping we follow is as follows:
- If you would like to use shipping service names outside of the ones listed in the above table, please contact customer care and provide a list of all your “Shipping service names” in Shopify, and the service level code (GD, 1D, 2D, INTL) or carrier and shipping method code you would like each to map to. Please note that if you request direct mapping to a particular carrier and shipping method, the method may be changed if it is necessary to deliver (ie, an order comes in mapping to “FedEx Ground Home Delivery” but with a PO Box in the address. This will need to be changed to a USPS service in order to be delivered, since only USPS can deliver to PO Boxes.) Similar issues come up around domestic/international and commercial/residential addresses. Using Shipwire real-time rates is the recommended route to avoid these scenarios.
|Shopify rate name||Shipwire shipping method|
1 Day Service
1 Day (1D)
2 Day Service
2 Day (2D)
Additional Information and Troubleshooting Tips
We have additional information and troubleshooting tips that apply to shopping cart software in general. This includes more information about how Shipwire does real-time shipping rates via service levels, inventory, and more. Please visit our Cart Troubleshooting Guide.