Have your say in Community Polls: What was/is your greatest motivation to start your own business?

Re: Properties vs customAttributes: can someone help me understand the difference?

Solved

Properties vs customAttributes: can someone help me understand the difference?

funko
Visitor
2 1 2

I can read properties via a Shopify Script.

And I can set customAttributes via the JS Buy SDK.

But I can't figure out how to get the script to read the customAttributes or how to get the JS Buy SDK to write properties.

Can someone point me in the right direction?

Accepted Solution (1)

funko
Visitor
2 1 2

This is an accepted solution.

I answered my own question. Setting values with customAttributes via JS Buy allows you to read them as properties in the shopify scripts API. 

JS Buy SDK:

{
    variantId: item.variantId,
    quantity: item.quantity,
    customAttributes: [
        {
            key: 'foo',
            value: 'bar'
         }
    ]
}

Scripts API:

line_item.properties.each do |key,val|
    if (key === 'foo') then
        puts val #do something with your val
    end
end

View solution in original post

Replies 3 (3)

funko
Visitor
2 1 2

This is an accepted solution.

I answered my own question. Setting values with customAttributes via JS Buy allows you to read them as properties in the shopify scripts API. 

JS Buy SDK:

{
    variantId: item.variantId,
    quantity: item.quantity,
    customAttributes: [
        {
            key: 'foo',
            value: 'bar'
         }
    ]
}

Scripts API:

line_item.properties.each do |key,val|
    if (key === 'foo') then
        puts val #do something with your val
    end
end
PaulNewton
Shopify Partner
7450 657 1565

In case of confusion cart.attributes and checkout.attributes are not accessible in shopifycheckoutscripts.

https://help.shopify.com/en/manual/apps/apps-by-shopify/script-editor/limitations#cart-checkout-attr...

The above "customAttributes" of the JSbuy sdk is poorly named and is on par with Line Item Properties on products 

https://github.com/Shopify/js-buy-sdk/blob/master/README.md#adding-line-items

Contact paull.newton+shopifyforum@gmail.com for the solutions you need


Save time & money ,Ask Questions The Smart Way


Problem Solved? ✔Accept and Like solutions to help future merchants

Answers powered by coffee Thank Paul with a Coffee for more answers or donate to eff.org


pablojoy
Tourist
11 0 4

REST API -> For line_items it's properties. For draftOder or order it's note_attributes.

GRAPHQL API -> CustomAttributes in both cases

LIQUID / email template: properties for the line items and attributes for the note_attributes.