Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make a "Article suspendu" / Charity feature #204

Open
Tirodem opened this issue Jun 22, 2023 · 4 comments
Open

Make a "Article suspendu" / Charity feature #204

Tirodem opened this issue Jun 22, 2023 · 4 comments

Comments

@Tirodem
Copy link
Contributor

Tirodem commented Jun 22, 2023

image

Context

In Belgium, you can go to the bar and say "Hey, give me 3 coffees + 1 suspended one" (same thing for fries).
Suspended articles are paid by someone, put aside, then given for free for anyone asking for them.
We did that once during the "Printeurs" crowdfunding and we'd like to allow Bootik's customers to do the same.
More infos here : https://www.lesuspendu.ch/

Use cases

  • As a customer A, I want to buy products for me but also for the others thanks to the "Suspendu" option
  • As a customer B, I want to be able to buy for 0 SAT a suspended product
  • As a Bootik owner I want to track a paid order for the product and a free order for the suspended product
  • As a Bootik owner I want the paid / suspended product stocks to be dinamically managed

Prerequisites

Add a "Suspended is allowed" option on product (default = False)

image

Add a "Buy for other (suspended product)" on product page

image
Option is only :

  • for adding to cart (not for immediate checkout)
  • only on product page (not on widget)
    "What is a suspended sale ?" contains a link to www.lesuspendu.ch

Add a display option on cart

Case when article is bought for cuustomer A and bought for charity :

  • on cart preview
    image
  • on /cart
    image
  • on /checkout
    image
  • on /order
    image
    Note : this is not a 2nd product to create, and on the order datas, it'll be 2 sales of the product. But it'll be 2 sales of the product "including 1 for charity".

Create a /charity route based on /product

When I display a product via the /charity/{product_id} route :

  • product page is displayed normally
  • displayed price is 0
  • amount dropdown is equal to product charity available quantity (new database info for product)
  • is product charity available quantity is = 0, instead of the product page, display a "Sorry, there's actually no charity for this product"

Create a "order is free" payment mean on /checkout

Mark orders with amount = 0 automatically as "paid" on /order

Process

  • Given customer A buys product 1 in qty X for charity, when order is created, track charity quantity for this product in the order datas
  • Given an order includes charity products > 0, when order is paid, increment "charity available quantity" on corresponding products datas
  • Given a product is bought via the /charity/{id} route, when order is paid, don't impact the product stock (already done on initial order), decrement "charity available quantity"
@Tirodem Tirodem self-assigned this Jun 23, 2023
@Tirodem Tirodem changed the title Make a "Article suspendu" feature Make a "Article suspendu" / Charity feature Jun 23, 2023
@Tirodem Tirodem assigned coyotte508 and unassigned Tirodem Jul 5, 2023
@coyotte508
Copy link
Collaborator

Sounds nice but very easy to abuse over internet.

2 days?

@Tirodem
Copy link
Contributor Author

Tirodem commented Jul 6, 2023

Feel free to develop about abuse.
Surely you can monitor & spam the buy of free charity product, but, otherwise ?

@coyotte508
Copy link
Collaborator

Yes, with only shops people do bots to buy limited quantity products as soon as available, so yea people will probably do bots to get charity products as soon as available

@Tirodem
Copy link
Contributor Author

Tirodem commented Jul 6, 2023 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants