Record Offline and Manual Sales (Walk-in, Instagram, Corporate)

Add an offline or manual sales channel (walk-in, Instagram, corporate orders), record its sales as manual orders with any delivery costs or discounts, deduct stock, and see the channel in every report in its own colour.

Help Article Last updated Oct 14, 2026 7 min read

Not every sale comes through a marketplace. Walk-in customers, Instagram DMs, WhatsApp orders and corporate purchase orders all take stock off your shelves too. In OneCart you record these as manual orders on an offline / manual channel, so your inventory stays right and your reports show every sale.

A manual channel works like any connected shop: it has a name, it shows up in your reports and filters, and its sales count towards your totals. The only difference is that there is no integration behind it, so OneCart never imports listings from it or pushes stock to it.

1. Add an offline / manual channel

  1. Go to Platforms → Add new, or open https://app.getonecart.com/shops/new.
  2. Pick the Offline / manual channel card. You can also go straight to https://app.getonecart.com/shops/new?platform=manual.
  3. Fill in:
    • Channel name: what you call this sales channel, for example Walk-in, Instagram or Corporate. This is the “platform” you’ll see in reports and filters. It can’t be the name of a platform OneCart connects to (such as Shopee or Lazada). Connect those from the Connect page instead.
    • Shop name: which shop or outlet it is, for example Orchard Road store. You can have several shops on the same channel, such as two walk-in outlets.
    • Chart colour: the colour this channel gets in your sales charts.
  4. Click Add channel.

The channel now appears on your Platforms page marked Manual channel. Click Edit channel to rename it, change its colour, or make it inactive.

2. Record a sale as a manual order

  1. In the sidebar, under Orders, click Add Manual Order. You can also click Add manual order on the Orders page, or open https://app.getonecart.com/orders/new.
  2. Choose the Channel, for example Walk-in: Orchard Road store. If you haven’t set one up yet, the page links you to step 1.
  3. Check the Order Number. OneCart suggests one; you can type your own receipt or invoice number instead.
  4. Set the Order Date and the Status (completed or pending, see Pending vs completed below).
  5. Add the SKUs that were sold. Search for each product, then set the Quantity Sold and the Unit Sold Price. The line totals update as you type. For an order with many lines, upload them from a CSV instead (see Bulk-add line items from a CSV below).
  6. Optional: under 3. Expenses & deductions, click Add expense for each cost you paid on this sale. Pick the type, enter the amount and, if you like, a short note (up to 100 characters, for example the courier’s name):
    • Delivery cost: what you paid to deliver the order.
    • Payment fee: card, PayNow or payment-link charges.
    • Discount given: a discount you gave the customer.
    • Other expense: anything else, such as packaging.
  7. Check the totals at the bottom of the page before you save. They update as you type:
    • Items subtotal: the sum of the line totals.
    • Expenses: the sum of your expense rows.
    • Net total: items subtotal minus expenses, which is what you keep from the sale. Expenses can’t be more than the items subtotal.
  8. Leave Deduct SKU inventory after saving ticked to take the quantities off your stock. OneCart then syncs the new stock levels to your connected marketplaces, just as it does for a marketplace order.
  9. Click Create New Order.

Example: Acme Retail sells 2 × TEE-RED-M at $25 and 1 × CAP-BLK at $15 to a walk-in customer. The manual order on Walk-in: Orchard Road store totals $65, both SKUs go down by the quantities sold, and the sale appears under Walk-in in the sales reports. If Acme Retail also paid $8 for delivery and gave a $5 discount, it adds a Delivery cost of $8 and a Discount given of $5: the items subtotal stays $65 and the net total is $52.

The order page lists the expenses under Manual order totals, and they appear in your fee reports under the channel name, next to your marketplace fees. Two rows of the same type on one order are added together.

Only SKUs from your Item Master can be added. If you sold something that isn’t in OneCart yet, create the product first.

Bulk-add line items from a CSV

Corporate and wholesale orders can have dozens of lines. Instead of searching for each SKU, you can upload them all at once:

  1. On the Add Manual Order page, under 2. Add SKU, click Download template to get a CSV with the right columns.

  2. Fill in one row per SKU:

    ColumnRequiredWhat to enter
    skuYesThe SKU exactly as it is in your Item Master. Upper/lower case and extra spaces don’t matter.
    qtyYesThe quantity sold, a whole number of 1 or more.
    sold_priceNoThe unit price you sold at. Leave it blank (or leave the column out) to use the SKU’s price in OneCart.

    For example:

    sku,qty,sold_price
    TEE-RED-M,24,18.00
    TEE-RED-L,12,
    CAP-BLK,30,9.50
    
  3. Click Upload CSV and pick your file. You can upload up to 1,000 rows at a time.

  4. The lines appear in the table, and a summary above the table tells you:

    • how many lines were added,
    • which SKUs aren’t in your Item Master (they are not added; create them first or fix the spelling and upload again), and
    • which rows were skipped because the quantity or price wasn’t valid.

    If a SKU is already in the table, or appears twice in the file, its quantity is added to the existing line instead of creating a second line.

  5. Review the lines and the totals. You can still change any quantity or price, delete a line, or add more SKUs by search.

  6. Click Create New Order. Nothing is saved until you do.

Example: Acme Retail gets a corporate order from Example Co. for 24 × TEE-RED-M at a special price of $18, 12 × TEE-RED-L at the normal price and 30 × CAP-BLK at $9.50. Acme Retail uploads the three rows above, checks the totals and clicks Create New Order.

Pending vs completed

Use the status to track whether you’ve handed the order over yet:

  • pending: you’ve recorded the sale but haven’t delivered it or handed it to the customer yet, for example a corporate order waiting to be packed. It shows with a yellow badge.
  • completed: the order has been delivered or handed over. It shows with a green badge.

Both count in your sales reports, the same way a marketplace order counts before it ships. Only a reversed (cancelled) order drops out of your reports.

The status doesn’t change your stock. Whether the quantities are deducted is decided once, when you create the order, by the Deduct SKU inventory after saving tick box.

Change the status: open the order and click Mark as completed (or Mark as pending to switch it back). The change is added to the order’s Status History. A reversed order can’t be switched back.

Find your open manual orders: on the Orders page, click Pending manual to list the manual orders still waiting to be handed over, or Completed manual for the delivered ones. Both show the last 12 months. Click Clear in the filters to see all channels again.

Example: Acme Retail records Example Co.’s corporate order as pending on Monday and its stock is deducted straight away. When the courier delivers it on Wednesday, Acme Retail opens the order and clicks Mark as completed.

3. Reverse a manual order

If a manual order was entered by mistake or the customer returns everything, open the order and click Reverse Manual Order. OneCart:

  • puts the deducted quantities back on stock and syncs them to your channels,
  • marks the order Cancelled,
  • logs the change in each SKU’s stock history, and
  • stops counting its expenses in your fee reports, as for any cancelled order.

A manual order can only be reversed once, and only if its stock was deducted when it was created.

4. See your offline sales in reports

Manual channels are included everywhere sales are reported: Analytics, sales by platform, sales by shop, and SKU, brand and category reports. Each manual channel uses the chart colour you picked, so Walk-in and Instagram are easy to tell apart from your marketplaces.

Using the API

Developers can create manual channels and record manual orders through the OneCart API v2 (POST /api/v2/shops/manual, POST /api/v2/orders/manual, POST /api/v2/orders/{id}/reverse, PATCH /api/v2/orders/{id}/manual to switch between pending and completed). POST /api/v2/orders/manual also accepts the order’s expenses. See the OneCart Developer API Documentation for the details.