HubSpot and Shopify for B2B quotes: decide who owns the quote first
Alexandra-Emily Kokova
Published 3 November 2026 - 6 min read
HubSpot should own the deal and the approval, Shopify the price list and the order, and one identifier has to exist on both sides.
A quote needs one home and one number that both HubSpot and Shopify store, chosen before any integration is switched on. Most of the trouble comes from rekeying, from prices that differ between the two systems, and from orders that cannot be traced back to the deal.
On this page
Decide which system owns the quote before you connect anything
A B2B company that sells through Shopify and runs its pipeline in HubSpot has two places that can each produce something that looks like a quote, and no connection between them will choose which one counts. That choice belongs to a person, and it should be written as one sentence short enough to repeat in a sales meeting.
The split we usually propose gives HubSpot the deal, the approval and the conversation with the buyer. Shopify keeps the price a company location is allowed to pay, the stock behind it and the order that follows. The quote is the hinge between the two, so it needs one home and one number that both systems can show.
When the connection gets built first, the rule is discovered afterwards by whoever notices two totals that disagree. Each tool was set up sensibly on its own; the gap sits between them, and the reconciliation spreadsheet that appears at month end is usually the first sign nobody chose.
What HubSpot and Shopify each hold
HubSpot's quotes tool starts from a deal record. The deal owner becomes the quote owner, a quote that needs approval waits in a pending approval status until the approvers act, and once a quote is published the deal amount and line items follow the latest published one. HubSpot's documentation says the tool needs a Revenue Hub Professional or Enterprise subscription and a Revenue Hub seat for whoever creates quotes, so licensing is worth checking before anyone promises the sales team a workflow.
Shopify's B2B side is built around companies and company locations. Catalogs choose which products and prices a business customer sees, using included or excluded products, percentage adjustments or fixed prices. According to Shopify's Help Center, B2B is available on the Basic, Grow, Advanced and Plus plans but not on Starter or Retail, and the exact feature set depends on the plan.
For a negotiated deal, a B2B draft order picks up the company location's prices, payment terms and checkout options, lets you set a custom price on a line item, and can send an invoice. The draft is not an order until someone clicks Create order or the buyer pays the invoice. For our purposes the draft order is the Shopify-side counterpart of the quote, and the more useful way to read the two together is that HubSpot is where a price gets negotiated and approved, while Shopify is where it gets enforced.
The identifier that has to exist on both sides
One value should travel with the deal from approval to paid order, and both systems need to store it in a field of its own. Shopify gives each draft order a name that is unique within the store (the developer documentation uses #D1223 as an example) and also has fields for a PO number, a note and tags. HubSpot quotes have a PO number property, and the quotes documentation says you can add custom quote properties. Which value you pick matters less than choosing it once and keeping it out of free-text notes, where it drifts.
Direction is the second decision. If the rep builds the HubSpot quote first, its reference gets copied onto the draft order; if the store team builds the draft first, the draft order name goes back onto the deal. Whichever record is created second takes the identifier from the first, by automation and not by hand.
The standard Shopify data sync will not do this for you. HubSpot's documentation lists contacts, companies, products, orders and carts as the synced objects, with orders and carts moving one way from Shopify to HubSpot, and it does not cover quotes or draft orders. HubSpot's quotes documentation adds that deals created through e-commerce integrations such as Shopify cannot be associated with quotes. The deal your rep quotes against therefore comes from the sales process, and the order gets tied back to it deliberately.
Where the work usually breaks
The first break is rekeying. A rep closes the discussion in HubSpot, opens Shopify and builds a draft order from the quote PDF, typing every line a second time. Discounts get rounded differently, a line gets skipped, and the quote number has nowhere obvious to go. The cost shows up as minutes per order, and also as a Shopify order that is now a second opinion about what was agreed.
The second break is price. HubSpot and Shopify products sync both ways and are matched by name, with capitalization and punctuation ignored, and Shopify product variants do not sync to HubSpot at all. Shopify catalogs carry their own fixed prices and adjustments per market. A quote assembled from HubSpot's product library can therefore name a price that the buyer's catalog would never charge, or a product that exists in HubSpot without the variant the customer wants. Whether that is a defect or an intended exception depends on a rule you set: standard prices come from the catalog, and a negotiated exception lives in the approved quote and is entered as a custom line price on the draft order.
The third break is the way back. According to HubSpot's documentation, a synced order links to a contact and a cart, and the documentation does not describe a link to a deal. Company sync is limited to Shopify Plus and matches on name, and order sync does not merge duplicates. Without the shared identifier, the question of which deal an order closed gets answered by guessing from dates and amounts. And an order tied to a contact can only be reported by company if that contact's company is settled, which is the subject of our note on how HubSpot picks a primary company.
The order to set it up in
This sequence keeps the decisions ahead of the settings.
- Write the ownership sentence and get the person running sales and the person running the store to agree to it.
- Choose the identifier and create its field on both sides before any record uses it.
- Decide how a negotiated price is entered in Shopify, and who is allowed to do it.
- Run one full cycle by hand with a single company location and a product that has variants, from approved quote to paid order, and look at where the identifier ends up and which prices differ.
- Switch on the sync and any automation last, and check which fields it writes.
The handoff from the deal to the store is a handoff like any other, with an owner, a trigger and a clock, and our lead handoff map is a template for writing one down. When the quote process is part of a larger move between systems or a rebuild of the CRM, it sits inside our CRM migration work, and the wider list of what we take on is on the services page.
The product details above were checked against HubSpot’s and Shopify’s own documentation on 3 November 2026. Both vendors change plans and features often, so confirm the current behaviour for your subscription before you build on it.