Zero
Zero

Reputation: 453

Laravel cashier + Stripe : creating a plan with quantity and decreasing prices

I'm whiling for one of my project to create a subscription system with Laravel Cashier and Stripe.

We will offer one plan to our users : 10€ / month for one location (they can add locations in the system) and for 75 followers.

What I want to do, is to make them pay more for locations : 2.5€ / locations / month for example, so this can be achieve with quantities ? But still, if the basic plan is at 10€ and I put 2 as a quantity, total price will be 20€ ?

Then price will be also based on their followers. 75 are included in the basic price. But then if they want more, they will also have to pay.

Example :

How can I handle that and make sure the customer will have to pay everything in one shot ?

Thanks in advance !

Upvotes: 1

Views: 2836

Answers (2)

Max Stern
Max Stern

Reputation: 180

I would use my front or back end to calculate:

  • price
  • discount rate

When the calculation is done, you can create your subscription with the right quantity and price, and discount rate (discount coupon).

$user->newSubscription('main', 'main')
    ->quantity($quantity)
    ->withCoupon($coupon)
    ->create($token, ['email' => $user->email]);

Upvotes: 0

dev
dev

Reputation: 1000

My advice would be to;

  1. Calculate the total charge in your own logic,
  2. Initiate a 'once-off' payment by first creating a customer object,
  3. Then creating a charge!

Easy as 1,2,3 :D

Here's a tutorial from Stripes documentation on creating payments. https://stripe.com/docs/charges


If you would like to add the user to a plan (subscription), see the below example (in PHP).

$customer = \Stripe\Customer::create(array(
   "source" => $tokenID, 
   "plan" => $plan,
   "email" => $email,
   "coupon" => $coupon
));

Upvotes: 1

Related Questions