Если прописать такое условие как написано выше, то количество товара добавляемого в корзину сровняется с количеством на складе и добавиться на складе. Но если радостный покупатель ещё раз ткнёт в корзинку, то туда ещё раз добавиться остаток на складе и в корзине будет товара больше чем на складе и он "проведётся" - пойдут минуса.
Единственный вариант, что если количество товара в корзине превышает количество товара на складе, в корзину вообще ничего не добавляется, пока покупатель не выберет количество равное иле меньшее складскому остатку.
В скрипте настроек корзины есть 3 места где товар добавляется - ищите по AddIntoCart. Перед этим во всех трёх местах пропишите:
//Проверяем, что заказано доступное на складе количество продукции
$warehouse = & singleton('warehouse'

;
if ($warehouse->GetItemCountForAllWarehouses($row['shop_items_catalog_item_id'])<$shop_order_items_quantity)
{
//$shop_order_items_quantity = GetItemCountForAllWarehouses($row['shop_items_catalog_item_id']);
$shop_order_items_quantity = 0;
}
Вообще както странно что в скрипте интернет магазина это не сделано по уолчанию ! ни одна программа учёта не считает в минус товарные остатки !