The vendor price book problem, and loading a catalog from one spreadsheet
Turn mixed price lists, fabric grades, and frame exceptions into a catalog your team can quote from. Start with a checked spreadsheet, then give every update an owner.
The OrderPilot team·
June arrives, and so do the price books. Picture a 64-page PDF from an upholstery vendor, an Excel matrix of 40 frames by 9 grades from another, and a dealer-portal password reset from a third. The Grade F column has moved. The showroom's printed copy has not.
A dependable vendor catalog starts with a repeatable translation: source book, structured spreadsheet, checked import, then a test quote. OrderPilot imports templates, options, and their prices from one CSV. The important work is deciding what each row means before it becomes something a sales associate can sell.
Why does a vendor price book need its own process?
A price book mixes several kinds of information that your store uses differently. A frame has a name and a base price. A fabric belongs to a grade. A finish might add a charge only on selected frames. The terms page may describe a surcharge that never appears beside the sofa itself. Turning those into a catalog means preserving the relationship between them.
Keep the original book, including its cover and notes, beside the working spreadsheet. If you extract a table from a PDF, compare its column headings and footnotes with the page. A beautifully aligned spreadsheet can still have the wrong heading above every price. The original is how the next person settles a question without reconstructing your afternoon.
Use a simple source record: vendor, book name, effective date, products affected, person responsible, and where the original lives. Add the date your store applied the change. The vendor's effective date and your catalog update date answer different questions, especially when an order was quoted under one book and purchased under another.
For the vocabulary behind the documents, start with what a furniture price book contains. The goal here is to turn that book into a dependable selling tool, with enough traceability to update it again.
Which way of maintaining a catalog suits the job?
Choose the method around the information your vendors actually provide and the work your team can maintain. A connection that delivers descriptions still needs a pricing process if your negotiated costs arrive elsewhere. A spreadsheet that contains correct prices still needs someone to notice the next revision.
| Method | Useful when | Work your store still owns |
|---|---|---|
| Enter products by hand | The assortment is narrow or a piece has unusual details | Reading the source, checking every entry, and repeating changes |
| Import a prepared spreadsheet | You need shared options and frame-specific prices in a manageable format | Mapping the book, reviewing exceptions, and checking the import |
| Use a catalog-content service | Product descriptions and imagery are the main bottleneck | Checking coverage, retailer-specific pricing, and the route into your selling system |
| Exchange EDI catalog data | A trading partner supports an agreed electronic catalog process | Mapping, partner setup, exception handling, and keeping the connection maintained |
EDI 832 is the Price/Sales Catalog transaction set: X12 defines it for furnishing or requesting catalog prices for goods or services. That is a defined exchange format, not a promise that a particular vendor can connect to your store. See X12's transaction-set description and the fuller guide to EDI 832 for furniture stores.
Ask a catalog service specifically whether it supplies your retailer pricing, what identifiers it uses, and how revisions reach you. Don't infer that from attractive product images. The same questions apply when a vendor offers a portal download: which price, for which account, effective when, and with which exclusions?
OrderPilot's route for this job is the spreadsheet import; it doesn't provide an EDI connection. The CSV gives your team one structure for the catalog information it has prepared.
Who owns an update before anyone changes prices?
Give each vendor a named owner who receives revisions, interprets exceptions, and tells the showroom when the update is ready. A backup should be able to find the same source and working file. Ownership matters more than where the file sits: a shared folder without a responsible person is simply a tidier place to lose a price book.
Record what changed before editing. Was the increase in frame cost, fabric upcharges, retail list, freight, or a separate surcharge? Does the vendor use the order-received date or another event to decide which price applies? Capture the answer from the vendor's notice. A general instruction to “raise everything” is too blunt for a book with different treatment by category.
Decide how the store will handle open quotes at the same time. A catalog update governs what the team offers next; it doesn't answer what the store has already promised. Put quoted, accepted, and already purchased work into your review routine and assign the customer conversations. The companion post on handling a vendor price increase covers that decision in detail.
Keep a surcharge separately identifiable when the vendor bills it separately. That makes the vendor acknowledgment and invoice easier to reconcile. If you incorporate a known cost into a selling price, record that pricing decision so a colleague doesn't add it again later. The catalog should carry the store's chosen treatment consistently.
How do you turn a frame-by-grade matrix into one table?
Separate the information that is shared from the information that belongs to one product. In OrderPilot, a shared option holds choices such as fabrics or leg finishes. A product template decides which choices that frame offers and what each choice contributes on that frame. The product-template guide explains that relationship from the showroom's point of view.
The import expresses those relationships through row kinds in one table. Shared option and value rows have no Handle. A template's own row has its Handle. Attachment rows name both the Handle and Option. Override rows also name the Value whose price, cost, or lead time differs for that template.
| Row kind | What identifies it | What belongs there |
|---|---|---|
| Shared option | Option, with no Handle or Value | The option's type, label, and shared settings |
| Shared value | Option and Value, with no Handle | The choice's baseline price, cost, and lead time |
| Product template | Handle and template details | Title, base price, base cost, vendor, category, and status |
| Attachment | Handle and Option | Which option the template offers and its template settings |
| Value override | Handle, Option, and Value | An exception for that choice on that frame |
Give every template a stable Handle using lowercase letters, numbers, and dashes. Repeat the Handle on each row that belongs to that template. Its position above or below another row doesn't establish ownership. This is what makes a later re-import match the intended product instead of relying on a human to remember the original spreadsheet order.
Keep vendor-specific grade systems separate. “Grade C” is not enough to identify a shared price tier when different vendors use that letter differently. An internal option name such as “Atelier Nord upholstery grade” can distinguish the source while a simple customer-facing label says “Fabric grade.” Our guide to consistent option names across vendors develops that naming pattern.
What should a small worked example look like?
Say you are preparing an illustrative Madison sofa template for a sample vendor, Atelier Nord. The sofa's base selling price is $2,400 and base cost is $1,200. A shared Grade F choice adds $400 to price and $200 to cost, but this frame needs a $500 selling-price addition and $250 cost addition. All figures in this example are invented for the calculation.
The template keeps the base amounts. The shared value holds the ordinary Grade F amounts. A Madison-specific override supplies the exception. The resulting example quote is $2,900 before other charges and tax, with a product cost of $1,450 before landed costs. That is base plus the resolved choice, not base plus both the shared amount and the override.
The following is a row map, not an upload-ready substitute for the starter file. It shows which row owns which fact; the starter CSV supplies the exact columns, including the separate override columns.
| Row | Handle | Option | Value | Information owned by the row |
|---|---|---|---|---|
| Shared option | Empty | Atelier Nord upholstery grade | Empty | Dropdown and its label |
| Shared value | Empty | Atelier Nord upholstery grade | Grade F | Baseline price 400; cost 200 |
| Template | madison-sofa | Empty | Empty | Base price 2400; base cost 1200; draft |
| Attachment | madison-sofa | Atelier Nord upholstery grade | Empty | Offer the grade option on Madison |
| Override | madison-sofa | Atelier Nord upholstery grade | Grade F | This frame's price 500; cost 250 |
This structure also exposes mistakes. If the vendor's matrix contains finished selling prices, don't paste those totals into an additive option column on top of a base price. Calculate the intended contribution first, or choose a base structure that matches how the book is built. Test the completed configuration against the original matrix before extending the pattern.
Bundled options and Shown when rules belong in the same preparation. Attach the reusable bundle when the frame should follow it. Use a rule when an option is meaningful only after another choice. Keep exceptions explicit rather than writing a note that a sales associate must remember during a busy appointment.
Can the vendor's Excel workbook go straight into the importer?
OrderPilot accepts CSV UTF-8, not an Excel workbook upload. You can prepare the data in Excel, Numbers, or another spreadsheet editor, but save the finished import table as CSV UTF-8. The vendor's tabs, formulas, merged headings, and color legends need to become explicit values and relationships in that table.
Use the starter CSV for a new catalog, or export the existing OrderPilot catalog before an update. Keep a copy of the export as the starting record. Remove columns you don't intend to change, especially when preparing a narrow price update from a much wider file. A small, deliberate file is easier to review than a full export with unexplained blanks.
Write numbers without currency signs or thousands separators. In a cell, write 1200 rather than $1,200. Keep units where the layout expects them: lead-time values are days, and dimensions need their stated measurement unit. Spreadsheet formatting can make unlike values look alike, so inspect the underlying cell contents too.
Keep source calculations in a separate working sheet and transfer their finished values into the import table. Retain the calculations for review. The person approving the upload should be able to explain how a vendor's list became your base price and each option contribution, without decoding a formula buried halfway down the file.
What does the check-then-apply report tell you?
The importer separates checking from writing. From Products, Import offers the starter file and an explanation of how importing works. Upload and check produces a report before the catalog changes. That pause is the right moment to compare the proposed changes with the vendor update you intended to make.
Errors block Apply import. Warnings don't, but they still deserve a decision. The report gives the spreadsheet row number and a How to fix explanation. Work from those named rows rather than guessing which similar fabric or frame caused the issue. Correct the source file and check it again until the remaining warnings describe changes you actually want.
Unknown vendor names can be created during the import, with a warning. Read those names carefully. A misspelled existing vendor and an intentionally new vendor can look similar in a long file. Resolve spelling and naming before applying, so purchasing doesn't inherit duplicate versions of the same business.
Will re-importing overwrite changes made by hand?
The overwrite choice determines whether existing templates, options, and values are skipped or updated. With overwrite off, existing records are skipped. With it on, supplied changes can update them, including prices someone previously edited in the app. Export first and compare the current values with the incoming book when those manual changes might be intentional.
Blank cells need a more careful reading than “blank means leave alone.” With overwrite on, a blank in a present column marked as clearing can remove a stored value; the report warns by column. A column omitted from the file leaves that field untouched. Other blanks follow the field's rules, including settings that return to inherited values.
That is why deleting unwanted columns is different from emptying them. If this week's job changes prices, do not casually blank descriptions, images, or vendor lists across a full export. Narrow the file to the changes you understand and use the report to see whether anything else would be cleared.
An import never deletes or detaches catalog records. Leaving a fabric out of a seasonal file doesn't retire it. Handle retirement through the catalog's offered choices, with an explicit check of affected templates. The absence of a row is not an instruction to withdraw a product from sale.
Does applying the import put products straight on the website?
New templates arrive as drafts unless the file specifies active status. Draft templates don't write products to Shopify. Active templates synchronize to Shopify, while website presentation also depends on the template's online settings and the store's configured theme blocks. Treat activation and customer presentation as parts of the review, not incidental cells to copy from another file.
Once the report is ready, Apply import begins the work and the Products page shows progress. Use View import to return to that run's details. Wait for the reported outcome before treating the file as complete; uploading a file and finishing its application are different moments.
Inspect the imported template before activating it. Does the frame offer the right fabrics, the right default, and the intended price additions? Is the image the correct size and arm style? A valid file proves that the data can be read; the store still decides whether it describes the furniture correctly.
What should you test before the showroom uses the catalog?
Test a deliberately varied sample across the places your store sells. For example, choose five frames: a straightforward sofa, a frame with a grade exception, a finish-dependent piece, a custom-size table, and a product with a restricted option. Build a fresh configuration at the desk, on the iPad, and in the website options block where enabled.
Compare the selling price with your calculation and the vendor cost with the source book. Check names, defaults, and hidden choices, then switch an earlier option and see whether the later choices still make sense. Ask a sales associate to use the catalog without your working notes. Any explanation they need repeatedly probably belongs in a label or option description.
Test lead time where it is displayed: on the template page, the Admin order line, and the website block when Show lead time is enabled. Lead time doesn't appear on the quote PDF, PO, or POS, so the team's customer communication still needs to carry that expectation. The catalog gives staff a consistent basis for the conversation.
This importer covers templates and options, rather than regular Shopify products or compositions. Set compositions through their Shopify metafields and maintain regular products through the appropriate Shopify workflow. Once those are ready, staff can bring the needed pieces together in the customer's quote.
What belongs on a price-book-week checklist?
Use this as a repeatable handoff between the person preparing the catalog and the person releasing it to the showroom. Keep the completed list beside the source book and working file so the next update begins with a usable record.
- Name the vendor owner and keep the original price book and notice.
- Record the effective date and exactly which prices, costs, or surcharges change.
- Assign a review of open quotes separately from the catalog update.
- Export the current catalog or start from the importer's starter CSV.
- Preserve stable Handles and distinct vendor-specific option names.
- Map shared choices, attachments, and frame exceptions explicitly.
- Remove columns that the update should leave untouched.
- Save CSV UTF-8 and review every error and warning.
- Apply the checked import and read its final outcome.
- Test sample configurations, then activate and release the checked assortment.
Repeat the same path next season: export, compare, edit, check, apply, and test. If volume eventually calls for an electronic feed or a catalog service, this structure still helps because the meaning of your data is already settled. For the next vendor letter on your desk, begin with the price-increase review routine.
Sources
- X12 transaction sets: 832 Price/Sales Catalog — X12. Defines the catalog-price exchange discussed in the comparison.
A valid file proves that the data can be read. Your store still decides whether it describes the furniture correctly.