SellSavvy is a lightweight and convenient desktop application for tech-savvy independent sellers/dropshipping business owners to manage their customers' contacts and their orders, aiming to streamline their online drop-shipping management. It offers a centralised platform to organise customer contacts, track order deliveries and store the data.
SellSavvy is optimized for users who prefer Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, SellSavvy can get your drop-shipping management tasks done faster than traditional GUI apps.
Ensure you have Java 17 or above installed in your Computer.
You may install Java 17 from here.
Download the latest .jar file from here.
Copy the file to the folder you want to use as the home folder for SellSavvy.
Open a command terminal, cd into the folder you put the jar file in.
Use java -jar sellsavvy.jar command to run the application.
A GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.

Type the command in the command box and press Enter to execute it. e.g. typing help and pressing Enter will open the help window.
Some example commands you can try:
listcustomer : Lists all customers' contacts as a displayed customer list.
addcustomer n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 : Adds a customer named John Doe to the displayed customer list.
deletecustomer 3 : Deletes the 3rd customer's contact shown in the displayed customer list and their corresponding order list.
listorder 1 : Lists all orders under the 1st customer as a displayed order list.
addorder 1 i/Lamp d/20-12-2024 q/2 : Adds an order for a Lamp item to the displayed order list.
markorder 1 : Marks the 1st order shown in the displayed order list as completed.
clear : Deletes all customers' contacts.
exit : Exits the app.
Refer to the Features below for details of each command.
Notes about the command format:
Words in UPPER_CASE are the parameters to be supplied by the user.
e.g. in addcustomer n/NAME, NAME is a parameter which can be used as addcustomer n/John Doe.
Items in square brackets are optional.
e.g n/NAME [t/TAG] can be used as n/John Doe t/friend or as n/John Doe.
Items with … after them can be used multiple times including zero times.
e.g. [t/TAG]… can be used as (i.e. 0 times), t/friend, t/friend t/family etc.
Parameters can be in any order.
e.g. if the command specifies n/NAME p/PHONE_NUMBER, p/PHONE_NUMBER n/NAME is also acceptable.
Parameters cannot be blank.
Extraneous parameters for commands that do not take in parameters (such as help, listcustomer, exit and clear) will be ignored.
e.g. if the command specifies help 123, it will be interpreted as help.
If you are using a PDF version of this document, be careful when copying and pasting commands that span multiple lines as space characters surrounding line-breaks may be omitted when copied over to the application.
Command aliases are short forms of commands you can use to execute the commands more quickly and conveniently.
e.g. listc can be used instead of listcustomer to list all customers.
helpShows a message explaining how to access the help page.
Format: help
addcustomerAdds a customer to the address book.
Command alias: addc
Format: addcustomer n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]…
Examples:
addcustomer n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01addc n/Betsy Crowe t/friend e/betsycrowe@example.com a/Newgate Prison p/1234567 t/criminalNAME can only contain alphanumeric characters, spaces, and one of the following symbols: hyphen, comma, and apostrophe, where commas should be followed with a space.NAME should have alphanumeric characters before and after the symbol, and it should not be blank. Relationship indicator using "S/O" or "D/O" can be included but should be wrapped with a single space, and followed with the name of customer with stated relationship.NAME is not allowed.NAME (same name excluding space and casing), a warning will be given.PHONE_NUMBER should only contains numbers, and it should be at least be 3 digits long.EMAIL should be of the format local-part @ domain and adhere to the following constraints:
local-part should only contain alphanumeric characters and these special characters, excluding the parentheses, (+_.-).local-part may not start or end with any special characters.@ and then a domain name.domain name is made up of domain labels separated by periods.domain name must:
ADDRESS can take any values, and it should not be blank.TAG should be alphanumeric.TAG will be ignored.TAG (same name excluding space and casing) are added, a warning will be given.listcustomerShows a list of all customers in the address book.
Command alias: listc
Format: listcustomer
editcustomerEdits an existing customer in the address book.
Command alias: editc
Format: editcustomer CUSTOMER_INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]…
Examples:
editcustomer 2 p/91234567 e/johndoe@example.com Edits the phone number and email address of the 2nd customer to be 91234567 and johndoe@example.com respectively.editc 1 n/Betsy Crower t/ Edits the name of the 1st customer to be Betsy Crower and clears all existing tags.CUSTOMER_INDEX. The index refers to the index number shown in the displayed customer list. The index must be a positive integer 1, 2, 3, …t/ without
specifying any tags after it.findcustomerFinds customers whose names contain any of the given keywords.
Command alias: findc
Format: findcustomer KEYWORD [MORE_KEYWORDS]
Examples:
hans will match HansHans Bo will match Bo HansHan will not match HansOR search).
e.g. Hans Bo will return Hans Gruber, Bo YangdeletecustomerDeletes the specified customer contact and their corresponding orders from the address book.
Command alias: deletec
Format: deletecustomer CUSTOMER_INDEX
Examples:
listcustomer followed by deletecustomer 2 deletes the 2nd customer contact in the address book, along with their corresponding order list.findcustomer Betsy followed by deletec 1 deletes the 1st customer contact in the results of the find command, along with their corresponding order list.addorderAdds an order under a specified customer from the address book.
Command alias: addo
Format: addorder CUSTOMER_INDEX i/ITEM d/DATE [q/QUANTITY]
Examples:
addorder 2 i/Lamp d/20-11-2024 q/3 adds the order with item Lamp, quantity of 3 and delivery date 20-11-2024, to the 2nd customer in the address book.addo 1 i/Books d/02-03-2026 adds the order with item Books, quantity of 1 and delivery date 02-03-2026, to the first customer in the address book.findcustomer Betsy followed by addorder 1 i/Bottles d/12-12-2002 q/1 adds an order under the 1st customer in the results of the findcustomer command.
CUSTOMER_INDEX, with a default Pending status.ITEM can contain any printable characters, but it should not be blank.DATE must follow the following format: DD-MM-YYYYQUANTITY is not provided, the QUANTITY will be set to a default value of 1.DATE has elapsed the current date, a warning will be given.listorderList all orders of a specified customer from the address book.
Command alias: listo
Format: listorder CUSTOMER_INDEX
Examples:
listcustomer followed by listorder 2 lists all orders of the 2nd customer in the address book.findcustomer Betsy followed by listo 1 lists all orders of the 1st customer from the list of customers found with "Betsy".

deleteorderDeletes an order from the selected customer's displayed order list.
Command alias: deleteo
Format: deleteorder ORDER_INDEX
Examples:
deleteorder 1 deletes the order with index 1 from the selected customer.listorder 1 followed by deleteo 2 selects the 1st customer in the address book and deletes the 2nd order under the 1st customer.ORDER_INDEX.editorderEdits an order from the selected customer's displayed order list.
Command alias: edito
Format: editorder ORDER_INDEX [i/ITEM] [d/DATE] [q/QUANTITY]
Examples:
editorder 1 i/Light bulb d/21-11-2025 edits the item and delivery date of the 1st order to be Light bulb and 21-11-2025 respectively.edito 2 q/22 edits the quantity of the 2nd order to be 22.listorder 1 followed by editorder 3 i/Wallet selects the 1st customer in the address book and edits the item of the 3rd order under the 1st customer to be Wallet.ORDER_INDEX. The order index refers to the index number shown in the displayed order list.markorderMarks an order from the selected customer's displayed order list as completed.
Command alias: marko
Format: markorder ORDER_INDEX
Examples:
markorder 2 marks the order with index 2 from the displayed order list as completed.listorder 1 followed by marko 1 selects the 1st customer in the address book and marks the 1st order under the 1st customer as completed.
ORDER_INDEX as completed.Pending.unmarkorderReverts an order from the selected customer's displayed order list to pending.
Command alias: unmarko
Format: unmarkorder ORDER_INDEX
Examples:
unmarkorder 1 reverts the order with index 1 from the displayed order list to pending.listorder 1 followed by unmarko 2 selects the 1st customer in the address book and reverts the 2nd order under the 1st customer to pending.

ORDER_INDEX to pending.Completed.filterorderFilters orders by the specified order status, under a selected customer from their displayed order list.
Command alias: filtero
Format: filterorder ORDER_STATUS
Examples:
filterorder Pending filters the currently displayed order list for all orders with the Pending status, resulting in a list of pending orders under the selected customer being displayed.listorder 1 followed by filtero completed displays the list of all completed orders under the 1st customer in the address book.

ORDER_STATUS.ORDER_STATUS must be a valid status, which is either Pending or Completed.ORDER_STATUS is case-insensitive. e.g. completed is the same as Completed.filterorder pending followed by marking the first order in the filtered list as completed will remove that order from the current filtered list.clearClears all entries from the address book.
Format: clear
exitExits the program.
Format: exit
SellSavvy data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
SellSavvy data are saved automatically as a JSON file [JAR file location]/data/addressbook.json. Advanced users are welcome to update data directly by editing that data file.
Caution:
If your changes to the data file makes its format invalid, SellSavvy will discard all data and start with an empty data file at the next run. Hence, it is recommended to take a backup of the file before editing it.
Furthermore, certain edits can cause the SellSavvy to behave in unexpected ways (e.g., if a value entered is outside the acceptable range). Therefore, edit the data file only if you are confident that you can update it correctly.
Q: How do I transfer my data to another Computer?
A: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous SellSavvy home folder.
preferences.json file created by the application before running the application again.help command (or use the Help menu, or the keyboard shortcut F1) again, the original Help Window will remain minimized, and no new Help Window will appear. The remedy is to manually restore the minimized Help Window.| Action | Command | Format and Examples |
|---|---|---|
| Add a customer | addcustomer, addc | addcustomer n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]…e.g. addcustomer n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 t/friend t/colleague |
| Add an order | addorder, addo | addorder CUSTOMER_INDEX i/ITEM d/DATE [q/QUANTITY]e.g. addorder 2 i/Lamp d/20-11-2024 q/3 |
| Clear | clear | |
| Delete a customer | deletecustomer, deletec | deletecustomer CUSTOMER_INDEXe.g., deletecustomer 3 |
| Delete an order | deleteorder, deleteo | deleteorder ORDER_INDEXe.g. deleteorder 2 |
| Edit a customer | editcustomer, editc | editcustomer CUSTOMER_INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]…e.g. editcustomer 2 n/James Lee e/jameslee@example.com |
| Edit an order | editorder, edito | editorder ORDER_INDEX [i/ITEM] [d/DATE] [q/QUANTITY] e.g. editorder 1 i/Light bulb d/21-11-2025 |
| Exit | exit | |
| Filter orders by status | filterorder, filtero | filterorder ORDER_STATUSe.g. filterorder Completed |
| Find customer(s) | findcustomer, findc | findcustomer KEYWORD [MORE_KEYWORDS]e.g. findcustomer James Jake |
| Help | help | |
| List all customers | listcustomer, listc | |
| List all orders | listorder, listo | listorder CUSTOMER_INDEXe.g. listorder 3 |
| Mark an order as completed | markorder, marko | markorder ORDER_INDEXe.g. markorder 2 |
| Revert an order to pending status | unmarkorder, unmarko | unmarkorder ORDER_INDEXe.g., unmarkorder 2 |