{"id":20866508,"url":"https://github.com/ericboehs/op_cart","last_synced_at":"2025-09-05T12:42:09.558Z","repository":{"id":20205252,"uuid":"23476683","full_name":"ericboehs/op_cart","owner":"ericboehs","description":"Opinionated cart engine for Ruby on Rails","archived":false,"fork":false,"pushed_at":"2015-11-24T02:56:03.000Z","size":453,"stargazers_count":1,"open_issues_count":1,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-20T02:46:12.642Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ericboehs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"MIT-LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-08-29T20:22:12.000Z","updated_at":"2015-03-24T00:13:48.000Z","dependencies_parsed_at":"2022-08-20T13:50:06.441Z","dependency_job_id":null,"html_url":"https://github.com/ericboehs/op_cart","commit_stats":null,"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericboehs%2Fop_cart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericboehs%2Fop_cart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericboehs%2Fop_cart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericboehs%2Fop_cart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ericboehs","download_url":"https://codeload.github.com/ericboehs/op_cart/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243240543,"owners_count":20259434,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-18T05:58:21.794Z","updated_at":"2025-03-12T15:25:03.633Z","avatar_url":"https://github.com/ericboehs.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Op(inionated) Cart\n\n_Opinionated cart engine for Ruby on Rails_\n\nOpCart makes things simple through inflexibility and lack of features.\n\nOpCart assumes you are using:\n- Stripe for payments\n- Rails `~\u003e 4.2.0`\n- Postgres `~\u003e 9.3`\n- Devise `~\u003e 3.3` for authentication\n- ActiveJob with a job queue configured\n- SSL already\n\nOpCart assumes you don’t:\n- have hundreds of products and want search indexing\n- need promotion/coupon support\n- need to track inventory\n- charge for shipping\n- have complex products to sell (e.g. variants like different sizes and colors)\n- like Spree or other open-source carts\n\n### Installation\n\nAdd `op_cart` to your `Gemfile`:\n```\ngem 'op_cart', '~\u003e 1.0.0'\n```\n\nCopy the migrations and run them:\n```\nrake op_cart:install:migrations db:migrate\n```\n\nAdd a `checkout` route to your `config/routes.rb`:\n```\nRails.application.routes.draw do\n  mount OpCart::Engine =\u003e \"/store\"\n  #...\nend\n```\n\n_When updating OpCart, you will need to run `rake op_cart:install:migrations` again._\n\n### Data Models and Classes\n- Product\n  - name\n  - description\n  - image\\_url\n  - price (in cents)\n  - allow\\_purchases (to hide product and disable sales)\n  - charge\\_taxes\n  - user\\_id (creator)\n- Order\n  - status\n  - total\n  - tax\\_charge\n  - shipping\\_address\\_id\n  - user\\_id\n- Line Item\n  - unit\\_price\n  - quantity\n  - price\n  - sellable\\_snapshot (object freeze)\n  - sellable\\_type\n  - sellable\\_id\n  - order\\_id\n- Payment\n- PaymentGateway\n- Cart (cookie?)\n- Address\n- Shipment\n- Tax Calculator\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericboehs%2Fop_cart","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fericboehs%2Fop_cart","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericboehs%2Fop_cart/lists"}