The product, category and cluster endpoints (including cluster configs, cluster options and cluster products) now have stricter, more consistent validation across REST and GraphQL, with clearer error messages. Lookup keys are case sensitive (use sourceId, not sourceid), and bulk requests reject duplicate identifiers and empty arrays, with each batch rolled back if an item fails validation. Categories, products and clusters created without a parent are kept as root or floating items rather than placed under a default category.
The price fields that were deprecated earlier have now been removed from the product and cluster-product endpoints (price, taxCode, taxPercentage, costPrice, suggestedPrice, discountPrice, discountPriceFrom, discountPriceTo, costprices, surcharges and priceDisplay); use the pricing endpoints instead. Cluster options also have their own dedicated input and response types.