ShipStation considers the source marketplace the "system of record" for orders, and this colors the development approach to many of the features (or missing features) of the application.
Here's why I see this as a problem, using Shopify as the example marketplace and Fulfillment by Amazon US (FBA US) as the primary fulfillment solution. (That's a simple and straightforward combination, but the reality is that most of us wouldn't even be using ShipStation of our situations were actually that simple.)
Shopify does not have an easy, built-in function for bundles or custom orders. What is provides is the ability to match one product to one SKU. One way around this is to create a new product that acts as your bundle of multiple products and give it its own SKU.
In our example, we'll say we have three products with SKUs PROD01, PROD02, and PROD03. These products with matching SKUs are defined in FBA US. We also have a fourth "product," BUNDLE01, which is made up of the three other products.
If someone orders the bundle through Shopify, the order comes through with a single line item, BUNDLE01. That's not a valid SKU in FBA US, and ShipStation doesn't let us map one marketplace SKU to multiple fulfillment SKUs. The obvious solution would be to manually edit the order to replace BUNDLE01 with PROD01, PROD02, and PROD03. But ShipStation thinks Shopify should be authoritative for orders, despite the very limitations of that system which drove me to try ShipStation in the first place, and won't let me edit the order!
(If it were as simple as "send this order, unchanged, from Shopify to Fulfillment by Amazon," we'd just use the built-in fulfillment settings of Shopify.)
Here's where the "system of record" justification for not allowing order modification gets silly. We create a new manual order and add PROD01, PROD02, and PROD03 and some dummy customer info (it doesn't matter what is added here). Then merge that manual order into the Shopify order that has BUNDLE01. At this point, ShipStation shows that the entire order is a Shopify order going to a single customer and it can now be easily sent to FBAUS for fulfillment and tracked as though it were the original order!
Except, of course, that it can't. That original BUNDLE01 is still there, and FBAUS will throw the entire thing back as unfulfillable because of that one invalid SKU. But we don't have the option of editing the order to remove that original item, there's no way to flag BUNDLE01 as "information only" (similar to the way coupons are flagged when they come through as line items). So what do we do?
We split the order we just merged so we can "partially fulfill" it. When we split the order, even though we're pulling out the three items added manually, ShipStation still shows that both resulting orders are from Shopify ... the supposed system of record. Now we can send those three items on to Amazon with all the information from the original order and have an update sent back to Shopify that the order was fulfilled. And the original, leftover order with BUNDLE01?
It has to be marked fulfilled manually, even though you and I both know the order was fulfilled when we sent the three items to Amazon.
If such a workaround as I've described exists, you may wonder why I don't just use that all the time and stop asking for the ability to edit orders. First, it's a kludgy workaround, and requires a lot of time-consuming steps per order. Second, I don't just have one well-defined bundle; I also have custom orders that may come through with a SKU of BUNDLE (or, in my non-profit's case, DONATION), with the description of which products go in the bundle included as text attributes. Every order can be slightly different. Finally, I don't have just one fulfillment method: FBA US, FBA Canada, FedEx, USPS, UPS, or hand-delivery may each apply depending on where the order is going and what products are included.
The underlying problem, I believe, is the insistence that because the marketplace is the "system of record" for orders, all adjustments and changes must be made there. Some of these adjustments cannot be made at the marketplace; that's the whole reason we sought out an intermediary application like ShipStation to help resolve these complex problems! That's what integration platforms are supposed to do, after all.
In the example above, Shopify still shows that the customer ordered BUNDLE01. That's authoritative. As the business owner, I know that BUNDLE01 consists of products that may also be ordered individually, and so I need to be able to tell Amazon—authoritatively—to send out PROD01, PROD01, and PROD03 for that order.
Please, ShipStation, let the business owner be the ultimate authority on order fulfillment. Even if we assume that the system of record for BUNDLE01 is Shopify, it's imperative to the business process that we be able to modify and massage the order contents before sending it for fulfillment.
Otherwise, what's the point of having ShipStation sit between the marketplace and fulfillment services at all?