This project contains the code behind the single-page store at Stripe Shop

  • By Stripe Archive
  • Last update: Dec 21, 2022
  • Comments: 6

Shop

Shop

This project contains the code behind the single-page store at Stripe Shop. We ported the backend to Parse's Code Cloud so you can easily launch and modify your own copy. (Also, we didn't want to open-source the photo of Kat and Thairu, so we decided to take a replacement.)

Feel free to take whatever pieces you find useful! We ask only that you don't use it to sell actual Stripe T-shirts . Improvements are welcome — just open a pull request.

The details

We have a running live demo of the app. It's running in Stripe's test mode, so you'll have to use 4242-4242-4242-4242 as the card (and we won't actually send you a shirt, sorry!).

Getting up and running

To get your own instance of Shop up and running, you'll need to do the following:

  1. Create a new Parse app.
  2. Copy config/global.json to config/local.json.
  3. Add the Application ID and Master Key to config/local.json.
  4. Set up the parse command line utility (you may find their docs helpful).
  5. Create a parseapp.com subdomain for your app. The same docs should be helpful.
  6. Run parse deploy. You now have a running Shop!

Not required to get the app running, but you'll probaby also want to:

  1. Create your own Stripe account and puts its keys into cloud/config.js. (By default, Shop uses a fixed test account.)
  2. Put your Google analytics tracking information into public/assets/js/ga.js.

Contributors

Github

https://github.com/stripe-archive/shop

Comments(6)

  • 1

    Uncaught ReferenceError: _ is not defined

    After changing cloud/views/index.ejs file to use non minified shop.js

    <script src="/assets/js/shop.min.js?1377809478"></script>
    to 
    <script src="/assets/js/shop.js"></script>
    

    Getting Uncaught ReferenceError on below line

    var itemTemplate = _.template($('#item-template').html());
    

    in here

  • 2

    Error with address validation or something

    When a payment request is made, you'll get error message "Oops... address must be at least 0 characters long."

    Try it for yourself, https://shop-demo.parseapp.com/

  • 3

    Demo site is down

    https://shop-demo.parseapp.com/ is responding with

    This site can’t be reached shop-demo.parseapp.com’s server IP address could not be found.

    This repo hasn't been modified in 5 years. If it's deprecated - it might help potential stripe users if you mark it clearly as such.

  • 4

    Enable Sourcegraph

    I want to use Sourcegraph for shop code search, browsing, and usage examples. Can an admin enable Sourcegraph for this repository? Just go to https://sourcegraph.com/github.com/stripe/shop. (It should only take 30 seconds.)

    Thank you!

  • 5

    Error syntax

    In /cloud/model.js line 22 states the field should be longer than max_length, rather than shorter.

    Line 21 - 23:

    if (spec.max_length && value.length > spec.max_length) {
        return name + ' must be at least ' + value.length + ' characters long.';
      }
    
  • 6

    Different priced items

    We are trying to configure to have 2 items with different prices, they add and total in the cart correctly but the description price stays the same.

    SKU 1 is correct at $14/each SKU 2 should be shown as $18/each

    capture

    How can we modify the code to achieve this?

    I also noticed that the total that is passed thru to stripe is also incorrect...