Track magazine subscriptions with shopify - e-commerce

My client sells magazines. However, for cash-flow purposes they only take a payment once for one- and two-year subscriptions.
e.g. You buy "one year" at checkout, and for the next 12 months, the warehouse sends you magazines.
I've seen recurring order plugins for Shopify, but nothing that fits the bill. The ideal workflow would go something like:
Customer buys 1-year subscription
Customer's magazine shows on a pick-list every month for the next 12 months (the end of the subscription period)
Cancelling a subscription triggers a partial refund
Is there anything in Shopify that does this, or will we need custom development?

Shopify will handle the payment and refund scenarios. In addition you will need to keep track of subscribers. You can create a simple App that maintains a database with the ability to query current subscribers, using webhooks to track purchases and refunds.

Related

Migrate old subscriptions to stripe

We have an existing saas app where we used to handle payments for subscriptions offline in a manual way. (They pay us directly to our accounts and we update their subscription data in our database manually).
Now we are moving over to stripe so that customers can automatically add/renew their subscriptions on our platform (via stripe).
Since our app queries stripe to fetch the customers current subscription, we will have to somehow move all old subscriptions to stripe but I am not sure how to proceed with that.
What I expect at the end:
Add a subscription for all old customers to stripe WITHOUT charging the customers anything (as they have already paid to us outside of stripe).
Then when the subscription ends, let stripe proceed with its flow of auto-charging the customer.
I don't really care if the interval of the new subscription in stripe is from today to today+365days even though the customer purchased our services 3 months back (we don't mind giving him an extra 3 months for free)
What i tried and didn't work:
Create a subscription manually for the customer (via the api/dashboard) but stripe throws an error saying no payment method set for the customer which leads me to believe that stripe will want to charge for this subscription.
Approaches that I am evaluating:
Create a coupon with a 100% discount while creating a subscription for the old customers. But I am not really sure if this is the right way to approach this (what happens to stripe fees here?)
I would really appreciate it if someone can shed some light on what approach to take here?
Thanks!
I believe you can create a Subscription with a trial period. Ie. If your customer purchased your services 3 months back, you can create a Subscription with trial period = 9 months, or even 1 year if you don't mind giving them 3 months free until today + 365 days.
When a subscription is created with a trial period, it won't ask for a Payment Method. When its billing cycle is approaching, Stripe will send a trial_will_end webhook event for you to start collecting your customer payment method.
There is also a Stripe's official doc for trial Subscription.

How to reconcile financial information for in-app purchases to transactions?

We have an iOS app that supports in-app purchase. When someone makes an in-app purchase we create a Sales Order and Invoice in our ERP system (Netsuite) at the relevant store list price. We record the Apple transaction ID on these ERP records. When we receive a deposit from Apple for purchases, we need to be able to create a Payment record and apply the funds to the Invoice. I.e. we need to split the Apple bank deposit into payments for each transaction.
The way we do this reconciliation for Stripe and ACH/Check payments is to match transaction level payment information to Sales Orders. This allows our finance team to properly handle accounting for fees etc. and for them to have confidence we have received payment for all orders.
However, for in-app purchase we can find no way of downloading a report with transaction level information from App Store Connect. There are only summaries available at the country level. Based on other answers (1,2) it seems that it is simply not possible to get a transaction level report available from Apple. With this limitation how can we reconcile the funds received from Apple against our transactions?

Notification after subscription through authorize.net

I am a developer and set up authorize.net for subscription. Suppose I subscribed for 12 months from January. I can get transaction id and payment status and other necessary information on January or after first payment. But how can I get the transaction id and payment status and other necessary information on 2nd, 3rd, 4th payment and so on.
If you want to be notified of payments and retrieve all of the relevant information about them in an automated fashion use their Silent Post functionality. It is like Paypal's IPN as it will post transaction information to your website so you can record it in your database in real time.
You will get this information inside Authorize.Net Merchant Interface : https://account.authorize.net
Under the
Recurring Billing
option, inside the
Transaction Status Report
page you will find the
Monthly Transaction Status Dashboard
which contains the Subscriptions transaction details
There is also an ARB Email Notifications options to get this transactions in email, under the Recurring Billing option

Shopify API - Payments

I have been reviewing the API documentation for Shopify and am trying to figure out if the cost of an item selected from the 'Store' can be passed in a Get command back to a different website so a different website can charge for the Item along with other charges from a website ...and then once the payment goes through on the website, send a POST to shopify that the sale was complete and proceed with fulfilling the order?
Our software is newspaper software so we provide newspapers with subscriber web portals were customers can sign up and pay for a newspaper subscription.
We would like to offer the ability to add Single Sales items to what a customer purchases and we want to be able to do it in one payment transaction
I have reviewed the various Shopify API documentation but it is not clear if the API supports getting cost info and posting a successful charge back to Shopify to complete the fulfillment step. We are looking to be able to GET the cost for a selected single sale item passed to us from the Shopify API so that we can add it to the Amount we pass to the Payment Gateway we integrate with and when the payment goes through, send Shopify a success on the payment.
The ultimate goal is to have a customer make one payment that can include single sales items as well as a newspaper subscription or day pass.
You should do a POST and create an Order using the Shopify API once (at your side) are sure the payment has gone through.

Save and Verify the Card, Charge Later - Shopify

I'm setting up my first Shopify store and would like to offer a free trial of a product. The basic idea is the customer is shipped the product at no charge and has so many days to try out and return the product. If the product is not returned within the time period they are charged the amount agreed upon up front.
Within Shopify there is only the option to capture payment immediately or to authorize and then manually capture payment later (7 day auth limitation).
What I would like to do is validate the credit card, but not pre-auth, then the ship the product to the customer for try out. If they decide to keep the product then I charge them 30 days later as agreed by the customer.
The method I want to use with Shopify is the same as detailed by Braintree here
https://support.braintreepayments.com/customer/portal/articles/1080637-collect-payment-at-a-later-date-aka-extend-authorization-
in the section "Save and Verify the Card, Charge Later".
You can use the option as you see it: authorize and then manually capture payment later
As an alternative, you could always capture the money, and if they actually do return it, refund them the money. That is how all TV sales work and they make bazillions doing that, so why not follow their lead?