Purchasing · asked in Claude

“can you set up a new part for us and get a small starter order placed with one of our vendors for it?”

You have rights to create both the part and the purchase order.

Fishbowl MCP connectedin Claude
can you set up a new part for us and get a small starter order placed with one of our vendors for it?
✓Prepared the change · you confirmed · committed

You have rights to create both the part and the purchase order. Before I create anything, I need these details, since a part is permanent once it's in Fishbowl:

The part

  • Part number and description
  • Unit of measure (each, case, lb…)
  • Type: inventory, non-inventory, or service. I'll assume inventory if you don't say.
  • Is it tracked by lot, serial, or expiration date? Optional.

The starter order

  • Vendor. These are your most active ones right now:
  • Rocky Mountain Chocolate
  • Williams Treat Company
  • A&B Distribution
  • Brent's Food Supply
  • Mike's Salt
  • Chuck's Flour Shop
  • Johnson Manufacturing
  • Or any other vendor you name.
  • Quantity and unit cost
  • The vendor's part number, if it differs from yours. Optional.
  • Should the PO go in as a bid request (draft) or issued (sent to the vendor)? I'd suggest a bid request so you can review it in Fishbowl first.

Once you reply, I'll prepare both and show you a preview. Nothing gets committed until you approve it.

let's add a new ingredient - Dark Cocoa Powder, call it DARK-COCOA. we buy it by the pound, regular inventory part, nothing tracked. put in a starter order to Brent's Food Supply for 100 lbs at about a dollar a pound, and just make it a bid request so we can look it over first.
✓Prepared the change · you confirmed · committed

The part is ready to create. Here's the preview:

New part: DARK-COCOA

FieldValue
DescriptionDark Cocoa Powder
Unit of measurePound (lbs)
TypeInventory
PO item typePurchase
TrackingNone
ActiveYes

This creates a new part. It doesn't update an existing one.

Next step: the bid request to Brent's Food Supply. Fishbowl won't check the PO until the part exists, so I'll prepare it right after this part is created. Here's my plan for it:

  • Line: 100 lbs of DARK-COCOA at $1.00/lb, for a total of $100.00
  • Status: Bid Request
  • Location group: Main
  • Remit-to: Brent's Food Supply, 777 South Delivery Lane, Salt Lake City, UT 84111
  • Carrier: Will Call
  • Ship-to: I'll copy it from your last Brent's PO (#231): "Default Address, Main Street." That looks like a placeholder. If you'd like your real warehouse address on this PO, send it to me. Otherwise I'll use that one so it matches your past orders.

Should I create the part now? The preview expires in about 30 minutes.

yep, that all looks right - go ahead and create the part, and the placeholder address is fine for now. then go ahead and put the bid request in to Brent's.
✓Prepared the change · you confirmed · committed

I created the part and the bid request in Fishbowl:

  • DARK-COCOA (Dark Cocoa Powder) is a new inventory part, bought in pounds, with no tracking.
  • PO 232 went to Brent's Food Supply as a Bid Request. It's for 100 lbs of DARK-COCOA at $1.00/lb, $100.00 total, with Will Call as the carrier, from location group Main.

PO 232 is waiting in Fishbowl for you to review. Once the price is confirmed, issue it from there. You'll also want to put your real warehouse address in place of the placeholder ship-to before it goes to Brent's.

A real 89-second session on our demo Fishbowl, replayed faster.

Behind the scenes

What your admin sees in the query log for this conversation.

2changes committed
✓you confirmed first
4read-only checks
✓who/what/when logged

Every step the AI took

  1. 1
    Checked its write permissions
    48 import types you're allowed to write
  2. 2
    List active vendors with recent purchase order activity so the user can pick one for a starter order
    ✓ passed read-only checkrow cap applied
    Show the SQL
    SELECT v.name, COUNT(p.id) AS po_count, MAX(p.dateIssued) AS last_po
    FROM vendor AS v
    LEFT JOIN po AS p ON p.vendorId = v.id
    WHERE v.activeFlag = 1
    GROUP BY v.id, v.name
    ORDER BY last_po DESC
    LIMIT 15
    14 rows · 294 ms
  3. 3
    Checked the available import types
  4. 4
    Check that part DARK-COCOA doesn't exist yet, find the pound unit of measure, and confirm the exact vendor name for Brent's Food Supply
    ✓ passed read-only checkrow cap applied
    Show the SQL
    SELECT (SELECT COUNT(*)
    FROM part
    WHERE num = @num) AS part_exists, (SELECT GROUP_CONCAT(CONCAT(name, '|', code))
    FROM uom
    WHERE code IN ('lb', 'lbs') OR name LIKE '%pound%') AS lb_uoms, (SELECT name
    FROM vendor
    WHERE name LIKE 'Brent%'
    LIMIT 1) AS vendor_name
    LIMIT 101
    1 row · 175 ms
  5. 5
    Read Fishbowl notes · IMPORT_Parts.md
  6. 6
    Read Fishbowl notes · ORDER_PurchaseOrder.md
  7. 7
    Get remit-to, ship-to, carrier and location group from recent Brent's Food Supply POs to reuse on the new bid request
    ✓ passed read-only checkrow cap applied
    Show the SQL
    SELECT p.num, p.remitToName, p.remitAddress, p.remitCity, p.remitZip, rs.code AS remitState, p.shipToName, p.shipToAddress, p.shipToCity, p.shipToZip, ss.code AS shipState, c.name AS carrier, lg.name AS locationGroup
    FROM po AS p
    JOIN vendor AS v ON v.id = p.vendorId
    LEFT JOIN stateconst AS rs ON rs.id = p.remitStateId
    LEFT JOIN stateconst AS ss ON ss.id = p.shipToStateId
    LEFT JOIN carrier AS c ON c.id = p.carrierId
    LEFT JOIN locationgroup AS lg ON lg.id = p.locationGroupId
    WHERE v.name = @vendor
    ORDER BY p.dateCreated DESC
    LIMIT 3
    3 rows · 188 ms
  8. 8
    Find the company's own address to use as the ship-to on the purchase order
    ✓ passed read-only checkrow cap applied
    Show the SQL
    ? rows · ? ms
  9. 9
    Prepared the import (preview)
    Show the file it prepared parts-import.csv
    Exactly what you saw and approved before anything was written.
    PartNumberPartDescriptionUOMPartTypePOItemTypeActive
    DARK-COCOADark Cocoa PowderlbsInventoryPurchasetrue
    Parts: 1 row, setting Active, POItemType, PartDescription, PartNumber, PartType, UOM.
  10. 10
    Committed the import
    committed
  11. 11
    Prepared the order (preview) · admin
    Show the file it prepared purchase_order.json
    Exactly what you saw and approved before anything was written.
    {
      "items": [
        {
          "uom": "lbs",
          "part": "DARK-COCOA",
          "price": 1,
          "quantity": 100
        }
      ],
      "vendor": "Brent's Food Supply",
      "carrier": "Will Call",
      "ship_to": {
        "zip": "00000",
        "city": "none",
        "name": "Default Address",
        "state": "UT",
        "address": "Main Street"
      },
      "remit_to": {
        "zip": "84111",
        "city": "Salt Lake City",
        "name": "Brent's Food Supply",
        "state": "UT",
        "address": "777 South Delivery Lane"
      },
      "location_group": "Main"
    }
    Purchase order to Brent's Food Supply, 1 line(s), total 100.00, status Bid Request.
  12. 12
    Committed the order
    order 232 created

Reads are checked and row-capped. Every change was shown to you as a preview and written only after you confirmed — under your own Fishbowl login, limited to what you can do. The request, the preview, and the committed action are all logged for your admins.

Ask this about your own Fishbowl

We'll set up ILC MCP on your Fishbowl and build the queries your team needs.