Selling
Orders and Shipping: From Paid to Delivered
Work the order list, build draft orders and send payment links, ship one order or a whole selection, buy and void postage per parcel, hand over pickup and local-delivery orders, cancel and refund, keep customers updated, and bring your order history over from another platform.
Overview
Every paid order lands in Orders. From there you ship it, your customer is told, and the parcel is tracked until it arrives. Orders, draft orders, returns and shipping are on every plan.
- Ship one order or many. Ship from the order's own page, or select orders on the list and ship them together.
- Postage built in. Connect an EasyPost account once and buy labels for USPS, UPS, FedEx, Canada Post, DHL and more from any order. A label bought by mistake can be voided for a refund.
- Parcels. Split an order into several boxes, each with its own label, origin and packing slip.
- Across borders. A label to another country carries its customs declaration, built from each product's HS code, country of origin and weight, and comes with the commercial invoice to print.
- Customers kept informed. Each customer gets a shipping email with their tracking link and delivery updates as the carrier scans the parcel, sent from your store's own email address. If your store has no email domain of its own yet, the email is not sent: the order's timeline says so and you are told. See Custom domains and branded email.
- History from elsewhere. Import past orders from a CSV so your customer records and reports start complete.
- Business buyers' PO numbers. When a company buyer gives their purchase-order number, it shows on the order, under the order number in the list, and on the packing slip. Search the list by a PO number or a buyer's reference to find the order. See B2B accounts.
- Draft orders. Build an order for a customer, email them a link to pay by card, or mark it paid when they paid in cash or by e-Transfer. See Draft orders below.
- Find an order by its number. Type the order number from a receipt or email, such as #AB12CD34, with or without the #, in the search on the orders list or in the dashboard's search (Ctrl+K or ⌘K).
Before your first label: connect EasyPost and set your address
- Go to Orders → Shipping → Origin and enter the address your parcels leave from. It is printed on every label as the sender.
- Open the Carriers tab. The first card is Labels & tracking (EasyPost). Paste your EasyPost API key (EasyPost dashboard → API Keys), click Save key, then Test connection.
EasyPost bills postage to your own EasyPost account; BestWebby adds nothing to it. If the test says you used a test key, labels bought with it are not real postage. Switch to your production key before you ship.
The other carrier cards on that tab set up the rates shoppers see at checkout. They are separate from buying labels.
If you ship to other countries, also fill in Customs declarations on the Origin tab (see Shipping across a border below).
What shoppers pay for shipping
Checkout charges shipping from the zones and rates on Orders → Shipping → Zones & methods. Each zone lists the countries it covers, or the rest of the world, and the rates you charge there.
- An address one of your zones covers is offered that zone's active rates. The shopper picks one; if they do not, the cheapest is charged.
- An address none of your zones covers cannot be checked out for delivery: the shopper is told there is no delivery option to that address. A zone with no active rate offers nothing, so it refuses its countries too. Pickup still works.
- No active zone at all: every order that needs delivering is taken at $0 shipping. Your get-started checklist, the publish check and the Shipping screen all tell you. To charge nothing on purpose, add a zone with a $0 rate: it is then your choice, and orders are limited to the countries you ship to.
Digital products, services and gift cards are never charged shipping, and neither is an order collected in store.
Estimated delivery dates
Shoppers see an estimated delivery date on product pages, beside each rate at checkout, and in their order confirmation email, for example "Estimated delivery: Wed, Nov 4 – Fri, Nov 6" (in French, « Livraison estimée »). They are always worded as estimates; BestWebby never shows a delivery date as guaranteed.
Set two things on Orders → Shipping → Origin, under Processing time and order cut-off. Only the store owner can change them, and each change is recorded in Settings → Audit log with the old and new values. The line under the fields shows what a shopper ordering now would be told for a 2–4 day rate, before you save.
- Processing time: the working days you need to pack an order before it leaves, from 0 to 30. 0 means it leaves the day it is dispatched. Stores start at 0.
- Order cut-off: orders placed before this time are dispatched the same working day; later orders start the next working day. Stores start at 12:00. It is read in the time of the province in your origin address (Pacific time for British Columbia, Eastern time for Ontario and Quebec, Newfoundland time for Newfoundland and Labrador, and so on, daylight saving time included). With no Canadian province in the origin address, it is read in your store's timezone.
The date is the next dispatch day, plus your processing time, plus the rate's minimum and maximum days in transit. Weekends are never counted, and neither are Canadian statutory holidays: your origin province's holidays for packing, and for transit the federal holidays carriers keep plus the holidays of the shopper's province. A holiday that falls on a weekend is skipped on the working day it is observed. A rate with no minimum or maximum days shows no date at all, so set the days on each rate under Zones & methods.
On a product page, the date is for the cheapest rate with days that you charge for one of that item in the shopper's country. It is not shown when the shopper's country cannot be told, for a product that is out of stock, made to order, digital or a service, for local delivery (that depends on the shopper's postcode), or while your store is on vacation. The confirmation email counts from when the order is paid, so an order paid later by e-Transfer gets dates from that day.
Pausing a carrier
When a carrier stops collecting for a while (a postal strike, a weather shutdown, a depot that closed), pause it once instead of switching off its rates zone by zone. Go to Orders → Shipping → Carriers and use Pause a carrier at the top: tick the carrier (Canada Post, Purolator, UPS, FedEx, DHL, USPS, Australia Post or Royal Mail), write the reason, and click Save pause. Only the store owner can change it.
While a carrier is paused:
- Checkout does not offer its rates, live or from the published rate table, in any zone. Your other rates are offered as usual.
- If that leaves an address with no shipping option, checkout tells the shopper that delivery there is paused for now and to try again later or use another address, and the order is not taken. Pickup still works.
- Labels are never bought from it: not as the cheapest rate in the Ship dialog, not in Buy labels for many orders, and not for a prepaid return label. A label you ask for from that carrier by name is refused with the reason, and nothing is bought. In a bulk run already under way, an order whose approved rate is from the paused carrier is skipped with the reason; Retry the rest tries it again after you resume.
- The Shipping screen shows a banner on every tab naming what is paused and why, so the pause is not forgotten. Methods of a paused carrier carry a Paused badge under Zones & methods, and the Test calculator leaves them out the way checkout does.
Your zones and methods are not changed, so untick the carrier and save to resume: everything comes back as it was.
The reason is for your team. Shoppers see it only if you tick Also show this reason in the announcement bar when you save, which puts it in the bar at the top of your store, replacing what the bar said. When you resume, Also clear the announcement bar empties it, offered only while the bar still shows the pause reason. Every change to a pause is recorded in the audit log with what it was before and after.
Shipping one order
Open the order and click Ship. In the dialog:
- Buy label buys postage for this parcel at the cheapest rate EasyPost returns, unless you chose a service, and fills in the carrier and tracking number for you. Print label opens it.
- Choose what goes in this parcel if you are not sending everything at once, and which of your locations it ships from.
- Mark shipped sends your customer their shipping email with the tracking link.
An order on hold cannot be shipped or have a label bought until the hold is lifted. See Orders on hold below.
Checking the address with the carrier
Checkout makes sure an address has the parts its country needs. It cannot tell whether the street exists or whether the postal code belongs to that town, and a label bought for such an address comes back, or the carrier bills you for correcting it. So before a label is bought for a US address, BestWebby asks EasyPost, on your own EasyPost account, whether a parcel can be delivered there.
Addresses outside the US (Canada included) are not checked unless you ask: go to Orders → Shipping → Carriers and tick Also check addresses outside the US with the carrier in Address check (store owner only; the change is in the audit log). With it off, a label to another country is bought exactly as before, with no check and nothing said about the address. EasyPost may charge for international address verification, or refuse it, depending on your EasyPost plan.
For an address that is checked:
- Verified. The label is bought as usual. Under the order's shipping address you see Address verified by carrier.
- The carrier suggests a correction, or cannot verify the address. Nothing is bought. The Ship dialog shows the carrier's reasons in its own words and, when it has one, its corrected address. Then choose:
- Use suggested address: the order's shipping address is replaced with the carrier's version and the label is bought for it, so the customer's emails and any later parcel use it too. Settings → Audit log records which fields changed, and the address it replaced is kept with the order. This works only while the address could be changed by hand (see Changing the shipping address).
- Ship to the address as entered: the label is bought for the address as the customer gave it. Use it when you know better than the carrier, for a new building for example. Your choice is recorded on the order and in the audit log, and you are not asked again about that address.
- EasyPost gives no answer (it is down or too slow, or, for an address outside the US, international checks are not switched on for your EasyPost account). The label is bought anyway, and the order says Address could not be verified with the reason. It is never shown as checked.
The answer is kept with the order, so opening the Ship dialog again, or reviewing orders in Buy labels and then buying them, does not ask EasyPost a second time. Change the address and it is checked again; a check that got no answer is tried again after 15 minutes.
What it costs. The check runs on your EasyPost account and is billed, if at all, under your EasyPost plan, like postage. EasyPost says address checks made with its shipping service come at no extra cost when you buy the label. A check for an order you then do not label, and any check outside the United States if you turn those on (international address verification is a premium EasyPost service that has to be switched on for your account), may be charged or refused depending on your plan; your EasyPost billing page shows what you were charged. BestWebby adds no charge of its own.
Orders on hold
A held order shows On hold at the top of its page, and This order is on hold for review lists every reason it is held, in plain words, each with what to do about it. Until the hold is lifted the order cannot be fulfilled, shipped, handed over for pickup or have a label bought. The reasons you can see include:
- Payment disputed, with the bank's reason: answer the dispute before its deadline (see Disputes).
- A risky order you held, with the reasons the risk check gave (see Fraud protection).
- e-Transfer amount does not match the order total: record the rest when it arrives, or accept an overpayment you sent back.
- Supplier order is over the automatic ordering limit or Supplier credit limit reached: a backorder on a reseller supplier went past the terms the supplier set (see Reseller network).
- Stock could not be set aside after a late payment, or Part of this order could not be reserved again after a late payment (see below).
- Offer or auction price already used by another order, Refund failed at Stripe and Exchange difference unpaid.
More than one reason. An order can be held for several things at once, for example a dispute that opens on an order already held for a supplier limit. Every reason is kept, the first one first, and a new reason never replaces an earlier one.
A hold that lifts itself lifts only its own reason. A dispute closed in your favour (won, or an inquiry closed without becoming a chargeback) takes off the dispute. A corrected e-Transfer takes off the amount mismatch. A supplier backorder released in Reseller network takes off the supplier limit. Undoing an automatic fraud hold takes off that fraud hold. Any other reason still on the order keeps it held, and the page lists what is left. A dispute you lose stays on the order.
Release hold clears every reason at once, so read the list first. Releasing cancels and refunds nothing, and it settles nothing with the bank or a supplier. An exchange replacement waiting for the customer to pay the difference has no Release hold: ship it from the return instead (see Exchanges below).
When a payment arrives late. A card payment can succeed after an earlier attempt on the same order was declined, by which time the order had given back what it set aside: its stock, any supplier backorder, a gift-card amount and a discount use. BestWebby takes them back once. If some of it was taken by another order in between, or taking it back fails twice, the order is held, with the reason, and you get a notification starting A paid order is on hold, which says what is missing. Check stock and any supplier order, then release the hold, or refund the part you cannot send.
Voiding a label
Bought a label for the wrong parcel, service or address? On the order page, each parcel with a label shows Void label. EasyPost asks the carrier to refund the postage, and you can then buy a new label for the same parcel.
- A label can be voided only before the carrier scans the parcel. USPS refunds are accepted within 30 days of purchase, UPS and FedEx within 90.
- The refund is processed by the carrier and can take up to 30 days. BestWebby asks the carrier again every half hour until it answers, and the parcel shows its status: refund requested, refunded or refused. If the carrier refuses, you get a notification, A carrier refused a label refund.
- If you had already marked the parcel shipped, your customer was emailed the old tracking number. Their tracking page shows the new label's number once you buy it.
Shipping across a border
When a parcel leaves one country for another, the carrier needs a customs declaration, and since 29 August 2025 every parcel into the United States is assessed by its HS code, whatever its value. BestWebby builds the declaration for you from your products; EasyPost turns it into the customs form and commercial invoice.
Set up once
- Orders → Shipping → Origin → Customs declarations:
- Signed by: the name of the person who certifies the declarations are true. A cross-border label is refused until this is set.
- Default country of origin: where your goods are made, used only for a product that names no country of its own. Leave it on None unless everything you sell is made in one country. It is never copied from your ship-from address for you.
- If a parcel abroad cannot be delivered: return it to you, or abandon it.
- On each product you ship abroad, open Compliance & customs and enter its HS code (6 to 10 digits, for example 6109.10.00) and its country of origin (2-letter code, for example CA). Its weight comes from the Shipping section. The written origin in Product insights is for your product page and is not used for customs.
There is no default HS code. Classifying a product is your decision, so a product without one cannot be declared.
An HS code must be 6 to 10 digits (dots, spaces and dashes are ignored) and a country of origin a two-letter ISO code. Anything else is refused where you type it, with the field named, rather than at the label.
Filling in many products at once
- Product list: tick the products, then Customs in the bar above the list. Enter an HS code, a country of origin, the CUSMA choice, or any of them; a box left empty keeps each product's own value.
- CSV import (Products → Import): add the columns hs code, country of origin and cusma (yes or no). A blank cell leaves that product's value as it is; a row with a value no customs office reads is skipped and listed with the reason, and the others import. The sample CSV link on the import screen has all three columns. The Export button on the product list writes them as hsCode, originCountry and cusmaQualifying, and the import on the product list reads the file back, so you can fill them in a spreadsheet.
- Connected stores (Products → Import → Marketplace sync): a Shopify sync brings each product's HS code and country of origin from Shopify (where they live on the product's inventory). A WooCommerce sync brings them when the store uses WooCommerce Shipping & Tax, which keeps them on the product. A value the store does not have leaves yours as it is. If Shopify will not give them, the sync still runs and says so.
- API:
hs_code,origin_countryandcusma_qualifyingon products (see the API reference).
Every change to these three fields, from any of these places, is in Settings → Audit log with the old and the new value.
Buying the label
In the Fulfil dialog, Customs details appears for an order going to another country, before you buy. It lists each line as it will be declared: quantity, value (what the customer paid for that line, in the order's currency), weight, HS code and country of origin.
- If a product is missing its HS code, country of origin or weight, Buy label is unavailable and the products to fix are listed, each linking to its editor. Nothing is bought until they are complete.
- The declaration covers only what you put in this parcel, so a split shipment declares each box's own contents.
- Paid orders are declared as merchandise. An order you charged nothing for can be declared as a gift or a sample instead.
- After buying, Print label has Print commercial invoice (or the carrier's customs form) next to it. Print both and attach them to the parcel. They stay on the parcel in the order's Shipments list.
Canada Post to the United States
Since August 2025 Canada Post accepts a parcel for the United States (or Puerto Rico, Guam, the US Virgin Islands, American Samoa or the Northern Mariana Islands) only with a Zonos Declaration ID, a 13-character code that proves the duties were paid in advance. EasyPost has no way to send that code with a label, so for a parcel from Canada to the United States BestWebby never buys a Canada Post label:
- Canada Post rates are left out, and the cheapest of your other carriers is bought. Customs details in the Fulfil dialog says so before you buy.
- In Buy labels for many orders, Canada Post is not offered for those orders, and each one says why under its rate.
- If Canada Post is the only carrier on your EasyPost account that offers a rate, the label is refused with the reason and nothing is bought. Add UPS, FedEx, DHL or another carrier in EasyPost, then buy again.
- At checkout, a shipping method you set up with Canada Post as its carrier, whether it is quoted live or priced from your own rates, is not offered to an address in the United States or those territories, so no customer pays for a Canada Post service you could not then buy a label for. Orders shipped from the register and the Test calculator leave it out the same way. If Canada Post was the only method reaching that address, checkout says the store does not deliver there and the order is not taken.
Parcels inside Canada, and from Canada to other countries, can still go by Canada Post. A prepaid return label from a US customer back to you is bought from the US side and is not affected.
If your Canada Post account in EasyPost has Zonos
Canada Post can take your US parcels when your own Canada Post account, connected in EasyPost, has Zonos duties prepaid set up: EasyPost then gets the Declaration ID from Zonos when it rates Canada Post. Set that up with Zonos and Canada Post first, then go to Orders → Shipping → Carriers and, under Canada Post to the United States, tick My Canada Post account in EasyPost has Zonos duties prepaid set up and click Save. Only the store owner can change it, and the change is kept in the audit log.
- Canada Post rates come back for parcels from Canada to the United States: in the Fulfil dialog, the cheapest-rate choice, a label that names Canada Post, Buy labels for many orders, and return labels. Checkout and the register offer your Canada Post shipping methods to US addresses again.
- Zonos bills you directly for the US duties on each parcel and for its own fee. BestWebby does not collect or remit duties.
- If Canada Post still refuses a label for a duties reason, nothing is bought and you see Canada Post's own message with a reminder to check Zonos on that account. If Zonos is not set up there, untick the setting and buy with another carrier.
- Left unticked, which is how every store starts, Canada Post is never bought for these parcels.
What your customers see
When your origin address is outside the United States and a customer has an order delivered to the United States, checkout tells them, under the total, that import duties, taxes or fees may be collected by the carrier on delivery and are not included in what they pay at checkout. The order confirmation email says the same, in English or French as the customer bought, and so does the page a customer comes back to after paying with PayPal, Klarna, Clearpay or Affirm. Your default shipping policy page has the sentence too. A store shipping from inside the United States, or one with no origin address yet, shows nothing.
With the Zonos setting on, a store shipping from Canada can tick Show US shoppers that duties are prepaid under it. Checkout, the page after an external payment, the order confirmation email and your shipping policy then say instead that import duties on an order delivered to the United States are prepaid by the store, and that on an order worth more than US$800 they may still be collected by the carrier on delivery (Canada Post leaves those to be paid on delivery). Tick it only if every order you send to the United States goes with its duties prepaid: a label from another carrier does not prepay them. It is off by default, and turning the Zonos setting off turns it off too.
Export legend
The declaration states why no export filing was needed, by your origin country's rules:
| From | To | Legend | When |
|---|---|---|---|
| Canada | United States | NDR1 | non-restricted goods for use in the US |
| Canada | anywhere else | NDR2 | the parcel is worth under CAD 2,000 |
| United States | Canada | NOEEI 30.36 | any value |
| United States | anywhere else | NOEEI 30.37(a) | each HS code in the parcel is worth USD 2,500 or less |
Above those amounts you must file before the parcel leaves: in CERS (Canada), which gives you a proof of report number, or in AESDirect (US), which gives you an ITN. Enter that number in Export filing number in Customs details and the label carries it. Restricted or controlled goods need their permit whatever the value. For an order in another currency, the value is converted at a recent rate with a 10% margin, so a parcel near the limit asks for the filing number rather than risk being under-declared.
CUSMA (USMCA)
Tick Qualifies as originating under CUSMA (USMCA) on a product only if you can certify it. When every item in a parcel between Canada, the United States and Mexico is ticked, a FedEx label asks FedEx for a certificate of origin. Other carriers do not produce one; keep your own certification on file.
Shipping many orders at once
On the Orders list, tick the orders you want, or the box in the header for the whole page. A bar appears above the list:
| Action | What it does |
|---|---|
| Mark shipped | Ships every selected order exactly as if you shipped each one on its own page. Held, cancelled or unpaid orders are refused and listed with the reason, and the rest go ahead. You can give one carrier for all of them. Tracking numbers are per parcel, so add those on each order, or use Buy labels. |
| Buy labels | Buys a shipping label for each selected order in one go. See Buying labels for many orders below. |
| Picking list | Downloads a CSV of every line in the selection (order, SKU, product, variant, quantity) for whoever picks the stock. |
| Packing slips | Opens printable packing slips for the selection. |
| Add tags / Remove tags | Tags every selected order, for example wholesale or priority. |
Buying labels for many orders
Select up to 100 orders on the Orders list and click Buy labels. Each label is bought through your EasyPost account exactly as Buy label buys one from the Fulfil dialog, so connect EasyPost first (see Before your first label above).
1. Review. Every order is priced before anything is bought:
- Each order shows where it is going, the parcel weight (from its products' weights, with no box size, the same parcel the Fulfil dialog buys for) and where it ships from. Choose a location under Ship from to send the whole run from one of your locations instead of your shop origin.
- The cheapest rate is selected. Pick another carrier or service for any order from its list. The button shows how many labels will be bought and their total.
- Orders that cannot get a label are listed with the reason and left out: not paid yet, already shipped or cancelled, on hold, collected in store, going out on your own local delivery, partly shipped already, already labelled, no complete shipping address, nothing in it that ships, or a product with no weight. A label to another country also needs its customs details (see Shipping across a border).
- Each US address, and others if you turned that on, is checked with the carrier (see Checking the address with the carrier). One it cannot verify, or would correct, is listed with the carrier's reason and left out: open the order, click Ship, Buy label, and choose there. An address the carrier could not answer about is priced as usual, with Address not verified by the carrier under its rate.
- Mark each order shipped once its label is bought is ticked unless you untick it. Each order is then shipped as if from its own page, and its customer gets the usual shipping email with the tracking link. Untick it to buy and print first, then ship each order from its page.
2. Buying. Click Buy labels. The labels are bought in the background, a few at a time, and Orders → Label runs shows the run order by order as it goes. You can close the page; you get a notification, A bulk label run finished, when it is done.
- An order the carrier refuses (an address it cannot deliver to, for example) is marked Not bought with the carrier's reason. The others carry on.
- An order whose address the carrier doubts when the run reaches it is skipped with the carrier's reason. Decide on the order, then Resume (or Retry the rest): an address you chose to ship as entered, or corrected, is bought; one still undecided is skipped again.
- If a rate has gone up since you approved it, or the carrier no longer offers that service, the label is not bought and the order says so. Nothing is spent above the price you saw.
- If your EasyPost account cannot pay for postage, the run stops at that order and the orders after it are marked as not bought. Add funds or a payment method in EasyPost, then click Resume.
- Stop stops the run after the labels being bought at that moment. Labels already bought are kept.
- Resume (or Retry the rest on a finished run) tries again for orders that were not bought, and ships bought orders that could not be marked shipped. An order never gets a second label: one this run already labelled is only shipped, and a label bought just before an interruption is picked up rather than paid for again.
3. Printing. Choose 4 × 6 in label printer or US letter, one label per sheet, and tick Packing slip after each label to print each order's slip straight after its label. Download PDF gives one file with every label in the order you reviewed them; Open print view shows the same sheet to print from your browser. A label that is not an image (some carriers return a PDF) or that was voided since is listed at the end of the sheet; print it from its order.
Buying labels for many orders takes the same permission as buying one, and a suspended account cannot buy them. Postage is billed to your EasyPost account, as for single labels.
Pickup orders
A shopper who chooses to collect in store places a pickup order. Its page shows a Pickup panel in place of the shipping address and Ship:
- Choose the store under Pickup store and click Assign.
- When the order is packed, click Mark ready. The shopper is emailed that it is ready to collect, from your store's own address and in the language they shopped in.
- When they collect it, click Mark collected. The order is complete.
An order on hold must be released before it is handed over. A label cannot be bought for a pickup order. See Buy online, pick up in store.
Local delivery
To deliver orders yourself, add a method of type Own delivery to a zone on Orders → Shipping → Zones & methods. Checkout offers it only when every rule you set is met:
- Min order: the order is at least this amount.
- Delivery postcodes: the shopper's postcode starts with one of the codes you list, one per line or separated by commas.
M5Vcovers M5V 3L9, so you can list whole areas. A shopper who leaves the postcode blank is not offered it. Leave the list empty to offer it to every address in the zone. - Cutoff time and Available days: there is a delivery day within the next week. After the cut-off, today no longer counts.
There is no distance setting: checkout knows the shopper's postcode, not where they are on a map, so list the postcodes you drive to. If an older method still has a radius, its form says so, and saving the method removes it. To check an address, open Test calculator, enter its postcode and order value: it lists the methods checkout would offer, and any own-delivery method it would not, with the reason.
If you deliver orders yourself, the order page shows the day the delivery is for, for example "Local delivery on Thursday, 15 October 2026", worked out from your delivery days and cut-off when the shopper checked out. When you have delivered it, click Delivered locally. The order is marked delivered and the shopper is told; no tracking number is needed.
Draft orders
A draft order is an order you build for a customer: a sale taken by phone or email, a custom quote, or a sale in person. Open Orders → Draft orders (or Draft orders at the top of the order list) and click New draft order.
- Customer. Choose an existing customer, or type a new email address and a name. An address that already belongs to one of your customers is matched to them.
- Items. Search your products and click one to add it. A product with variants asks which one (size, colour), and the order takes stock from that variant. Leave the unit price blank to charge the variant's price, or the catalogue price; type a price to charge something else. Custom line adds an item that is not in your catalogue, such as engraving or installation: give it a name and a price, and untick Charge tax on this line if it is not taxed. A gift card product is charged at one of the amounts it offers; enter the email address it goes to, with an optional name and message, or leave the address blank to send it to the customer.
- Discount. An amount off, or a percent off, with an optional reason the customer sees. As at checkout, gift cards and Network Search items are never discounted: a percent is of the other items, an amount comes off them (never more than they come to), and a Network Search item is taxed on its full price. A draft with nothing else on it cannot take a discount, and the composer says so.
- Shipping. A name, such as Courier, and the charge. Tick Ship to an address to add where it goes.
- Link payable for. How many days the payment link works, 14 unless you change it (1 to 365).
The total at the bottom updates as you type. Tax is worked out with your tax settings for the shipping address, or for your store's address under Orders → Shipping → Origin when there is none, the same way checkout taxes a cart (with Stripe Tax when you have turned it on). Each product line is taxed by its product's tax category, as checkout taxes it; a custom line is taxed as general goods at your standard rate, the same as a product with no category, and a gift card is not taxed. A customer whose company account is tax-exempt pays no tax. The figure shown as Customer pays is exactly what the payment link charges. If you ask for more units than you have in stock, the composer says so.
Editing a draft
Until you send it, a draft can be changed: click Edit beside it. The composer opens with everything you entered, each line at the price it was drafted at, and Save changes prices it all again, discount, shipping and tax included, the same way as a new draft. A percent discount comes back as the amount it worked out to. The days the link is payable for are counted again from the day you save. Once a draft has been sent its customer may already be paying it, so it can no longer be edited: cancel it and create a new one.
Sending the payment link
Click Send invoice. The customer is emailed a link to a page that lists the items, discount, shipping, tax and total, where they pay by card. The card is taken on your own Stripe account, so connect Stripe under Settings → Payments first. The email goes from your store's own email address; if your store has no email domain of its own yet, or the address is on the do-not-email list, the email is not sent and you are told. The link works either way: Copy link puts it on your clipboard to send yourself. Resend emails the same link again.
When the customer pays, the draft becomes an order in your order list, ready to fulfil, with the customer, address, discount, shipping and tax on it. You get a New order from a draft order notification when it is paid by card, and the customer is emailed the same receipt as a checkout order, from your store's own email address once your email domain is set up. Its stock is taken the moment it is paid. Units you did not have in stock are recorded on the order as a backorder rather than refused, because the customer has already paid. Custom lines are listed in the order's note. Gift cards on it are issued when it is paid, one code per card, and emailed to their recipients the way a card bought at checkout is; a gift card on a company account's draft whose buyer has no email address is paid but not issued, and the order's note says so, so you can issue it from Catalog → Gift cards. Each line of the order keeps the tax category it was taxed under when the draft was made or last edited, even if you change the product's category before the customer pays, so a later edit, exchange or refund of it uses the rate the customer was charged. Drafts made before BestWebby started recording this, and drafts for company accounts, take the product's category when they are paid.
Marking a draft paid
If the customer paid another way, click Mark paid…, choose how (cash, e-Transfer, bank transfer, cheque or other) and say why, for example "Paid cash at the counter" or the e-Transfer reference. The reason is required. The draft becomes an order straight away, its stock is taken, and the payment is recorded as received outside BestWebby, with the reason and your name in the audit log. Only mark it paid once the money has reached you: for an Interac e-Transfer, once it is in your bank (BestWebby is not endorsed by or affiliated with Interac Corp.). Marking paid needs finance access and, if you use two-factor authentication, a code from your authenticator app. Its payment link stops working; a card payment that still arrives for it is refunded automatically.
Draft states
- Open: built, not sent. You can send it, mark it paid, cancel it or delete it.
- Invoice sent: the link is live until the date shown. After that it reads Link expired and cannot be copied or sent again; cancel it and create a new one. The date is counted from the day you made the draft, so an open draft can expire before it is sent too.
- Paid: it is an order. View order opens it.
- Cancelled: the link no longer works. A cancelled draft can be deleted; a sent or paid one cannot.
Drafts made for company accounts are on B2B accounts, not here. See B2B accounts.
Tracking and delivery updates
When a parcel has a tracking number from your EasyPost account, BestWebby follows it and updates the shipment as the carrier scans it. Your customer's tracking link opens a page in your store's branding, and they are emailed when it is out for delivery, waiting for them to collect, delivered, or held up by a delivery problem. These emails, and the tracking page their link opens, are in the language the shopper checked out in. Orders → Shipments lists every parcel with its destination, carrier and expected delivery date.
You can also set a parcel's status by hand on the Shipments tab of Orders → Distribution, choosing from the same steps the tracking page shows (pending, label created, in transit, out for delivery, available for pickup, exception, delivered). Marking the last parcel of an order Delivered marks the order delivered too, just as a carrier update would, so the customer can start a return.
Cancelling an order
Open the order and click Cancel order. The items go back into stock, except units that have already shipped, and the customer is emailed that the order was cancelled. An unpaid order is cancelled without an email.
If the customer has paid, the dialog offers Refund the remaining amount, ticked by default. Card payments go back to the card, and the cancellation email says the refund was issued. Leave it unticked and the customer stays charged until you refund them; the email then says you will be in touch about any refund. Refunding needs finance access and, if you use two-factor authentication, a code from your authenticator app. If the refund fails, the order is still cancelled and the page says the money did not move. For an order paid by Interac e-Transfer, tick it only once you have sent the money back from your own bank: it records the refund, it does not send it. (BestWebby is not endorsed by or affiliated with Interac Corp.)
Refunding an order
Click Refund on the order page. You can refund an amount, or pick the items to refund. The customer is emailed that the refund was issued. However many partial refunds an order has had, the total never goes above what was paid.
Refunding an amount. Enter the amount, or leave it blank for everything that remains.
- A refund puts back into stock only what never left: units that have shipped stay with the customer. Goods that come back are restocked when you receive the return.
- Partial amounts leave the stock alone. The refund that brings the order to fully refunded puts the unshipped units back, once, leaving out any units an item refund already dealt with.
Refunding items. Under Items to refund, enter how many of each item to refund, and tick Refund the shipping to give the shipping charge back too. The amount fills in for you: the price of those units, less their share of the order's discount, plus their share of the tax (tax charged on shipping goes with the shipping). You can type a different amount instead.
- Each item can be refunded only up to the quantity ordered, and the shipping only once. The order page shows how many of each item have been refunded and restocked.
- For each item, choose whether to put the units back in stock. Units that have not shipped yet are ticked: they go back to the location they were taken from, and they are no longer shipped with the order. Units that have shipped are not ticked; tick it only if the goods came back to you. A return you receive restocks on its own, so do not do both. Lot- and serial-tracked units that shipped are restocked through a return, where they can be scanned.
- Units you refund without restocking are written off: a later cancel or full refund does not put them back either.
- Two people refunding the same order at once cannot refund the same units twice: the second refund is refused and nothing is charged back twice.
- A refund of a cancelled order leaves it cancelled and does not restock again.
- Refunds ask for a code from your authenticator app if you use two-factor authentication.
- On an order paid by Interac e-Transfer, a balance the customer later paid by card after you edited the order counts towards the refund limit too. What goes back as an e-Transfer is never more than came in that way; the rest of the refund is store credit. (BestWebby is not endorsed by or affiliated with Interac Corp.)
When a card refund fails afterwards. Stripe accepts a card refund straight away, but the shopper's bank can still turn it down days later, for example when the card was reported lost or the account is closed. The money then comes back to your Stripe balance. When that happens, BestWebby books the refund back in your ledger, makes the amount refundable again, and tells you. An order the failed refund had closed as refunded goes back to the status it had before and is put on hold, because its items were put back in stock when it was refunded: check stock, then refund the shopper another way (store credit, or from your own bank) or release the hold and ship.
Tax with Stripe Tax
Under Settings → Payments → Automatic tax (Stripe Tax) you can have Stripe work out the tax at checkout from the customer's address and the tax registrations in your own Stripe account, instead of your own tax rules. It needs your Stripe account connected, and it runs on that account, under your registrations. While BestWebby has not switched Stripe Tax on for stores, the card says so and checkout uses your tax rules.
When it is on:
- Each item is taxed for what it is. A product with a tax category (basic groceries, prepared food, children's clothing and footwear, printed books, prescription drugs, prescribed medical devices, digital services, professional services, or not taxable) is sent to Stripe with that category's tax code. Any other product is sent by its type: physical goods, digital goods and services each have their own code. Shipping goes as shipping, so Stripe applies each place's rules. A gift card is money, so its sale is not taxed, whatever its category. Checkout, the cart's estimate, draft orders and order edits send the same codes.
- Prices that include tax work the same way: Stripe takes the tax out of the price instead of adding it.
- A pickup order is taxed at the store it is collected from, not at the shopper's address: Stripe is sent the pickup location's address. Your own tax rules do the same, so the store's province or state decides the tax whichever engine runs. A pickup location needs a country, a province or state and a postal code for this; see How a pickup order is taxed.
- If Stripe cannot answer (an outage, or an address too incomplete to tax), checkout uses your own tax rules for that order, so a sale is never blocked.
- Paid orders and refunds are recorded in your Stripe Tax. Your Stripe tax reports, the ones you file from, include an order once it is paid, dated when it was paid, and every refund gives its tax back there too: a full refund reverses the whole sale, a refund of items reverses those items (and the shipping, when you refund it), and a refund of an amount reverses that amount across the order. Draft orders and appointment bookings are recorded the same way; their refunds are reversed by amount.
- Recording never holds up a payment. If Stripe refuses or is down, the payment and the refund go through as normal, and BestWebby tries the record again every few minutes, then less often. After three failed tries you get a missing from your Stripe Tax records notification on the order.
- Two cases need you. Stripe keeps a calculation for 90 days, so an order paid later than that cannot be recorded automatically. And a card refund that fails after its tax was already given back cannot be undone in Stripe. In both cases you are notified: record the difference in your Stripe Tax by hand.
Tax with your own tax rules
Without Stripe Tax, tax comes from the rates you set under Tax rules. Each rule charges its rate on everything it covers, unless you give it a different rate for a product tax category. Click Category rates on a rule and enter the percent for each category that is taxed differently; leave a category blank to charge the rule's own rate on it. Not taxable (exempt) products are never taxed unless a rule names a rate for that category.
For your Canadian rules the page offers Canadian category rates: for each rule it recognises (GST at 5%, the HST of Ontario, Nova Scotia, New Brunswick, Newfoundland and Labrador and Prince Edward Island, British Columbia's PST, or a provincial part added to GST), it shows the rates federal and provincial law charge, with Apply to this rule. They come from the Canada Revenue Agency's GST/HST guidance (basic groceries, prescription drugs and listed medical devices are zero-rated; info sheets GI-063 and GI-065 for the point-of-sale rebates of the provincial part on children's clothing and footwear in Ontario, Nova Scotia and Prince Edward Island, and on printed books in Ontario, Nova Scotia, New Brunswick, Newfoundland and Labrador and Prince Edward Island) and British Columbia's PST bulletins 201, 205, 206 and 207. For example, under Ontario's 13% HST, children's clothing and printed books pay the 5% federal part only, and basic groceries pay nothing.
Nothing changes until you click Apply to this rule, and a rate you set yourself is never replaced. A rule the page cannot place (a single blended rate, a rule for one tax class, or Quebec, Saskatchewan and Manitoba, whose provincial rules you set yourself) says why instead of guessing. Prepared food in Ontario is rebated only under $4, which a rule cannot tell from the price, so it stays at the full rate. Check the rates against your own situation; they are a starting point, not tax advice.
The rate a category gets is the same everywhere an order is taxed by your rules: checkout, the cart's estimate, draft orders, the point of sale, exchanges and order edits. On the receipt, a rule charged at two rates (13% on a shirt and 5% on a child's shirt) shows as two lines.
How an order's status changes
Each status belongs to the action that causes it, so the record always matches what happened:
| Status | Set by |
|---|---|
| Processing | Payment, or moving a pending order on |
| Shipped, delivered | Shipping the order (and the carrier's updates), or Delivered locally |
| Ready for pickup, completed | Mark ready and Mark collected on a pickup order |
| Cancelled | Cancel order |
| Refunded | A refund |
| Returned | Marking a shipped, delivered or completed order returned |
An order cannot be moved straight to shipped, delivered or refunded by editing its status. Notes and tracking can still be edited on any order.
Changing the shipping address
On the order page, click Edit beside the shipping address. The address is checked against the same country rules as checkout (for example, a Canadian postal code must look like M5H 1A1), and the change is recorded in the audit log.
You can change it while the order is open (awaiting payment or processing) and before any shipping label is bought for it. Once a label exists, void the label first: a label is printed for one address, and a parcel would go to the old one. Once part of the order has left, the address can no longer be changed. Pickup orders have no shipping address.
Editing an order
A paid order can still change before it has all shipped: the customer wants one more, a different size, or to drop an item. On the order page, click Edit order.
Every line keeps the tax category its product had when it was sold. Editing, exchanging or refunding a line taxes it that way, even if you have since changed the product's category; a line added later is taxed by the category the product has then. Orders placed before BestWebby started recording it have no record and use the product's current category.
- Change a quantity. Type the new number for a line. A line can go down only as far as what has already shipped or been refunded: those units, and anything that came back in a return, are never touched.
- Add products. Search your catalogue and pick a product or variant. It is priced like a draft order line: the variant's own price, else the catalogue price, or type a price of your own.
- Add a custom line. A fee or a service with a name and a price, charged and not taken from stock. A custom line added by an earlier edit can be removed again. Tick Goes in the parcel for something you will pack, like a made-to-order piece or a printed insert: it is printed on the packing slip and pick list until the next parcel leaves, and on that parcel's slip. A fee or a service is never printed.
- Change the shipping. Shipping stays what the customer was charged unless you change it.
Some lines cannot change: items a supplier ships for you, licence keys, gift cards and digital items (they are delivered when the order is paid), and stock you resell from a supplier. An order cannot be edited once everything on it has shipped, after it was cancelled or refunded, while a shipping label is bought for the next parcel (void it first), or if it was imported, sold at the register, billed on terms or is the replacement in an exchange.
Click Review changes to see the order before and after: subtotal, discount, shipping, tax and total, and exactly what will be charged or refunded. Nothing is saved until you click Confirm edit. If a parcel ships, a refund goes through or another edit is saved in the meantime, the edit is refused with nothing changed, and you review it again.
How it is priced. The discount stays with the items it was given on: taking an item off removes its share of the discount, the same share a refund of it would use, and items you add are full price. Tax is worked out again only for what changed, at today's rates and by the same rules as checkout and draft orders; the tax on lines you did not touch stays what the customer paid.
When the order costs more, nothing is charged. The order shows Balance due and the customer gets a payment link to pay the difference by card, on your own Stripe account like a draft order's link. The balance shows on the order until it is paid; from there you can copy the link, send a new one (the link works for 30 days) or click Mark balance as paid for money that reached you another way. Without Stripe connected there is no link: collect the balance and mark it paid. Cancelling the order closes the link.
When the order costs less, the difference first comes off any balance still owed, and the rest is refunded once, the way the order was paid, counting towards the order's refund limit like every other refund. An edit that would give back more than can still be refunded is refused. If the card refund is turned down, the edit stays and the Edits list on the order shows Refund failed with Retry the refund; a retry never refunds twice.
If a refund is interrupted (the server restarts part way through, say), the edit shows Refund in progress. After 15 minutes BestWebby finds out what happened before it does anything: if your records or Stripe show the money went, the edit is marked refunded (with a note if the order's own record needs checking, and you are told); if nothing went, the refund is tried once more. If it cannot tell, or cannot reach Stripe, it is never tried again on its own: the edit keeps a note and you are told within the hour, so you can check the payment in your Stripe dashboard first.
Stock. Units you take off go back to the location they were taken from; units you add are taken from stock, from the order's own store first. Each move is in the stock history. If there is not enough on hand, the edit still goes ahead and the shortfall is recorded as a backorder on the order. Cancelling the order later puts back only what it still holds, so nothing is restocked twice.
What the customer sees. The order page in their account shows the order as it is now: the current quantities, items you took off gone, custom lines you added, the new total, their payments and refunds, and any balance still owed with a button to pay it. Their order history lists the same new total. The receipt they download prints the same lines and total, what they paid towards the order (less what an edit actually refunded) and the balance still due, the same amount the payment link asks for. A refund an edit promised that has not gone out yet (for example Refund failed, waiting for a retry) prints as Refund pending. Packing slips and pick lists list only what is still to ship.
Tick Email the customer a summary of the change to send them what was added and removed, the new total and the payment link or refund, from your store's own address and in the language they ordered in. Every edit is listed under Edits on the order and recorded in the audit log with the lines and totals before and after.
Anyone who can edit orders can change lines when the total stays the same. An edit that changes what the customer pays also needs access to finance, and asks for your two-factor code if you use one.
Importing order history
Moving from another platform? On the Orders list, click Import history and choose a CSV export of your past orders. Shopify and WooCommerce order exports work as they are.
- Check file reads it and shows how many orders will be created, how many are already here, and any rows it could not read and why. Nothing is written yet.
- Import creates them.
Imported orders are history, not sales. They move no stock, charge nobody and email nobody, and they are marked as imported so your reports can tell them apart from orders taken here. Importing the same file twice adds nothing the second time.
The file needs an order id, a customer email, a total and a date column. Currency and status are optional.
Exporting orders
Exporting orders is for the owner, admins, managers and accountants; other roles do not see the Export button. Each export is recorded in the audit log with how many orders it held.
On the Orders list, click Export. Choose a date range and a status if you want them, pick CSV or JSON, and click Download export. Orders come newest first, up to 10,000 in one file; if more match, you are told the file is partial and how many it holds, so narrow the date range and export again for the rest.
Each row has the order's id, date, status, channel, customer, items, subtotal, discount, shipping, tax, gift card, total, currency, payment method, tracking and shipping address. The money columns are in dollars and cents, as they appear on the order.
The last column, refunded_cents, is how much of the order has been refunded, as a positive number of cents (1250 is $12.50), adding up every refund on the order. A refund does not change an order's total, so this column is how you tell a refunded order from a fully paid one. In a JSON export the same figure is refundedCents. After it come po_number and buyer_reference, empty unless a business buyer gave them (poNumber and buyerReference in JSON). Refunds also appear, as negative amounts, in the ledger export under Finance → Accounting; see Accounting.
Returns
Customers start a return from their account once the order has arrived: it was delivered, it was a pickup order they collected, or it shipped at least 14 days ago (for parcels no carrier reports on). You can also open one for them. Work them in Orders → Returns: approve, mark received, then resolve with a refund to the original payment, an exchange or store credit. With EasyPost connected you can send the customer a prepaid return label once the return is approved. A customer's address in the US, where the parcel starts, is checked with the carrier first, the way an outbound label's is (an address elsewhere only if you turned that on); if the carrier doubts it you choose Use suggested address (for that label only, since the order's address is where it was delivered) or Use the address as entered. BestWebby then follows the return parcel the way it follows your outgoing ones, every 30 minutes: the return shows where the parcel is, and the customer sees the same on their Returns page. When the carrier delivers it you get a notification and the return list says Parcel delivered: inspect it. The return is not marked received for you, and nothing is refunded: open the parcel, check what came back, then click Mark received to restock it and resolve the return as usual. If the parcel cannot be tracked (for example, EasyPost was disconnected), the return says why and you are notified once. A return from another country is declared to customs as returned goods, at what the customer paid, and the customer sees Print the customs form too beside their label. Refunds never exceed what was paid, however many partial refunds an order has had.
Exchanges
A customer who asks for an exchange picks what they want instead: another size or colour of the item they are sending back, the same item again (for an item with no options), or anything else your storefront sells, found with a search on the return form. They see roughly how the price compares as they choose. You can send something else than they picked: on the return, click Send something else and choose the product and option.
Before you approve, the return shows exactly what goes out and what the price difference does. The difference compares the item coming back with the replacement at list price, for as many units as are coming back, and the order's discount carries over: a same-price swap costs nothing, as before.
- The replacement costs less. You return the difference, with the tax the customer paid on it. Choose, per exchange, Back to the original payment (a real refund, inside the order's refund limit like every other refund) or As store credit (a gift card code emailed to the customer). If you use two-factor authentication, both ask for your code.
- The replacement costs more. The customer owes the difference plus tax, worked out from your own tax rules for the order's address and the replacement's tax class and tax category, the same way checkout does. Where none of your rules covers that address, the rate the original order was charged is used. BestWebby issues them a store invoice and emails them a link to pay it; the replacement order is created on hold and ships once the invoice is paid. When the payment arrives the hold lifts by itself, you get a notification, and the customer is emailed. The customer can also pay from Returns in their account.
- Ship before payment. If the customer paid you another way, or you trust them to pay, tick Ship it now, without waiting for the payment when you approve, or click Ship without payment on the return later, and say why. The reason, who did it and when are recorded on the return and in the audit log. The invoice stays open, so the customer still owes it. A replacement waiting for payment shows Waiting for the exchange difference on its order page; the order's own Release hold does not release it.
- Cancelling an unpaid exchange. While the customer has not paid, click Cancel exchange on the return and say why. The invoice is voided, so its pay link stops working (a payment page the customer already has open is closed too), the replacement order is cancelled and its stock goes back, and the customer is emailed. Cancelling the replacement order from its own order page does exactly the same. If the customer paid in the meantime, the cancel is refused and the replacement can ship. An exchange still unpaid 30 days after you approved it is cancelled the same way automatically, and you are notified. The return then shows Exchange cancelled unpaid or Expired unpaid; if the item came back, refund or credit the customer from the original order.
A customer can only pay online once Stripe is connected in Settings → Payments. Without it, or for a customer with no email address, approve with Ship it now and collect the difference yourself.
The replacement's stock is taken at approval, from a location where you keep stock by location, and an exchange whose item is out of stock is refused with the return left open. The item coming back is restocked when you mark the return received, as with any return. If a card refund of the difference is turned down by the payment processor, the exchange still goes ahead and the return shows Difference refund refused: click Retry the refund, or Give it as store credit instead. A retry never refunds twice.
Exchange emails go out in the language the customer ordered in.