Trenne dich gleich von dem Gedanken, dass man genau das System so reinpatchen kann, dass du nur noch den Shop aufrufen musst. Das wird nicht passieren.
Was ich versuchen kann:
Ich habe eben mit meinen EventTrace Plugin mal geschaut, wie der Shopbefehl aufgerufen wird. Dabei werden lediglich alle für diesen Shop konfigurierten Items als Array von Zahlen mitgegeben. Diese Auflistung von Item-IDs kann man vielleicht verändern. Auf diese Weise kann man der Liste von Items, die der Shop verkauft vielleicht weitere Items hinzufügen.
D.h. wenn du einen NPC einbaust, bei dem du Erz abgeben kannst, könntest du selber mitspeichern, wie viel Erz du schon verkauft hast.
Bei dem Shop NPC könntest du dann vor dem call_shop-Befehl noch einstellen, welche Items der Shop zusätzlich verkaufen soll, zB das Eisenschwert wenn du bereits 10 Erz verkauft hast.
Diese Veränderung der Shopitemliste kann nur vor dem Aufruf des Shops stattfinden. Im Shop selber beim Verkauf von Items die Shopliste verändern während der Shop noch aktiv ist, ist nicht möglich. Wenn du einen Shop für das Kaufen und einen Shop für das Verkaufen einbaust, dann könntest du selber auslesen, wie viele z.B. Feuerkerne beim Starten des Shops und wie viele danach im Inventar sind und dir das mitspeichern. Nur das alles in einem Shop und ohne, dass du da selbst für jedes Item eigenen Eventcode schreiben müsstest, ist nicht drin.