Метод интересный, хотя и извращенный

У меня список размеров товара, вот думаю делать так
"PRODUCT_ID" => $_REQUEST["PRODUCT_ID"]*999999 + X,
где X - код варианта свойства типа "список"(те самые размеры).
А как быть тем, у кого свойств несколько?
Если делать $_REQUEST["PRODUCT_ID"]*999999 + X + Y, то могут получиться одинаковые PRODUCT_ID, в случае когда сумма X и Y будет одинаковой.
Странно, что Битрикс не предлагает своего решения, хотя проблема у же не раз была озвучена, и всем приходится искать какие-то свои частные решения.
По идее, если элемент, добавляемый в корзину, имеет тот же PRODUCT_ID, что и элемент, уже лежащий в корзине, но отличается от него по свойствам, то он должен добавиться в корзину как новый элемент.