| Algorithms A9. Smart Contract 9: Product Sales |
| Input: product id, batch number, order number, product quantity, addr, stakeholder_id |
| 1. if addr is valid && addr has adding authentication |
| 2. if stakeholder_id==Distributor |
| 3. x[]=getDistributor(Stakeholder_id) |
| 4. y=getProductSales_Info(x.id, product id, order number) |
| 5. z=getBilling_Info(x.id, product id, order number) |
| 6. a[]=getProduct_Stakeholder_Info(x.id, product id, order number) |
| 7. end |
| 8. else |
| 9. x[]=getRetailer(Stakeholder_id) |
| 10. y=getProductSales_Info(x.id, product id, order number) |
| 11. z=getBilling_Info(x.id, product id, order number) |
| 12. a[]=getProduct_Stakeholder_Info(x.id, product id, order number) |
| 13. end |
| 14. else |
| 15. Invalid or authorised address |
| 16. go to step 1 and enter a valid address |
| 17. end |