- [x] Distributed P2P network (need help with I2P integration!!!)
- [ ] Buy and sell products and services with Monero
- [x] No KYC
- [ ] No censorship (censorship-resistant)
@ -70,11 +70,11 @@ The name _neroshop_ is a combination of the words _nero_, which is Italian for _
- [x] Option to run a local Monero node or connect to remote Monero nodes
- [ ] Payment address QR codes containing Monero URIs
- [ ] Option to choose between sending funds directly to a seller or by using a multisignature escrow.
- [ ] Native Tor and I2P support
- tor daemon can be installed manually and i2pd will be built-in
- [ ] Native I2P support
- i2pd will be built-in (statically linked)
- [x] Seller reputation system
- [x] Product rating system
- [] Wishlists
- [x] Wishlists
- [x] Built-in SQLite-powered search engine that can find any products or sellers
- [ ] Full-featured and user-friendly GUI application (WIP)
@ -230,7 +230,7 @@ This project is licensed under the [GNU General Public License v3.0 (GPLv3)](LIC
## Donations
You may support the neroshop project directly by donating to any of the addresses below. Received payments will be used to reward developers for their contributions to the project (mostly by completing bounties) and will also be used to fund our official website domain name.
Donate if you like, to any of the addresses below. Received payments will be used to reward developers for their contributions to the project (mostly by completing bounties) and will also be used to keep the `neroshop.org` domain running.
if(!database)throwstd::runtime_error("database is NULL");
database->execute_params("DELETE FROM listings WHERE product_id = $1 AND seller_id = $2",{product_id,get_id()});// update item stock to 0 beforehand or nah?
database->execute_params("UPDATE inventory SET stock_qty = $1 WHERE product_id = $2 AND seller_id = $3",{std::to_string(stock_qty),product_id,get_id()});
std::stringitem_name=database->get_text_params("SELECT name FROM item WHERE id = $1",{product_id});
neroshop::print("\""+item_name+"\"'s stock has been updated",3);
if(!database)throwstd::runtime_error("database is NULL");
std::stringdisplay_name=database->get_text_params("SELECT key FROM mappings WHERE search_term = $1 AND content = 'account' LIMIT 1;",{user_id.toStdString()});
returnQString::fromStdString(display_name);
std::stringkey=database->get_text_params("SELECT key FROM mappings WHERE search_term = $1 AND content = 'account' LIMIT 1;",{user_id.toStdString()});
Q_INVOKABLEQVariantListgetSearchResults(constQString&search_term,intcount=1000);// count is the maximum number of search results (total). The search results (per page) can be between 10-100 or 50-100
Q_INVOKABLEQVariantListgetListingsBySearchTerm(constQString&search_term,intcount=1000);// count is the maximum number of search results (total). The search results (per page) can be between 10-100 or 50-100
// Products should be registered so that sellers can list pre-existing products without the need to duplicate a product which is unnecessary and can make the database bloated
if(!database)throwstd::runtime_error("database is NULL");
std::stringcommand="SELECT DISTINCT * FROM listings JOIN products ON products.uuid = listings.product_id JOIN images ON images.product_id = listings.product_id WHERE seller_id = $1 GROUP BY images.product_id;";
command="SELECT DISTINCT * FROM listings JOIN products ON products.uuid = listings.product_id JOIN images ON images.product_id = listings.product_id WHERE seller_id = $1 GROUP BY images.product_id;";
command="SELECT DISTINCT * FROM listings JOIN products ON products.uuid = listings.product_id JOIN images ON images.product_id = listings.product_id WHERE seller_id = $1 GROUP BY images.product_id ORDER BY date ASC;";
command="SELECT DISTINCT * FROM listings JOIN products ON products.uuid = listings.product_id JOIN images ON images.product_id = listings.product_id WHERE seller_id = $1 GROUP BY images.product_id ORDER BY date DESC;";
command="SELECT DISTINCT * FROM listings JOIN products ON products.uuid = listings.product_id JOIN images ON images.product_id = listings.product_id WHERE seller_id = $1 GROUP BY images.product_id;";
command="SELECT DISTINCT * FROM listings JOIN products ON products.uuid = listings.product_id JOIN images ON images.product_id = listings.product_id WHERE seller_id = $1 GROUP BY images.product_id;";
command="SELECT DISTINCT * FROM listings JOIN products ON products.uuid = listings.product_id JOIN images ON images.product_id = listings.product_id WHERE seller_id = $1 GROUP BY images.product_id;";
command="SELECT DISTINCT * FROM listings JOIN products ON products.uuid = listings.product_id JOIN images ON images.product_id = listings.product_id WHERE seller_id = $1 GROUP BY images.product_id;";
command="SELECT DISTINCT * FROM listings JOIN products ON products.uuid = listings.product_id JOIN images ON images.product_id = listings.product_id WHERE seller_id = $1 GROUP BY images.product_id;";
command="SELECT DISTINCT * FROM listings JOIN products ON products.uuid = listings.product_id JOIN images ON images.product_id = listings.product_id WHERE seller_id = $1 GROUP BY images.product_id;";
break;*/
/*case InventorySorting:: :
std::cout<<"Sort? ("<<?<<") selected\n";
command="SELECT DISTINCT * FROM listings JOIN products ON products.uuid = listings.product_id JOIN images ON images.product_id = listings.product_id WHERE seller_id = $1 GROUP BY images.product_id;";
command="SELECT DISTINCT * FROM listings JOIN products ON products.uuid = listings.product_id JOIN images ON images.product_id = listings.product_id WHERE seller_id = $1 GROUP BY images.product_id;";
if(!database)throwstd::runtime_error("database is NULL");
std::stringcommand="SELECT DISTINCT * FROM listings JOIN products ON products.uuid = listings.product_id JOIN images ON images.product_id = listings.product_id WHERE seller_id = $1 AND quantity > 0 GROUP BY images.product_id;";
std::stringcommand="SELECT DISTINCT key FROM mappings WHERE search_term = ?1 AND content = 'listing'";
if(!database)throwstd::runtime_error("database is NULL");
std::stringcommand="SELECT DISTINCT * FROM listings JOIN products ON products.uuid = listings.product_id JOIN images ON images.product_id = listings.product_id WHERE seller_id = $1 GROUP BY images.product_id ORDER BY date ASC;";
command="SELECT DISTINCT * FROM listings JOIN products ON products.uuid = listings.product_id JOIN images ON images.product_id = listings.product_id WHERE seller_id = $1 GROUP BY images.product_id;";