Use this guide to learn about common uses and best practices for managing shipping profiles and fulfillment orders on your commerce account.
If you have special shipping preferences (for example, when shipping to Hawaii or Alaska) or want more flexibility around shipping times, use per product item Shipping Profiles.
When you first set up Commerce Manager, you set a default shipping profile for the entire commerce account.
Using shipping profiles, you can specify handling time, shipping speed, price, and destination on a per-product item level.
By default, all items in your catalog have an automatic return policy of 30 days. See this Help Center article for more details.
The Google Product Category (GPC) set for a catalog determines these categories. While custom return windows are mapped to a top level GPC code, products that fall within a subcategory of that GPC code will inherit the same custom return windows.
When fulfilling orders, you must provide tracking information so that we can show tracking status to the customer.
The carrier in your tracking information must be one of the supported carriers for Commerce Platform. The following is a list of all supported carriers for Commerce Platform.
Each fulfilled shipment must include one and only one unique tracking number. This means you must:
external_shipment_id
.This also means you won’t be able to:
Scenario | Recommendation |
---|---|
Single/Multi-item > single parcel | One API call to attach the shipment to the order. |
Multi-item > multi parcel | Multiple API calls to attach each item(s) to the different shipments to the order. |
Single/Multi-item where tracking information needs to be updated | If you need to update your tracking information after fulfilling it, you can do it by using your external_shipment_id and change tracking number, carrier or shipping method. |
Multi-item item > single parcel, but API call didn’t include all shipped items (human/system error) | The tracking number should be unique, so you need to make an API call to fulfill the remaining shipped items using a new or variant of the tracking number; for example:
This should be used only to fix a condition your system shouldn’t allow. Be prepared to respond to customer inquiries about bad tracking numbers. |
The Commerce Platform updates the payment and tax details as you fulfill an order. It’s expected that the estimated taxes at order creation can be different from the actual captured taxes after fulfillment.
You can get the estimated and actual payment and tax details by using this request:
curl -X GET -G \ -d 'fields="estimated_payment_details,items{tax_details},shipments{items{tax}}"' \ -d 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/{order-id}
{ "estimated_payment_details": { "subtotal": { "items": { "amount": "25.00", "currency": "USD" }, "shipping": { "amount": "1.00", "currency": "USD" } }, "tax": { "amount": "2.50", "currency": "USD" }, "total_amount": { "amount": "28.50", "currency": "USD" }, "tax_remitted": true }, "items": { "data": [ { "id": "2082596341811586", "retailer_id": "item_A", "quantity": 10, "price_per_unit": { "amount": "2.50", "currency": "USD" }, "tax_details": { "estimated_tax": { "amount": "2.50", "currency": "USD" }, "captured_tax": { "total_tax": { "amount": "0.25", "currency": "USD" } } } } ] }, "shipments": { "data": [ "items": { "data": [ { "id": "2082596341811586", "retailer_id": "item_A", "quantity": 1, "tax": { "final_tax": { "amount": "0.25", "currency": "USD" } } } ] }, ] } "id": "412336950726541" }
Fields | Description |
---|---|
| Total amount for items, shipment, and taxes, at the time of order creation. These estimated values never change. |
| Total estimated tax for this particular item (all quantities), calculated during order creation. This estimated tax never changes. |
| When this item is partially or fully fulfilled, |
| When an order has multiple shipments, each shipment corresponds to one payment. Thus, this is the sum of |
For example, in the response above, where retailer_id
is item_A
and quantity
is 10
:
Scenario | Description |
---|---|
Before any fulfillment |
|
First fulfillment item A, qty 1 |
|
You cancel item A, qty 5 |
|
You ship remaining item A, qty 4 |
|
The final captured_tax
can vary from the initial estimated_tax
slightly (usually by a few cents) even without any cancellations.
The tax_remitted
field signals if the tax were collected by Facebook. Learn more about Marketplace Facilitator States and Sales Tax and Tax Settings in Commerce Manager.
If you override your tax calculations (see Use the Tax Override API for DIY Tax Calculations, it's expected that the captured item level taxes match your data at fulfillment.
In addition to the financial reports that can be generated in Commerce Manager, you can use the Finance API to obtain financial information for payouts, transactions, and orders.
Consider using this API to automate your monthly financial reconciliation. For a cash reconciliation, simply pull all payouts for a given time period using the Payouts endpoint. This endpoint provides a set of payout_reference_ids
that you can then use in the Transactions endpoint to get all orders and items associated with that payout.
Depending on various factors that affect sales tax calculations, a seller can opt-in to use their own tax calculation engines to compute taxes and replace the default tax calculation logic used by Facebook commerce platform.
Seller to pass tax they need Facebook/Instagram to collect when marking the order as shipped.
Buyers are shown an estimated tax amount when placing an order with appropriate reason on why it is estimated. Once the order is shipped, the amount is updated.
To use the Tax Override API, contact your Facebook representative to enable the functionality for you. After your account has been approved, learn more about tax override.
Shipping and fulfilment performance is one of the categories that affect your Account Health metrics.
To ensure that your fulfillment accuracy stays below the thresholds, you need to ship your orders on time, have valid tracking numbers and include accurate shipping numbers for tracking.
Use the Fulfillment API to automate this process so that you stay compliant with our Commerce Policies.
When using Shipping Profiles and you want to associate your products with non-default shipping profiles, you need to update your data feed file for catalog items with additional column: shipping_profile_reference_id
.
To obtain the value for this column, you can use Shipping Profiles API or manage the Shipping Profile section in Commerce Manager.
To remove a shipping profile from a particular item and use default shipping profile, set the shipping_profile_reference_id
value to “-1”
.