Internal Tools & SOPs
Live tools for checking stock and finding gaps, plus written procedures for how we do things. If something's out of date or missing, tell Matt.
Tools
Live data, updated automatically. Open one to check something right now.
Stock Watch
What's out of stock, running low, or still pulling traffic while empty. Build a purchase order and export it.
Doc Audit
Which products are missing an SDS, COA, or spec sheet, sorted by page views so the busiest gaps get filled first.
Help Desk
Which tickets are waiting on us, who owns them, and how long they have been sitting. Business hours, not wall clock.
Sales Analytics
Quote close rate, revenue and open pipeline by month and channel. Built from the archived Brightpearl history.
SKU Registry
Look up any product to find its resources SKU, so you name uploaded files correctly the first time.
How-to guides
Written procedures. Read these when you need to know how we do something.
Adding Product Docs
How to add an SDS, COA, spec sheet, or drawing to a product page via HubSpot Files, including naming rules.
Setting Policy Fields
The Dropship, Lead Time, Origin, Return Window, Warranty Term, and Related Product fields, and what each one changes on the product page.
More coming
New guides get added here as we write them.
Product Docs SOP
Upload a PDF to HubSpot Files with the right name and it appears on the product page automatically. That's the whole system.
1Set up the product (two custom fields)
Before uploading docs for a product, add these two custom fields on the BigCommerce product:
product_resources_sku — the SKU the documents will be named with (e.g. E200). Add this on every product to remove any guesswork. For products with size variants it is required. Keep it short and clean.display_name — the product name shown in the COA and SDS sections (e.g. Ethanol 200 Proof - USP (99.97%)). Without this field, no name displays. If we add manual or spec sections later, the same field will be used there too.2Know the folders
Every document lives in one of these folders in HubSpot Files. The folder tells the website what kind of document it is.
3Name the file
Filenames follow one pattern: the SKU from step 1, an underscore, and the document type in caps.
| Doc type | Folder | Filename |
|---|---|---|
| Safety Data Sheet | SDS | {SKU}_SDS.pdf |
| Technical Data Sheet | TDS | {SKU}_TDS.pdf |
| Spec Sheet | Spec | {SKU}_SPEC.pdf |
| User Manual | Manuals | {SKU}_MANUAL.pdf · multiple hardware versions: {SKU}-V1_MANUAL.pdf, {SKU}-V2_MANUAL.pdf → shows as "User Manual (V1)" / "(V2)" |
| COA | COA | {SKU}_COA_{LOT}_{YYYY-MM-DD}.pdf |
| Drawing | Drawings | {SKU}_DRAWING.pdf · size-specific: {SKU}-50L_DRAWING.pdf, {SKU}-100L_DRAWING.pdf → shows as "Drawing (50L)" / "(100L)" |
| Compliance | Compliance | {SKU}-ETL_COMPLIANCE.pdf → shows as "ETL Compliance". The cert name in the filename is the title (keep acronyms uppercase: -ETL, -CE, -UL). A plain {SKU}_COMPLIANCE.pdf shows as "Compliance". |
| Warranty | Warranty | {SKU}_WARRANTY.pdf |
| Software | Software | {SKU}_SOFTWARE.zip · versions: {SKU}-V2_SOFTWARE.zip → "Software (V2)". Zip files are fine here — this is the one type that isn't a PDF. |
| Guide | Guides | {SKU}-DECARB_GUIDE.pdf → shows as "Decarb Guide". The topic in the filename IS the customer-facing title, so name it like a customer would say it: -CLEANING, -QUICK-START. A single plain {SKU}_GUIDE.pdf shows as "Guide". |
product_resources_sku is UHC-720 and you're uploading a spec or cut sheet, the filename is UHC-720_SPEC.pdf and it goes in the Spec folder.E200_COA_EAB-50526_2026-05-12.pdf4Upload and verify
- PDF only. If the doc arrived as a Word file, export it to PDF first — a .docx will look fine in search but silently never appear on the product page
- Drag the renamed PDF into the matching HubSpot Files folder
- Confirm the file is set to public visibility
- Open the product page after 1-2 minutes and hard refresh (Ctrl+Shift+R). The new button or lot should be there
Manuals/Archive/, date in the name is fine there), then upload the new PDF with the same filename to replace it. Every existing link now serves the new version; support can still email the old one if a customer's unit needs it.5Families, variants & versions
One listing, many sizes: add product_resources_sku with one base SKU and name all shared docs with it. Customers can still search by any variant model number.
Several listings, one manual (e.g. the 20L and 45L centrifuges): give every listing the same product_resources_sku and a family-wide display_name, upload one file. The doc pages collapse them into one card with a link to each listing.
Two hardware versions, two manuals: {SKU}-V1_MANUAL.pdf and {SKU}-V2_MANUAL.pdf → two labeled buttons. This is for different machines that both stay supported — a mere document revision of the same manual is a same-filename replacement instead (see step 4).
Size-specific drawings: USA-OMNICORE-50L_DRAWING.pdf → Drawing (50L). A base USA-OMNICORE_DRAWING.pdf can exist alongside them.
_ or -. So UC never claims UCF-* files, and E200 never claims E2000_*. Variants like UC-V2_MANUAL still belong to UC.6Customer document requests
When a "Request a document" comes into the sales inbox: find or get the doc, upload it following this SOP, then reply to the customer with the direct link. One upload fixes it for everyone.
DO NOT
- Do not upload Word docs. Export to PDF first. A .docx shows up in search but silently never appears on the product page.
- Do not rename or delete the folders in HubSpot. The website looks for these exact folder names. Changing one breaks every document of that type across the whole site.
- Do not change a file's visibility to private. Customers will get a login wall instead of the document.
- Do not use lowercase suffixes.
_sdswill not work. It must be_SDS. - Do not put spaces or slashes in filenames. Use dashes instead.
- Do not upload the same doc to multiple folders. One doc, one folder.
- Do not delete and re-upload to "update" a file. Upload the new version with the exact same filename to replace it. Deleting first leaves a gap while caches clear.
- Do not use vendor names as the filename. Files like
Aldrich_Ethanol_COA_final_v2.pdfwill never appear on the site. Rename to the convention first. - Do not guess a SKU. Copy it from the product's
product_resources_skucustom field. One wrong character and the doc silently never shows. - Do not skip the
display_namecustom field. Without it, no product name shows in the COA and SDS sections.
Policy Fields SOP
Related Product, adds a cross-link under the Resources card. All of them work by just adding the field, with no Page Builder edit and no developer.1The five fields
BigCommerce product → Custom Fields. Names must match exactly:
| Field name | Example values | Shows |
|---|---|---|
Dropship | 3-5 days · Yes | Amber pill: "3–5 day lead time" |
Lead Time | 1-3 Days | Green pill, shown as typed. Ignored if Dropship is set |
Origin | Made in the USA | Origin pill; USA values get a navy pill with a US flag. Field must be named exactly Origin, so vendor "Country of Origin" spec rows never trigger it |
Return Window | 30 days · Non-returnable | Returns pill, red when non-returnable. Links to return policy |
Warranty Term | 1 Year · Limited two-year | Warranty pill. Links to the warranty PDF, else the policy |
Warranty Term, never Warranty. BigCommerce already uses the plain "Warranty" label, so the site ignores it. A field named Warranty does nothing.2When to set each
- Dropship: ships direct from the supplier. Enter the supplier's window, or
Yesif you don't have one yet. - Lead Time: in-house products with a window worth showing. Skip it on dropship products.
- Origin: USA-made products you want to badge. Skip it on imports; the tile is a highlight, not a disclosure.
- Return Window: anything off the standard policy. Solvents and chemicals get
Non-returnable, custom items getFinal sale. - Warranty Term: any known warranty. Type it the way customers should read it.
3What the customer sees
- Product page: each field becomes a tile in the Resources & Downloads card.
- Shipping & Returns tab: the quick facts show your value, labeled "This Product". Unset fields keep policy links.
- Verbatim: what you type is what customers read. Keep it to a few words.
4Keeping it honest
- Window or warranty changes? Update the field.
- Product comes in-house? Delete the Dropship field.
- Firm window later? Replace
Yeswith the real range. - Unsure? Leave it unset. A policy link beats a wrong number.
5Related Product (cross-link)
A different kind of field. The five above are policy tiles; this one renders a compact link directly under the Resources card, pointing at something the customer will need next. Requires the Resources widget v7.5 or later.
BigCommerce product → Custom Fields → Add Custom Field:
| Field name | Value |
|---|---|
Related Product | Replacement Filters|HEPA, carbon & acid gas|/fume-hood-filters |
Three patterns, pick one:
| Pattern | Example value |
|---|---|
| Label | URL | Replacement Filters|/fume-hood-filters |
| Label | Subtext | URL | Replacement Filters|HEPA, carbon & acid gas|/fume-hood-filters |
| Two links, split with a semicolon | Filters|/filters;Ducting Kits|/ducting |
- Use a relative URL —
/fume-hood-filters, not the fullhttps://www.usalab.com/.... Shorter, and it survives a domain or staging change. - Label is a noun phrase, two or three words. The thing you are pointing at, not an instruction. “Replacement Filters”, not “Shop Filters Now”.
- Subtext is optional and answers “which ones” or “why”. Never repeat the label. It truncates with an ellipsis in narrow columns, so put the useful words first.
- Two links maximum. They split into columns and stay on one row. A third wraps and looks cluttered.
- The raw spec row is hidden automatically, so it will not also appear in the Specifications table.
https://; anything else, including http://, is rejected. Labels are escaped, so HTML pasted into the field prints as plain text.6When to use a cross-link
Good uses:
- Consumables and wear parts the customer will rebuy: filters, gaskets, seals, tubing.
- A required accessory that is not part of the listing.
- The parent category, when this product is one of a family.
Not for:
- Upsells or “customers also bought”. That is what Frequently Bought Together is for.
- Anywhere out of stock. A dead end is worse than no link at all.
- The consumable itself, pointing back at the equipment. The customer already owns it.
DO NOT
- Do not name the field
Warranty. UseWarranty Term. - Do not use a full URL in
Related Product. Site-relative only, starting with/. - Do not cross-link to an out-of-stock page. Remove the field until it is back.
- Do not paste policy sentences into a field. Short terms only.
- Do not leave a stale window on a product that changed. Delete or update the field.
Help Desk
Sales Analytics
Loading the archive…
SKU Registry
Every product set up with a resources SKU. Search by product name or SKU, then use the SKU as the filename prefix when uploading docs.
Click a row to see and open its documents.
| Resources SKU | Display Name | Documents | Product Page |
|---|
Doc Audit
Every visible BigCommerce product checked against the doc library. Filter to what's missing, sort by page views, and work the list from the top.
| SKU | Product | Sold | Docs |
|---|
Stock Watch
Everything out of stock, running low, or missing variants — with real traffic so you can see what an empty shelf is costing. Restock what people are looking at first.
| SKU | Product | Stock | Views | Sold | Revenue | Price | Status |
|---|