As of WooCommerce 8.3, Cart and Checkout blocks are available as the default experience. WooCommerce Shipwire has not yet been updated to be compatible with those blocks, so we recommend following this guide to revert to Cart/Checkout shortcodes. Additional plugin updates will soon be released to ensure compatibility with the new block checkout. Please check out this page for the latest updates or reach out to our support team with any questions!Here’s a rundown of how the extension works for each order:
- You determine which items are fulfilled via Shipwire by using a matching SKU, and whether orders for these should be exported automatically or manually by a store admin to Shipwire. (Please note that SKUs should be unique between products.) You can set automatic exports based on the shipping country.
- You configure Shipwire shipping options from the WooCommerce settings.
- Customer selects an item that’s fulfilled via Shipwire, and places an order purchasing this item and selecting an available Shipwire shipping method.
- Once the order is paid for, it can be exported to Shipwire for fulfillment (order is “processing”).
- Based on your settings, the relevant order is either exported automatically, or will be exported manually via the “Orders” page or “Edit Order” screen.
- Shipwire receives the information sent from your WooCommerce store, and fulfills the order with appropriate shipping.
- You can opt to have stock reduced and shipment tracking information updated automatically – WooCommerce and Shipwire will automatically remain synced if you enable this under “settings”. Any shipping information is stored within the order.
- You can opt to automatically complete orders once they’re marked as “shipped” in Shipwire. If so, the order will automatically be completed without lifting a finger!
- Your customer receives their order on-time, and you feel great because of the easy shipping and order management and synchronization 🙂
- Download the extension from your WooCommerce dashboard
- Go to Plugins > Add New > Upload and select the ZIP file you just downloaded
- Click Install Now, and then Activate
- Click the Configure link and read the next section to learn how to setup and configure the plugin.
firstname.lastname@example.org, making sure to replace yourdomain.com with your store’s domain name. Enter “Shipwire API” for the name and uncheck the “Email user with account access instructions” checkbox : Click save and you’ll get a success message telling you the password has been emailed. Now, check your email for the password for the API user you just created. It should look like this: Copy the username and password in this email to the text boxes under WooCommerce > Settings > Shipwire and click “Save Settings”: We also recommend that you disable the cart shipping calculator under WooCommerce > Settings > Shipping > Shipping Options. This is because customers who calculate shipping on the cart page may receive invalid rates, as Shipwire recalculates rates at checkout once a full address is available. For example, if the customer enters a commercial address on the checkout page, methods like “FedEx Home Delivery” will no longer be available. Shipwire cannot access all necessary information on the cart page, so there’s no way to display the most accurate rates here. That’s it! You’ve connected your WooCommerce store to Shipwire! Read on to learn how to setup your products. First, setup your products in Shipwire by logging into your account and going to Inventory > Product Catalog. You’ll see a list of any existing products you have, as well as an option to setup additional products : Important: When setting up products, the SKU must match exactly to the SKU listed for the product in WooCommerce and products should have a unique SKU. If you already have your products setup within WooCommerce, you can use the Product CSV Import/Export extension to export a CSV of your products that can be adjusted and imported into Shipwire. Ask your Shipwire rep about this process. Now, log into your WooCommerce store and go to the Edit Product page for the product that was setup in Shipwire. Go to the Product Data tab and you’ll now see an extra option for Shipwire under “Inventory” (below the SKU). Check the “Shipwire Managed?” checkbox and save the product. If you want Shipwire to also manage the inventory for this product, you must also check the “Manage stock?” checkbox under the Inventory tab. To update the inventory count for the product, click the “Update Inventory” button under WooCommerce > Settings > Shipwire > Update. This will replace what WooCommerce has listed as stock count with the stock count provided by Shipwire. Simple and variable products are supported. When “Shipwire Managed?” is checked for a variable product, every variation is assumed to exist in Shipwire. If you have a lot of products to set as “Shipwire Managed?”, you can bulk edit products to enable it.
- API Username – The username for the API user setup via the process above. Please do not use your own Shipwire account username.
- API Password – The password for the API user setup via the process above. Please do not use your own Shipwire account password.
- Environment – The environment to send API requests to — this should be set to “Production” unless you are using a Shipwire test account.
- Debug Mode – Enable this to save API requests/responses to the WooCommerce error log (/wp-content/plugins/woocommerce/logs/shipwire.txt) — please only enable this if you are having issues with the extension.
- Automatically Export Orders – Enable this to automatically submit orders to Shipwire upon successful payment. By default, this will only submit orders that have received payment, or the order status changes from on-hold / failed to processing / completed. Orders can be manually submitted to Shipwire if this is disabled.
- Automatically Export Orders Only for These Countries – (Shown if automatic exports are enabled) Enable this to limit automatic order exports to the specified countries. If the ‘ship to’ country of the order is not selected, it will not be exported and will need to be manually exported using the order actions or bulk order actions.
- Automatically Completed Shipped Orders – Enable this to automatically change the order status of orders marked as “Shipped” by Shipwire to “completed”. We recommend leaving this enabled.
- Automatically Update Inventory – Enable this to automatically update inventory for all Shipwire-managed products on a recurring basis. The order stock will be updated to reflect what Shipwire reports as the inventory count for each product.
- Update Interval – (shown if automatic updates are enabled) Inventory updates are pushed from Shipwire to your site automatically. However, this update interval serves as a backup in case an update is missed (ie your site server is temporarily unavailable). Enter how often inventory should be checked for updates to re-sync (in minutes). As a best practice, we recommend setting this to 60 minutes or more.
- Include Pending Inventory in Stock – (shown if automatic updates are enabled) Enable this to include inventory listed as “Pending” within Shipwire (this is inventory that may be arriving soon, or is otherwise in transit to Shipwire) as valid stock within WooCommerce. This will combine “Good” and “Pending” inventory and set the total as the available stock.
- Include Inventory from Warehouse Locations – (shown if automatic updates are enabled) Select the warehouse continents that inventory will be included from. Defaults to “Worldwide” to use all inventory. This will not depend on customer location. Rather, total inventory for your store will only include inventory housed in warehouses within the selected continents.Use this setting if you use Shipwire to sell in multiple countries, but only sell to certain countries on your site and thus want only specific inventory counts displayed.
- Automatically Update Tracking – Enable this to automatically update tracking information for all orders on a recurring basis.
- Update Interval – (shown if automatic updates are enabled) Order tracking updates are pushed from Shipwire to your site automatically. However, this update interval serves as a backup in case an update is missed (ie your site server is temporarily unavailable). Enter how often tracking data should be checked for updates to re-sync (in minutes). As a best practice, we recommend setting this to 60 minutes or more.
- Enable/Disable – Check this box to enable or disable this shipping method.
- Method Availability – Choose which countries this method should be available for — Shipwire supports many international countries, so it’s recommended to leave this as “All allowed countries”.
- Specific Countries – (shown if “Method Availability” is “Specific Countries”) If you want to limit the countries for which Shipwire rates are available, select the countries that have Shipwire rates enabled.
- Tax Status – Choose whether the shipping cost is considered taxable or not.
- Handling Fee – Add an optional handling fee that will be added to the shipping rates provided by Shipwire.
- Additional Handling Fee – Add an additional handling fee that will be applied to each item in the order past the first item. This is useful when you want to pass along the cost imposed by Shipwire to pick orders to your customers as part of the overall shipping cost. This only displays if a handling fee is set.
- Show Delivery Estimates – Enable this to display estimated delivery dates next to the shipping rate.
- Require Delivery Confirmation – Enable this to only display rates for services that have delivery confirmation.
- Require Tracking – Enable this to only display rates for services that include tracking information.
- Show Carrier Name / Service Level – Show the actual carrier name and service level (e.g. FedEx Ground) instead of generic names (e.g. Ground Shipping). If you disable this, you may change the names of the rates displayed.
- New – An order with this status has not been exported to Shipwire. The “Export to Shipwire” order action buttons are available.
- Held – An order with this status has been exported to Shipwire successfully, but requires manual release within the Shipwire website before it will be shipped. This is often due to an invalid address or an item that is out of stock. You may also see this listed with an exclamation point next to it ( e.g. “Held (!)”, which means there were warnings associated with the order as well. See the Accepted status description to learn more about warnings.
- Failed – An order with this status has failed export to Shipwire, usually because of API errors (incorrect username/password) or HTTP errors with your server. View the order notes for more information about why the order export failed.
- Accepted – An order with this status has successfully exported to Shipwire. You can view additional details on the Edit Order page. Occasionally you may see this listed as “Accepted (!)” which means there were warnings associated with the order. Warnings are non-serious issues with an order that do not prevent it from being fulfilled and shipped. This is typically due to an address that changes classification (e.g. Residential to Commercial). You can see the specific warning message by viewing the order notes for the order.
- Shipped – An order with this status has been successfully fulfilled and shipped by Shipwire. You can view additional tracking information on the Edit Order page.
Heads up! Shipwire only supports one return per order, so you can only start a return once for any WooCommerce order. This action is disabled after a return has been processed.This will open a modal to select the quantity of each line item being returned. You can also determine if return shipping should be charged to the customer, or if you’d like to deduct return shipping from your Shipwire account (providing a pre-paid return label to the customer instead). When a return is processed, this information will be added to the Shipwire information box for your order, and allow you to download a return label for the order. Customers will also see the ability to download a return label from their account under My Account > Orders, or by viewing a particular order in the account. orders” width=”805″ height=”192″ class=”aligncenter size-large wp-image-813490″> Shipwire offers serial number scanning for consumer electronics companies and other retailers that require a record of which customer was sent which product with a particular serial number. As of version 2.0, serial number scanning is supported so that serial numbers will be added to WooCommerce orders for each line item. One or more serial numbers can be added for a product automatically by Shipwire: Customers may see the following changes in your store when Shipwire is in use:
- If you have both managed and non-managed items, customers may see multiple shipments when checking out as Shipwire items are included in a separate shipment from non-managed items. (requires version 2.0+)
- A Shipwire tracking link is added to the “order completed” emails when available.
- Shipwire tracking links are added to the “View Order” page in the account when available.
- If serial numbers are available for a product, they’re shown on the customer order details in the account and emails as well.
Q: Why are rates incorrect on the cart page sometimes? A: When customers estimate shipping on the cart page, only the postal code is required. This can, on rare occasions, lead to inaccurate rates, as the actual rates are re-calculated at checkout once a full address is provided. For example, if the customer enters a commercial address on the checkout page, methods like “FedEx Home Delivery” will no longer be available. We recommend that you disable the shipping calculator under WooCommerce > Settings > Shipping > Shipping Options to avoid this issue.
Q: How do I map or select which Shipwire shipping methods I’d like to use? A: Unfortunately this isn’t something we have control over when you configure Shipwire Shipping, as Shipwire determines the best rates to offer automatically based on the inventory location and shipping location. “Ground (GD)” shipping could display UPS ground, FedEx Home Delivery, or other rates based on what is the best available rate at the time.
Q: Why aren’t ‘completed’ orders exported to Shipwire? A: By default, the extension only exports orders which are set to ‘On-hold’ or ‘Processing’, since we assume completed orders don’t require any further action. You can temporarily switch an order to ‘Processing’ to export to Shipwire or use the
wc_shipwire_valid_order_statuses_for_exportfilter explained below. Place the following snippet in functions.php in your theme folder: https://gist-it.appspot.com/github/skyverge/wc-plugins-snippets/blob/master/woocommerce-shipwire/add-valid-export-statuses.php?footer=minimal Having trouble? Check if these pointers help you solve your problem before posting a support request:
- Check that you have entered your API key correctly.
- Double-check that you have entered your API key correctly 😉 You will likely get a warning if you haven’t, but this doesn’t always guarantee you haven’t made a typo:
- Is your site publicly available? Shipwire can’t send your site inventory or order updates if it’s not publicly accessible.
- Are shipping rates showing as not available? Make sure at least some items in the cart are Shipwire-managed and you’ve entered a postcode for US addresses, or country/city for international shipments.
- Are orders not exporting to Shipwire? Please (1) ensure the WooCommerce order status is processing or on-hold, as completed orders are not exported, (2) ensure your products have SKUs that match and are unique from other products, a Shipwire SKU, and (3) ensure these products are marked as Shipwire managed under the product details.
- Are inventory or tracking updates not occurring as expected? Please try resetting webhooks under WooCommerce > System Status > Tools and waiting a few hours to see if updates re-sync:
- Still having issues? Enable debug mode on WooCommerce > Shipwire > General Settings, try to reproduce the issue, and submit the information found under WooCommerce > System Status > Logs within the shipwire.log along with your support ticket.
do_action( 'wc_shipwire_product_options_start' );and
do_action( 'wc_shipwire_product_options_end' );— Use this to add options to the Shipwire product tab
do_action( 'wc_shipwire_order_exported', $this, $response );— Passes in the Shipwire order object (which extends the
WC_Orderobject), and the API response. Fired immediately after an order is exported to Shipwire.
do_action( 'wc_shipwire_tracking_updated', $this, $tracking_info );— Passes in the Shipwire order object (which extends the
WC_Orderobject), and an array of tracking information. Fired immediately after tracking is updated for an order.
do_action( 'wc_shipwire_inventory_updated', $product, $item_inventory );— Passes in the
WC_Productobject that inventory has just been updated for, and an array of inventory counts for the product.
do_action( 'wc_shipwire_all_inventory_updated', $product_ids );— Passes in an array of product IDs that inventory was just updated for.
apply_filters( 'wc_shipwire_settings', $settings[ $tab_id ], $settings, $tab_id );— Passes in the settings array and the current tab ID — use this to add additional settings to the Shipwire settings pages.
apply_filters( 'wc_shipwire_auto_export_order', true, $order_id );— Passes in
(bool) trueand the order ID for the order being automatically exported. Use this prevent a specific order from being automatically exported.
apply_filters( 'wc_shipwire_valid_order_statuses_for_export', array( 'on-hold', 'processing' ) )— Passes in array of valid order statuses for export. Use this to prevent/accept particular order statuses for Shipwire export.