Wie sollte etwas negativ sein? Du kannst im Shop doch nicht -10 Tränke kaufen. Und auch nicht -10 verkaufen :'D

Aber ja, habe das auch abgefangen mit dem Befehl:
[@ldt_shopsys[tshopv][pitemid][ptype] + pnum,0].max

[Wert1,Wert2, Wert N].max bedeutet, dass er den höchsten Wert von denen nimmt. Ist also Anzahl ver-/gekaufter Ware kleiner 0, wird der Wert zumindest 0 betragen.
Falls du etwas im Script nicht verstehst, kann ich dir sonst auch ein Beispielprojekt hochladen.