Support

Get help with Attribase. We typically respond within 24 hours on business days.

Getting Started

1

Install the app

Install Attribase from the Shopify App Store. You'll be redirected to your Shopify admin to authorize the app.

2

Create an attribute group

Go to Attribute Groups → Create and add your fields. Choose from dropdowns, radio buttons, text inputs, color swatches, date pickers, checkboxes, and more. Add price adjustments to any option.

3

Assign to products

Go to Products, select a product, and add your attribute group. You can assign the same group to multiple products.

4

Set up your theme — two switches

Attribase’s setup guide shows both, each with its own button and an On/Off status for your live theme:

Product Attributes block — shows the options on your product pages. The Add block button opens your product template in the theme editor with the block ready to place. Save.

Cart selections app embed — shows each customer’s choices on their cart lines, in the cart drawer and on the cart page. The Turn on button opens Theme settings → App embeds with it switched on. Save. More about cart selections.

5

Test on your storefront

Open a customized product, choose some options and add it to the cart. The options should appear in the cart drawer, on the cart page and at checkout, and the price should include their adjustments.

Showing selected options in the cart

By default, a customer who configures a product sees their options at checkout but nowhere in the cart drawer or on the cart page. That is how Shopify works, not a theme problem — it happens identically on Dawn, Horizon, Refresh and every other theme. Attribase fixes it with a one-click app embed.

Turn on the “Cart selections” app embed

In your Shopify admin:

  1. Online Store → Themes → Customize
  2. Open Theme settings (the gear icon at the bottom of the left sidebar)
  3. Choose App embeds
  4. Switch on Cart selections, then Save

There is nothing to place and no template to pick — the embed applies to your cart drawer, your cart page and every other page at once. Attribase’s home page also has a Turn it on link that takes you straight there.

The switch belongs to one theme, not to your store. If you publish a different theme, or preview one that isn’t live yet, switch the embed on in that theme too — a newly installed theme always starts with it off.

Why is this a separate switch from the product block? The Product Attributes block is a section block: it lives on your product template, which is the only place it is needed. Your cart page is a different template and your cart drawer opens from every page, so the cart display has to be an app embed. App embeds always arrive switched off — Shopify does not let an app enable one for you.

Where the options appear

Underneath the product title and variant on each cart line, in the same place your theme already prints line item properties, using your theme’s own fonts and colours. Lines with no configuration show nothing at all. Change a quantity or remove a line and the options follow correctly, including two of the same product configured differently.

Options still not showing? Check these first

  1. The embed is on for the theme you are looking at. Open that theme in Online Store → Themes → Customize → Theme settings → App embeds and check that Cart selections is switched on.
  2. The product has an attribute group and the customer actually chose something. Lines with no selections show nothing, by design.
  3. The line was added after Attribase was installed. Older cart lines carry no selections to show.

Custom themes: how Attribase finds your cart lines

Attribase needs two things from each line in your cart drawer and on your cart page: which cart line it is (the line’s item.key) and where to print the options. Themes that follow Shopify’s standard cart structure already provide both, so there is nothing to do. A theme built from scratch may need one attribute added.

1. Standard Shopify cart markup — works automatically

This covers Dawn, Horizon, Refresh, Tinker, Savor and themes built on them. If your theme was built from one of these, keep this structure and Attribase finds each line on its own. A line is recognised when its wrapping element (a <tr>, an <li>, or an element with the class cart-item) carries the line key in any one of these places:

<tr data-key="{{ item.key }}">                          <!-- Horizon, Tinker, Savor -->
<tr id="CartItem-{{ item.key }}">
<a href="/cart/change?id={{ item.key }}&quantity=0">  <!-- Dawn, Refresh: the remove link -->
<input name="updates[{{ item.key }}]">

The options are printed inside the line’s details element, found by the class cart-item__details, cart-items__details or cart-drawer-item__details. Without one of those, they are added at the end of the element that holds the product title link.

Some cart drawers, including Dawn’s, don’t include the line key anywhere. There Attribase matches lines by position instead, and only when the drawer shows exactly as many lines as the cart holds. If your drawer shows only some of the lines, add the attribute from step 2.

2. Fully custom theme — add one attribute

If your cart lines show nothing, add data-attribase-line, holding the line’s item.key, to the element that wraps each cart line. Do this in both places your theme renders cart lines: the cart page and the cart drawer. They are usually different files. Any element works: <tr>, <li> or <div>.

{%- comment -%} cart page, e.g. sections/main-cart.liquid {%- endcomment -%}
{%- for item in cart.items -%}
  <div class="my-cart-line" data-attribase-line="{{ item.key }}">
    <a href="{{ item.url }}">{{ item.product.title }}</a>
    ...
  </div>
{%- endfor -%}

{%- comment -%} cart drawer, e.g. snippets/cart-drawer.liquid {%- endcomment -%}
{%- for item in cart.items -%}
  <li class="my-drawer-line" data-attribase-line="{{ item.key }}">
    ...
  </li>
{%- endfor -%}

To choose exactly where the options appear, add an empty element with data-attribase-slot inside the line. Otherwise they are added at the end of the element that holds the product title link.

<div class="my-cart-line" data-attribase-line="{{ item.key }}">
  <a href="{{ item.url }}">{{ item.product.title }}</a>
  <div data-attribase-slot></div>   <!-- options are printed here -->
  ...
</div>

data-attribase-line is checked before anything else, so once it is present Attribase stops guessing and uses only your markup.

3. A cart drawer drawn by JavaScript

Some drawers are built in the browser from /cart.js rather than from Liquid. Add the same attribute using each item’s key. There is no event to fire and no function to call: Attribase notices the new lines on its own and fills them in.

cart.items.map((item) => `
  <li class="my-drawer-line" data-attribase-line="${item.key}">
    <a href="${item.url}">${item.product_title}</a>
    <div data-attribase-slot></div>
  </li>`)

What this cannot reach

Still stuck? Email us your store URL and theme name and we will look at it.

Why “Buy it now” disappears on customizable products

On any product with an attribute group assigned, Attribase hides the dynamic checkout buttons — Buy it now, Shop Pay, Google Pay, PayPal and the rest. This is deliberate and it protects your orders.

Those buttons submit straight to checkout without going through the product form, so the customer’s selections are never attached to the line and required fields are never checked. The order arrives with no configuration on it and at the base price: you cannot fulfil it, you cannot tell what was wanted, and you have undercharged. Hiding the buttons is the only way to keep every purchase going through the cart.

You will also see this noted on the product assignment screen inside Attribase and in the theme editor next to the Product Attributes block.

Showing options on packing slips

Shopify’s default packing slip template does not print the options a customer selected. It is a one-time edit to fix, and it applies to every order from then on.

  1. Go to Settings → Shipping and delivery
  2. Scroll to Packing slips and choose Edit packing slip template
  3. Find the line items loop — the block that prints each product’s title
  4. Paste the snippet below just under the product title, then Save
{%- if line_item.properties['_Product Attribute Selections'] == blank -%}
  {%- for property in line_item.properties -%}
    {%- unless property.first == blank or property.first contains '_' -%}
      <div>{{ property.first }}: {{ property.last }}</div>
    {%- endunless -%}
  {%- endfor -%}
{%- endif -%}
The _ check is what keeps Attribase’s internal data off the printed slip. Properties beginning with an underscore are hidden from customers by Shopify convention, and this snippet skips them while printing everything a picker actually needs.

If you use a third-party packing slip or invoice app, add the equivalent loop in that app’s template editor — the property names are the same.

Common Questions

Will my data be lost if I uninstall?

No. All your attribute groups and product assignments are stored in Shopify metaobjects and metafields. They remain in your store even after uninstalling. When you reinstall, everything will still be there.

Does dynamic pricing work on all Shopify plans?

Yes. Attribase uses Shopify's Cart Transform API which works on all Shopify plans — Basic, Shopify, Advanced, and Plus. Price adjustments are applied at checkout, ensuring accurate totals.

Which themes are supported?

Attribase works with all Shopify Online Store 2.0 themes including Dawn, Horizon, Refresh, and custom themes. The extension renders using your theme's native styling, so it matches your store's design automatically.

How do I add price adjustments?

When creating or editing an attribute group, add options to any dropdown, radio, or checkbox field. Each option has a "Price" column where you can enter the adjustment amount (e.g., +5 for $5 extra). The price updates automatically on the storefront and at checkout.

Can I assign multiple attribute groups to one product?

Yes. You can assign multiple attribute groups to a single product. Each group's fields will appear on the product page. This is useful for products that need different sets of customization options.

What happens when a customer adds a customized product to cart?

Price adjustments from the selected options are applied automatically through Shopify's Cart Transform API, and every selection appears at checkout and on the order. Shopify does not reveal those selections in the cart drawer or on the cart page on its own — switch on the Cart selections app embed and they appear there too.

My customers' options don't show in the cart. What's wrong?

Nothing is broken — Shopify only reveals line item selections at checkout. Switch on the Cart selections app embed in Theme settings → App embeds and they appear on every cart line, in the drawer and on the cart page. Step-by-step instructions.

Why has "Buy it now" vanished from my customizable products?

Attribase hides it on purpose. Dynamic checkout buttons bypass the product form, so an order placed through one arrives with no selections on it and at the base price. Read the full explanation. Products without an attribute group keep their buttons.

Why don't the options print on my packing slips?

Shopify's default packing slip template doesn't print line item properties. One paste into the template fixes it for every future order — here's the snippet.

What's the difference between Free and Pro plans?

The Free plan includes 2 attribute groups and 3 customized products with all basic field types. The Pro plan ($9.99/month) unlocks unlimited groups and products, all 11 field types, and dynamic pricing. Pro includes a 7-day free trial.

Contact Us

Email Support

For questions, feature requests, or any issues with Attribase:

We typically respond within 24 hours on business days.

Report a Bug

If you encounter a bug, please email us with:

  • Your store URL
  • Steps to reproduce the issue
  • What you expected to happen vs. what actually happened
  • Screenshots or screen recordings if possible