repairshopr-product-serial

star 0

Manage individual serialized product instances in RepairShopr

omiinaya By omiinaya schedule Updated 3/6/2026

name: repairshopr-product-serial description: Manage individual serialized product instances in RepairShopr license: MIT compatibility: opencode metadata: audience: technicians, parts managers api: GET /products/{product_id}/product_serials, POST /products/{product_id}/product_serials, PUT /products/{product_id}/product_serials/{id}, POST /products/{product_id}/product_serials/attach_to_line_item

What I do

I manage individual serialized product instances. For products marked as serialized: true, each physical unit has a unique serial number. These serials track the lifecycle of each unit: from stock, to assignment to a line item (invoice/estimate/ticket), to being sold/used, returned, etc.

When to use me

Use this when:

  • Recording serial numbers for newly received inventory
  • Looking up which serials are in stock, reserved, sold, or returned
  • Attaching a specific serial number to a repair ticket or invoice line item
  • Updating serial details (condition, notes, price adjustments)
  • Tracking warranty or repair history by serial

How to use

Required API base URL:

  • VITE_REPAIRSHOPR_SUBDOMAIN
  • VITE_REPAIRSHOPR_API_KEY

Permissions: "Products - List/Search" for reading. "Products - Edit" for create/update/attach operations.

List Product Serials (GET /products/{product_id}/product_serials)

  • product_id (integer, required) Optional:
  • status (string) - Filter by status: "reserved", "sold", "returned", "in_transfer", "breakage", "used_in_refurb", "in_stock"
  • page (integer) - Page number (100 per page)

Create Serial (POST /products/{product_id}/product_serials)

  • product_id (integer, required) Body:
  • serial_number (string) - The unique serial
  • condition (string, optional) - Condition assessment
  • price_cost_cents (integer, optional) - Cost in cents
  • price_retail_cents (integer, optional) - Retail price in cents

Update Serial (PUT /products/{product_id}/product_serials/{id})

  • product_id (integer)
  • id (integer) - Serial ID Body: serial_number, condition, price_cost_cents, price_retail_cents, notes (optional)

Attach Serial to Line Item (POST /products/{product_id}/product_serials/attach_to_line_item)

  • product_id (integer, required) Body:
  • record_type (string) - Typically "LineItem" for invoices/estimates
  • line_item_id (integer) - The line item to attach to
  • product_serial_ids (array of integers) - IDs of serials to attach

Get Serial (not separately documented but GET by ID may exist via list; main endpoint is product_serials)

Example call:

// List serials for a product (e.g., to find in-stock ones)
const serials = await skill({ name: "repairshopr-product-serial" }, {
  product_id: 123,
  status: "in_stock"
})

// Add a new serialized unit to inventory
const newSerial = await skill({ name: "repairshopr-product-serial" }, {
  serial_number: "C02XYZ123456",
  condition: "New",
  price_cost_cents: 20000,  // $200.00
  price_retail_cents: 39999 // $399.99
}, { product_id: 123, method: 'POST' })

// Attach a serial to a repair ticket's line item (when servicing that exact unit)
await skill({ name: "repairshopr-product-serial" }, {
  record_type: "LineItem",
  line_item_id: 456,
  product_serial_ids: [newSerial.product_serial.id]
}, { product_id: 123, method: 'POST', endpoint: '/attach_to_line_item' })

Response includes:

  • List: product_serials array, each with id, serial_number, status, condition, instance_price_cost, instance_price_retail, location_id
  • Create/Update: product_serial object
  • Attach: status message or errors

Important

  • Only products marked as serialized: true should have serials; but API may still accept them otherwise
  • Serial numbers must be unique within the product
  • status indicates where the serial is in its lifecycle; common status: "In Stock"
  • Attaching to a line item typically happens when you sell or service that specific unit
  • attach_to_line_item can fail with errors if serial already attached elsewhere

Related skills

  • repairshopr-product - To ensure product is serialized and get product info
  • repairshopr-ticket-line-item - For attaching serials to ticket line items
  • repairshopr-estimate / repairshopr-invoice - For line items in those contexts
Install via CLI
npx skills add https://github.com/omiinaya/repairshopr-skills --skill repairshopr-product-serial
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator