agentsclimarketplace

Create sales order

Skill skuio/sku-skills/dist/claude/orders/create-sales-order

Create a new sales order in SKU.io with one or more line items. Use this to place an order for a customer — capturing the order status, order date, optional customer and store, and the SKUs, quantities, and unit prices being sold. Resolve products first with find-product so each line references a real product.From its SKILL.md

Install
npx -y skills add skuio/sku-skills --skill create-sales-order

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its file declares

Copied from the file, not written here

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

4.9 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it

Create a Sales Order

Use this skill to create a sales order — the record of something being sold to a customer, with line items. It maps to POST /api/sales-orders (scope orders:write).

Before you post

  1. Resolve every product. For each thing being sold, run the find-product skill to get a real product_id (or exact sku). A line can reference product_id or sku; a line with neither is a free-text/non-product line and still needs a description and amount.
  2. Decide the status. Use order_status: "draft" while assembling — a draft may have zero lines. Any non-draft status requires at least one line. If unsure which non-draft status this account uses, create it as a draft first.
  3. Have the money right. amount on each line is the unit price, not the line total. quantity × amount is the line value; SKU.io computes totals.

Required fields

  • order_status — string (see above).
  • order_date — a date; if you omit it the client defaults to now.
  • sales_order_lines — required unless the order is a draft. Each line needs:
    • description (required, max 255)
    • quantity (required, ≥ 0)
    • amount (required unit price)
    • product_id or sku to link a catalog product (optional but recommended)
    • warehouse_id (optional; required if you set a warehouse_routing_method of warehouse)

Useful optional header fields: customer_id, store_id, sales_channel_id, customer_po_number, shipping_method_id, shipping_address_id, billing_address_id, ship_by_date, memo_for_customer, sales_rep_name.

Request

curl -sS -X POST "https://$SKU_TENANT.sku.io/api/sales-orders" \
  -H "Authorization: Bearer $SKU_PAT" \
  -H "Content-Type: application/json" -H "Accept: application/json" \
  -d '{
    "order_status": "open",
    "order_date": "2026-07-09",
    "customer_id": 4821,
    "customer_po_number": "PO-99123",
    "sales_order_lines": [
      { "product_id": 1567, "description": "Blue Widget", "quantity": 10, "amount": 12.50 },
      { "sku": "GADGET-RED-02", "description": "Red Gadget", "quantity": 3, "amount": 29.00 }
    ]
  }'

See examples/request.json for the same body as a file.

Handle the response

  • 201/200 → the created sales order (with its id) is returned. Capture the id, then output the direct link to the sales order so the user can click straight into it:

    https://{tenant}.sku.io/v2/orders/sales-orders/{id}
    

    Always end by giving the user this URL along with the SO number and order status — a sales order buried in a table search or filter is easy to miss.

  • 422 → validation failed. The errors map names the offending fields with dot-notation for lines, e.g. sales_order_lines.0.quantity. Fix those specific fields and resubmit — never blind-retry the same body. See shared/errors.md.

  • 403 → the token lacks orders:write. Mint a token with that scope.

Guardrails

  • Don't invent customer_id, product_id, or store_id values — resolve them first, or omit the optional ones.
  • Creating an order is not idempotent: a retry after an ambiguous timeout can create a duplicate. On timeout, list recent orders (or search by customer_po_number) before re-posting.

API operations

MethodPathWhat it does
POST/api/sales-ordersCreate a sales order with header fields and an array of line items.

Authentication

Every request authenticates with a SKU.io Personal Access Token sent as a Bearer token:

Authorization: Bearer <YOUR_SKU_PAT>
  • Base URL: https://{tenant}.sku.io (replace {tenant} with your account subdomain)
  • Required scopes: orders:write, products:read

Mint a token under Settings → Developer → Personal Access Tokens in the SKU.io web app. See shared/authentication.md for the full flow.


Improve this skill

Did this skill fall short—an unclear step, a wrong endpoint, or something it couldn't finish? Don't just work around it: capture what was off and open a pull request so the next agent does better.

  • Repo: https://github.com/skuio/sku-skills
  • Edit the canonical skill under skills/<domain>/<name>/ (not this generated file), then run npm run build and open a PR. External contributors: fork the repo and PR from the fork.
  • The full agent workflow is in AGENTS.md.

Your agent can do this end to end. The library gets better every time someone sends a fix.

What ships with it: 5 files

11.7 KB alongside SKILL.md

examples/

Gives 0 of the 12 instructions most sales audience skills give in ~1.2k tokens

Counted across 401 of the 401 authors here whose files we hold, read 2026-08-07

  • Read product marketing context before asking questionsin 21 of 401, across 11 files
  • Acknowledge competitor strengths honestlyin 18 of 401, across 7 files
  • Start every page with a summaryin 15 of 401, across 4 files
  • Use a single, low-friction call to actionin 15 of 401, across 7 files
  • Create a single source of truth for each competitorin 14 of 401, across 3 files
  • Make each follow-up email add new valuein 11 of 401, across 5 files
  • Cut any sentence that does not drive a replyin 10 of 401, across 4 files
  • Tie personalization directly to the problemin 10 of 401, across 4 files
  • Write paragraph comparisons for each dimensionin 9 of 401, across 3 files
  • Link between related competitor pagesin 9 of 401, across 3 files
  • Keep subject lines short and lowercasein 9 of 401, across 3 files
  • Define ideal customer profile from top customersin 9 of 401, across 3 files

Said here and by no other author read

  • resolve products via find-product first
  • set order status to draft while assembling
  • treat line amount as unit price
  • include required fields in the request
  • output the direct sales order url
  • fix specific fields on validation failure

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.