Скажите пожалуйста, как сделать так, чтобы из определенного свойства товара (Склад1) вычитать заказанное количество товара, когда при оформлении заказа выбирается свойство Заказа (Забрать со Склада1)?
Хочу сразу отметить, что многоскладовости нет, склады - это лишь название свойств товара и свойств заказа, но используются именно в качестве складов.
Как это реализовать? Есть примеры? Понимаю, что через обработчик, нашел даже какой то прототип, но как сделать именно привязку с количеством заказанного, и вычитать потом из свойства товара, перед этим проверяя, чтобы заказанное количество товара не было больше, чем это свойство товара.
Нашел такой код:
Но как его до ума довести - знаний не хватает, к сожалению....
Хочу сразу отметить, что многоскладовости нет, склады - это лишь название свойств товара и свойств заказа, но используются именно в качестве складов.
Как это реализовать? Есть примеры? Понимаю, что через обработчик, нашел даже какой то прототип, но как сделать именно привязку с количеством заказанного, и вычитать потом из свойства товара, перед этим проверяя, чтобы заказанное количество товара не было больше, чем это свойство товара.
Нашел такой код:
Код |
---|
function AddOrderProperty ( $prop_id , $value , $order ) { if (!strlen( $prop_id )) { return false ; } if (CModule::IncludeModule( 'sale' )) { if ( $arOrderProps = CSaleOrderProps::GetByID( $prop_id )) { $db_vals = CSaleOrderPropsValue::GetList( array (), array ( 'ORDER_ID' => $order , 'ORDER_PROPS_ID' => $arOrderProps [ 'ID' ])); if ( $arVals = $db_vals - > Fetch()) { return CSaleOrderPropsValue::Update( $arVals [ 'ID' ], array ( 'NAME' => $arVals [ 'NAME' ], 'CODE' => $arVals [ 'CODE' ], 'ORDER_PROPS_ID' => $arVals [ 'ORDER_PROPS_ID' ], 'ORDER_ID' => $arVals [ 'ORDER_ID' ], 'VALUE' => $value , )); } else { return CSaleOrderPropsValue::Add( array ( 'NAME' => $arOrderProps [ 'NAME' ], 'CODE' => $arOrderProps [ 'CODE' ], 'ORDER_PROPS_ID' => $arOrderProps [ 'ID' ], 'ORDER_ID' => $order , 'VALUE' => $value , )); } } } } |