Articles on: Quotify

How to capture custom line item properties?

When customers request a quote, Quotify can automatically capture custom line item properties like personalization text, custom colors, or engraving details from your product page. These properties appear alongside the product information in quote requests, emails, PDFs, and proposals.


How it works


Quotify captures line item properties in two ways:


  1. From Shopify cart data — When customers use the "Convert cart to quote" feature, any custom properties already added to cart items are automatically included in the quote request.


  1. From the Request Quote button — You can pass custom properties directly when customers click the Request Quote button on your product page.


Passing properties via the Request Quote button


There are two ways to pass custom properties when the Request Quote button is clicked:


Method 1: Using a data attribute


Add a data-properties attribute to your Request Quote button with a JSON object:


<button class="quotify-request-quote-button"
data-product-id="123456789"
data-properties='{"Custom Color": "Navy", "Engraving": "Hello World"}'>
Request Quote
</button>


The data-properties value must be valid JSON. Make sure to use single quotes around the attribute value and double quotes inside the JSON.


Method 2: Using JavaScript


Set properties on the global Quotify object before the button is clicked:


// Set properties that will be included with the next quote request
window.Quotify = window.Quotify || {};
window.Quotify.properties = {
"Custom Color": "Navy",
"Engraving": "Hello World"
};


This is useful when you need to collect properties from form fields or other dynamic sources on your product page. The properties are automatically cleared after being sent with the quote request.


Combining both methods


If you use both the data attribute and JavaScript methods at the same time, the properties will be merged together. If the same property name appears in both places, the JavaScript value takes priority.


What properties are captured


Quotify applies several filters to keep properties clean and secure:


  • Internal properties are excluded — Properties starting with an underscore (like _internal_tracking) are automatically filtered out, as these are typically used by Shopify apps for internal tracking.
  • Only string values — Properties must be key-value pairs where both the key and value are text. Arrays, numbers, and other data types are ignored.
  • Blank values removed — Empty or whitespace-only values are filtered out.
  • Length limits — Property names are limited to 100 characters and values to 500 characters. Anything longer is automatically trimmed.
  • Maximum 20 properties — Only the first 20 properties are captured to prevent data overload.


Where properties appear


Once captured, custom properties are displayed:


  • In the quote details page in your dashboard, shown below each product variant in small gray text
  • In the customer quote request confirmation email, shown below the variant name
  • In the staff notification email when a new quote is received
  • In the quote request PDF if you have PDF attachments enabled
  • In the widget review step before the customer submits their quote, displayed as a bulleted list below the SKU
  • In the proposal admin view, shown below the SKU on each line item
  • In the customer proposal portal, shown below the SKU on each line item
  • In the proposal PDF, shown below the SKU on each line item


Properties help you and your team understand exactly what the customer needs without requiring them to type customization details into a form field.


How to edit properties on a proposal


When you create a proposal from a quote, any properties captured from the quote are automatically copied to the proposal's line items. You can also add, change, or remove properties on any line item in the proposal editor.


  1. Open the proposal in the editor.
  2. Find the line item you want to edit.
  3. Click the three-dot menu on the right side of the line item.
  4. Click Line item properties.
  5. A modal appears with a list of property rows. Each row has a Property name field (for example, "Wood Finish") and a Property value field (for example, "Walnut").
  6. Edit existing rows, or click Add property to add a new one.
  7. To remove a property, click the delete icon next to the row.
  8. Click Save when you are done.


Properties you add or change here will be visible to the customer in the proposal portal and in the proposal PDF.


Properties in Shopify draft orders


When you convert a quote or proposal into a Shopify draft order, any line item properties are automatically included. They appear as line item properties on the draft order in your Shopify admin, just like properties added through a regular Shopify storefront.


This means customization details follow the order all the way from the initial quote request through to invoicing and fulfillment, without any manual re-entry.


Good to know


  • Properties are tied to the specific variant. If a product has multiple variants in the quote request, each variant can have its own unique properties.
  • When using the "Convert cart to quote" feature, properties are captured exactly as they appear in the Shopify cart, following the same filtering rules.
  • If no variant is selected on the product page, properties are applied to all variants of that product in the quote request.
  • You cannot edit properties after a quote has been submitted. If a customer needs to change customization details, they'll need to submit a new quote request or communicate the changes through your quote proposal.
  • Properties from quote requests are automatically carried over when you create a proposal. You can then edit them in the proposal editor before sending.
  • You can add properties to custom line items (not just items from your Shopify catalog) in the proposal editor.
  • Each line item can have up to 20 properties. Property names are limited to 100 characters and values to 500 characters.
  • Properties appear in the Liquid email template as {{ properties }} on each variant. If you've customized your email templates, the properties will only appear if your template includes the relevant Liquid code.

Updated on: 09/03/2026

Was this article helpful?

Share your feedback

Cancel

Thank you!