USA Lab SOPs
USA Lab · Internal

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.

Back
USA Lab · Internal SOP

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.
BigCommerce custom fields showing product_resources_sku set to E200 and display_name set to Ethanol 200 Proof - USP (99.97%)
Both custom fields on a BigCommerce product. Copy this setup exactly, just swap in the right SKU and name.

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.

HubSpot Files showing the document folders
The document folders in HubSpot Files. Never rename or delete these.

3Name the file

Filenames follow one pattern: the SKU from step 1, an underscore, and the document type in caps.

Doc typeFolderFilename
Safety Data SheetSDS{SKU}_SDS.pdf
Technical Data SheetTDS{SKU}_TDS.pdf
Spec SheetSpec{SKU}_SPEC.pdf
User ManualManuals{SKU}_MANUAL.pdf · multiple hardware versions: {SKU}-V1_MANUAL.pdf, {SKU}-V2_MANUAL.pdf → shows as "User Manual (V1)" / "(V2)"
COACOA{SKU}_COA_{LOT}_{YYYY-MM-DD}.pdf
DrawingDrawings{SKU}_DRAWING.pdf · size-specific: {SKU}-50L_DRAWING.pdf, {SKU}-100L_DRAWING.pdf → shows as "Drawing (50L)" / "(100L)"
ComplianceCompliance{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".
WarrantyWarranty{SKU}_WARRANTY.pdf
SoftwareSoftware{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.
GuideGuides{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".
Example: if the 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.
COA extras: the lot is whatever the vendor gives you (no spaces or slashes), and the date is the issue date in YYYY-MM-DD. Example: E200_COA_EAB-50526_2026-05-12.pdf
Letters, numbers, and dashes only in SKUs and filenames. No spaces, no slashes, and no periods (a size like 20.8 goes in the display name, never the SKU). Underscores are reserved for the type suffix. Anything else breaks links and the doc silently never shows.

4Upload and verify

  1. 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
  2. Drag the renamed PDF into the matching HubSpot Files folder
  3. Confirm the file is set to public visibility
  4. Open the product page after 1-2 minutes and hard refresh (Ctrl+Shift+R). The new button or lot should be there
Just uploaded and it's 404ing or not showing? Wait 10 minutes before investigating. There are three cache layers between HubSpot and your screen, and a fresh upload (especially after a delete) can serve a stale "not found" for a few minutes. Hard refresh or try incognito before assuming it's broken.
Updating a manual to a new revision? First download the old file and drop it in the internal archive (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.pdfDrawing (50L). A base USA-OMNICORE_DRAWING.pdf can exist alongside them.

Boundary matching: files match a SKU only when the next character after it is _ 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. _sds will 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.pdf will never appear on the site. Rename to the convention first.
  • Do not guess a SKU. Copy it from the product's product_resources_sku custom field. One wrong character and the doc silently never shows.
  • Do not skip the display_name custom field. Without it, no product name shows in the COA and SDS sections.
Questions or something not appearing after 5 minutes? Ping Matt.
Back
USA Lab · Website & Docs

Policy Fields SOP

Custom fields you set on a BigCommerce product that change what the product page shows. Five of them drive the policy tiles and the Shipping & Returns quick facts. A sixth, 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 nameExample valuesShows
Dropship3-5 days · YesAmber pill: "3–5 day lead time"
Lead Time1-3 DaysGreen pill, shown as typed. Ignored if Dropship is set
OriginMade in the USAOrigin 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 Window30 days · Non-returnableReturns pill, red when non-returnable. Links to return policy
Warranty Term1 Year · Limited two-yearWarranty pill. Links to the warranty PDF, else the policy
Name it 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 Yes if 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 get Final 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 Yes with 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 nameValue
Related ProductReplacement Filters|HEPA, carbon & acid gas|/fume-hood-filters
What that renders

Three patterns, pick one:

PatternExample value
Label | URLReplacement Filters|/fume-hood-filters
Label | Subtext | URLReplacement Filters|HEPA, carbon & acid gas|/fume-hood-filters
Two links, split with a semicolonFilters|/filters;Ducting Kits|/ducting
  • Use a relative URL/fume-hood-filters, not the full https://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.
After saving, load the product page and check the line actually appeared. A value that does not parse renders nothing at all rather than something broken, so silence means the format is wrong. URLs must be site-relative or 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. Use Warranty 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.
Field not showing after a refresh? Ping Matt.
Back
USA Lab · Support

Help Desk

Loading…

Back
USA Lab · Sales

Sales Analytics

Loading the archive…

Back
USA Lab · Internal Reference

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 SKUDisplay NameDocumentsProduct Page
Set up a new product? Add it to this registry so the team can find it.
Back
USA Lab · Internal Reference

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.

SKUProductSoldDocs

Back
USA Lab · Internal Reference

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.

Data

SKUProductStockViewsSoldRevenuePriceStatus

0 lines