Так будет честнее по отношению к клиенту, что его товары будут резервироваться до оплаты.
Такая честность, и вообще в целом резервирование товара, имеют смысл только в том случае, если учет ведется и для действий с заказом в админке. Значительная часть заказов поступают по телефону, менеджер создает их в админке, и получается, что товары могут продаваться и не списываться со склада.
Между всеми товарами в заказах, кроме отмененных, и количеством товара на складах, должна быть полная взаимосвязь и баланс.
---------------------
Почему имеет смысл не снимать товары со склада для некоторых статусов заказов (например, Новый и Ожидает оплату): часто клиент оформляет заказ с товаром, который на складе в количестве 1 шт. Продолжает серфить по сайту, находит что-то еще интересное, и хочет сделать новый единый заказ (и с первым товаром и с тем, что только что нашел). Желание клиента понятно - он не хочет платить за доставку 2 заказов, он хочет оформить новый общий заказ. Если первым заказом товар уже зарезервировался - клиент не сможет снова добавить его в корзину. Клиент расстроится и не станет ничего дозаказывать.
Если кто-то другой успеет оплатить товар вперед, то у другого клиента просто должна пропасть ссылка на оплату, а у отсутствующего товара появится надпись "Товар закончился". У менеджера в админке аналогичная надпись и нет возможности присвоить заказу статус "В обработке". Это честно.
Если оба клиента успеют оплатить заказ, одному из них придется выполнить возврат средств. Не беда.
Другой выход из положения - дать клиенту возможность редактировать свой заказ до того момента, пока менеджер не присвоил ему статус "В обработке". И дать такую возможность не только тем, кто зарегистрирован, но и клиентам "Без регистрации". Тогда действительно можно бронировать товар сразу.