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.
help
Shows a message explaining how to access the help page.
Format: help
addcustomer
Adds 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-01
addc n/Betsy Crowe t/friend e/betsycrowe@example.com a/Newgate Prison p/1234567 t/criminal
NAME
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.listcustomer
Shows a list of all customers in the address book.
Command alias: listc
Format: listcustomer
editcustomer
Edits 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.findcustomer
Finds customers whose names contain any of the given keywords.
Command alias: findc
Format: findcustomer KEYWORD [MORE_KEYWORDS]
Examples:
hans
will match Hans
Hans Bo
will match Bo Hans
Han
will not match Hans
OR
search).
e.g. Hans Bo
will return Hans Gruber
, Bo Yang
deletecustomer
Deletes 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.addorder
Adds 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-YYYY
QUANTITY
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.listorder
List 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".
deleteorder
Deletes 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
.editorder
Edits 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.markorder
Marks 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
.unmarkorder
Reverts 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
.filterorder
Filters 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.clear
Clears all entries from the address book.
Format: clear
exit
Exits 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_INDEX e.g., deletecustomer 3 |
Delete an order | deleteorder , deleteo | deleteorder ORDER_INDEX e.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_STATUS e.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_INDEX e.g. listorder 3 |
Mark an order as completed | markorder , marko | markorder ORDER_INDEX e.g. markorder 2 |
Revert an order to pending status | unmarkorder , unmarko | unmarkorder ORDER_INDEX e.g., unmarkorder 2 |