Provide discount to preferred customer with Satchmo? - python

I am new to Satchmo -- picked it up because I needed payment processing for site subscriptions and physical product.
My site will have two classes of users: paid subscribers and free users. Both can order a
physical product. Paid subscribers get an automatic discount on all orders.
I don't see a configuration for this in the admin. (Discount looks like it would apply to all users. If I'm missing something here, let me know.)
So what's the best place to automatically override the price depending on the user class? The displayed price should show up, say, 10% less for subscribers everywhere in the site, not just at the checkout.
Thanks.

Checkout the tiered pricing module

Related

Can anyone help me out with discount coupons in Django?

Currently I am working on a E-Commerce Website, I Need to Implement these Offers on add to cart as the Products are being added, the Price should be discounted according to the Offer Provided.
The Offers are as follows:
Offer 1- Buy one get one free,
Offer 2- 50% off on more than 2000 buy,
Offer 3- 30% off on selecting more than 2 products to add to the cart.
I have made the E commerce website everything is fine but just don't know how to use the Offer logic and though tried multiple things but nothing worked as it should.
The offer must automatically work on cart as soon as the products are added and before payment gateway the discount should work and get deducted.
idk how are your models and what's exactly your problem but let's say price_all is a field in your cart model and count is how many products of one type are in cart.
for Offer 1 easily you can divide price(this is not price_all this field belongs to your product) into 2.or you can just double the count and I think the second way is better.
for Offer 2 you can add an if to check if price_all is more than 2000 or not.
for offer 3 you can check if the count is more than 2 or not easily.
you can check all of this in save() function of your model or you can make a presave signal for that.if you don't know how just read the docs.

Django - How can I manage custom payments between users on my platform with Stripe?

I'm trying to create a platform with multiple functionalities, and one of them is a crowfunding of projects, in which the users can post a project and ask for funds. (like kickstarter or indiegogo).
I'm working with Django 2.0, Python 3.6 and PostgreSQL and I want to use Stripe for payments. I also read a bunch of the Stripe's API Documentation, and I have some ideas for doing this, but this will be my first API implementation so I would like to do it well (more even talking about payment systems).
The main question is: How can I do that multiple users realize payments to another for one project ONLY when the goals of that project are reached?
What I think that is the better is to use (Stripe Connect) Express/Custom Accounts to create an account for each user that posts a Project, so I can redirect all the payments to that account.
The thing is that I also want to apply a fee for my platform.
And I don't know exactly how can I do this. I imagine that Stripe give an option for that to evade doing two transactions in my own backend (one for the project's user and another for the platform (me).
Then I have another related problem that is when should I do the transactions?
I have to asure the 100% of the transactions, but also that the project get the funds only when it reach the goals, So I don't know if with Stripe I can freeze all the funds and then give it to the project or refund it depending on the state of the project goals.
As an alternative comes to my mind to put all the funds to an a sub-bank account of my own platform and then if the project reach the funds, do the transaction to the user's account; or if the project fails, make a full refund. The problem I see here is that if the project succeed, Stripe get's x2 times a transaction commission, and if the project fails, I (my platform) have to pay for my own the first transaction's Stripe commission. So this is not t.he correct answer at all.
Kickstarter (as a main example) only do the transaction when the
project reach the funding goals, but doing that, they can (and
usually) get some failed transactions. This is what I cannot accept in
my platform.
To sum up, I want be able to make that an user can pay to another only when the project goals are reached, get a commission for it and asure that the 100% of the transactions are accepted.
I would like to ask for help in the coding (or tips at least) because I also read the documentation of dj-stripe and pinax-stripe, but I don't see the way of doing what I need because their documentation is based on simple payments always to the same user and for subscriptions.
I think that maybe the best option is to use the python api given by Stripe.
I also searched a lot for this and found the following things: Crowdao, a project with stripe integrated for crowdfunding BUT is only for one project, so it doesn't solve the problem; A way of doing AHC with Django-allauth and Stripe, but I don't see exactly how they do that, and I want to use more payment systems too, so I imagine it doesn't fit as a good answer for my problem.
If you need any extra information please ask for it, I'll do whatever I can. Thank you very much.
You could use stripe connect and when creating the charge use authorize-only (Note: Max 7 days)
As #Oscar has suggested, connect[0] is the way to go.
So basically yourself will registered as a platform account and each projects will be registered as connected account, most likely custom/express type[1]. Your end user accounts who is contributing to each projects will live in your main platform account.
There are many ways to achieve your goal by charging the customer when goal is met. but One way is that So you can do a Destination Charge [2] and a Manual Payout[3].
Basically
In Destination charge, you charge the user $100 and transfer $80 to the connected project account; so you keep $20 as a fee;
The $80 sits on the project stripe account's balance which is not paid out to their bank account.
If the goal reaches, you trigger a manual payout to the project so that the project actually get the $80 dollars
If not, you will need to perform on refund[4] on all the transactions on that project.
That's it.
Take note the manual payout only hold for 90 days, after that it moves out directly
Your account will bear all the fees to Stripe for transactions which you can recover from your application fee ($20) on the project.
But the refund will cost you as there will be no fee earned but still payable to Stripe.
Hope it helps.
0 connect
1 accounts
2 Destination Charge
3 Manual Payouts
4 Refund

How to buy a product using a various payments methods in python?

I have a project that am working in and it almost done except one problem that i can't make or in fact i don't know how to make it done .
The client told me that he want to connect a various payments methods to his site , so lets consider that you are a user and you want to buy a product , inside your panel as a user there is a various banks or methods to buy this product, lets say:
Qiwi wallet
Webmoney
Visa Card
Master Card
Yandex money
you can choose anyone of these to buy it .
Another thing is to show your balance inside the panel so to know whether you have enough money to pay or not, also he want that the user could charge money into his balance if he didn't have enough money.
There is a service called Stripe, which provide stuffs like that, but i 'am not really sure if it would help in any way, all i know about it is, you can make any payments using Master card or Visa card that's all .
Simply the issue is to know how to, pay with various payments methods, balance status and charge balance.
The project is written in python using Flask framework .
Please Please Please , bagging you all, how to make that work, or in a different way from where to start ?, which process should i follow ?, any help really truly would be tons appreciated .
Stripe actually provides quite a number of payment methods but not all of the ones you've listed, so Stripe can definitely help, but you're going to have to implement multiple payment flows here - one for the methods that Stripe can handle, and one for each of the others - as part of your application.
With regards to the Stripe stuff, I'd suggest you have a read through the documentation to learn about getting started there.

Balanced payments API doubts

I'm trying to integrate balanced payments API into my work. I've looked at Docs and other concerned forums also but didn't get clear my doubts.
I understand the flow of this though, but due to some method names i'm getting confused.
e.g. customer.
https://docs.balancedpayments.com/1.0/overview/getting-started/#charge-a-credit-card
What have I tried till now:(in Python)
I've created a dummy/Test bank and it's working fine.
bank_account = balanced.BankAccount(...) but I dont know how much could I debit from this or first do I have to credit into.
after this I created a card and then I created a customer customer = balanced.Customer().save()
and then associated the card with the customer customer.add_card('/v1/marketplaces/TEST-MP52IlCmywk6hGbgS75QSlN/cards/CC3AiMy0KEP1PhwnffMk32RF')
but how is this statement working?
customer.add_bank_account('/v1/bank_accounts/BA24Zc2jo1moflunJDxKrCrB')
I'm slightly confused with this customer word.
Could somebody please explain this from beginning in simple steps.
Customers are objects that represent businesses or people within your marketplace (i.e. buyers and sellers). In this revision of the API, funding instruments (e.g. credit cards, bank accounts) must be associated to a specific customer object before you can initiate any transactions.
The method you listed:
customer.add_bank_account('/v1/bank_accounts/BA24Zc2jo1moflunJDxKrCrB')
Is associating the bank account to the customer object that you created.
You specify the amount for a debit (charge) or credit (payout). The limit depends on a number of factors (e.g. credit limit, available funds, transaction limits)

How do you implement a web-based direct deposit/eCheck payment system?

I'm trying to develop a site that will allow users to pay for services with eChecks that other users are offering.
The purchaser would pay money that would go into my account via direct deposit. The service provider could later withdraw money up to the amount they accumulated to their bank account.
Every time I ask payment gateway providers about this, they act like I'm speaking in a foreign language. Paypal told me that their API doesn't allow direct deposits or eChecks.
What sort of merchant account / gateway combination do I need to do this? Can you direct me to any specific companies? I use Python/Django to develop applications, do you know of any libraries that might assist me with this endeavor?
I'm certain that you would not be able to do facilitated ACH/EFT transfers directly from one user's account to another user's account. However, as long as there's a third party in between the two users, this should be possible. But I'm assuming you'd want to do that anyways, so that you can get paid. The trick is finding a provider that will do both withdrawals and deposits, since most providers only give you withdrawals. I'd recommend at least talking to BrainTree; they're by far my favorite payment provider. If they don't work out though, you might try Alliance, however, I've never used them, so take that recommendation with a grain of salt.

Categories