ProductBlock
OBJECT
Fields
id:ID!organization_id:ID!store_id:IDname:String!block_type:String!related | cross_sell | up_sell
position:String!product | cart | category | checkout | homepage
title:Stringstatus:Int!1 active, 0 disabled
priority:Int!Lower renders first when several blocks share a position.
max_products:Int!sort_by:String!relevance | price_asc | price_desc | newest
source_type:String!Candidate source: rules | bought_together | also_viewed. Behavioral sources fill from product_affinity (real orders / views) instead of the conditions rule.
Amasty 'Where to Display': ConditionBuilder tree matched against the viewed/anchor product — gates whether the block shows.
Amasty 'Products to Display': ConditionBuilder tree filtering which products fill the block.
Amasty 'Same As': { enabled: Bool, attributes: [String], price_band_pct: Float }
