Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/starhoshi/orderable
An order processing framework works with Cloud Functions for Firebase
https://github.com/starhoshi/orderable
cloud-function-for-firebase cloud-functions cocoapods firebase firestore ios swift
Last synced: about 2 hours ago
JSON representation
An order processing framework works with Cloud Functions for Firebase
- Host: GitHub
- URL: https://github.com/starhoshi/orderable
- Owner: starhoshi
- License: mit
- Created: 2018-01-24T08:03:25.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2018-02-27T06:25:48.000Z (over 6 years ago)
- Last Synced: 2024-11-17T00:24:53.736Z (2 days ago)
- Topics: cloud-function-for-firebase, cloud-functions, cocoapods, firebase, firestore, ios, swift
- Language: Swift
- Homepage:
- Size: 23.8 MB
- Stars: 12
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.ja.md
- License: LICENSE
Awesome Lists containing this project
README
# Orderable
⚠️ Orderable は現在開発中です ⚠️
Orderable は Cloud Functions for Firebase と連携し、決済が簡単に実行できるライブラリです。
EC に必要な在庫チェック、購入処理、購入後の履歴作成などを実行できます。Orderable の Protocol を実装し、[orderable.ts](https://github.com/starhoshi/Orderable.ts) を Cloud Functions for Firebase に deploy する必要があります。
## Installation
Podfile:
```
pod 'Orderable'
```## Usage
### 1. Protocol
[Orderable/Model\.swift](https://github.com/starhoshi/Orderable/blob/master/SampleModel/Model.swift) を参考に、あなたのプロジェクトで必要な Model の定義をしてください。
* User
* 購入者
* Shop
* 販売者
* Product
* 商品の概念。
* SKU
* 商品の実態。在庫や値段などを持つ。
* Order
* 注文。ユーザが支払う金額や支払い方法などを持つ。
* OrderShop
* Shop ごとの注文情報。
* OrderSKU
* 注文された商品。購入数などを持つ。### 2. Deploy
[orderable.ts](https://github.com/starhoshi/Orderable.ts) を Cloud Functions に Deploy してください。
### 3. Pay an order
Sample code is [here](https://github.com/starhoshi/Orderable/blob/master/Demo/ViewController.swift). `order.paymentStatus = OrderPaymentStatus.paymentRequested` にして update すると Cloud Functions が動き出します。
```swift
let order = Order()
order.amount = 1000
let stripe = Stripe()
stripe.customerID = "new_cus"
stripe.cardID = "new_card"
order.stripe = stripe
order.paymentStatus = OrderPaymentStatus.created
order.save()...
// functions trigger
order.paymentStatus = OrderPaymentStatus.paymentRequested
order.update() // start cloud functions
```### 4. Result
Cloud Functions が成功すると、 `order.neoTask.status === 1` がセットされます。 order を observe して処理が完了するのを待ってください。
```swift
import Pringvar disposer: Disposer?
self?.disposer = Order.listen(order.id) { order, error in
if order.neoTask.status === 1, order.stripeChargeID != nil {
// stripe charge completed.
}
}
```## Error
詳細なエラーは [starhoshi/orderable\.ts#Error](https://github.com/starhoshi/orderable.ts#neotask) に記載してありますので、それぞれのエラーに対しクライアント側で適切にハンドリングしてください。
クライアント側が意識するべきエラーは以下の2つです。
* invalid
* クライアント側で修正が必要なエラー
* fatal
* 開発者が手動で対応しなければならないもの