ReceetPOSAddOn
ReceetPOSAddOn 是一个易于集成的附加组件,可以安装在世界上任何运行在 iOS 上的销售点系统中,并以最少的集成工作向客户提供数字收据。
安装
CocoaPods
请查看 cocoapods.org 上的“开始”选项卡。要在您的 iOS 销售点项目中使用 ReceetPOSAddOn,请将以下 'Podfile' 添加到项目中
source 'https://github.com/CocoaPods/Specs.git'
source 'https://github.com/receet/POS-Add-On-PodSpecs.git'
target 'POS-Add-On-Example' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
# Pods for POS-Add-On-Example
pod 'ReceetPOSAddOn'
然后运行
pod install
入门
首先,需要导入框架。请参阅安装说明以了解如何在项目中添加框架。
import ReceetPOSAddOn
您可以通过设置 'isEnabled' 标志来打开或关闭集成
ReceetPOS.shared.isEnabled = true // to turn it on
您始终可以通过使用 'isEnabled' 标志来检查 Receet 销售点管理器的状态
示例
要发送电子收据,您需要按照以下格式准备采购订单,您可以添加任何需要的支持字段。请查看以下表格中的支持字段:1-您需要按照以下参数作为字典来准备订单详情
let orderDetails : [String:Any] = [
"externalId" : "T004-126572",
"subTotalProduct": 120.0,
"totalProduct" : 100.0,
"description" : "Purchase from branch #4",
"currency" : "USD",
"timePlaced": Date(),
"createdBy" : "Amjad",
"adjustmentDescription":"16% discount"
]
参数名称 | 类型 | 描述 | 必需 |
---|---|---|---|
externalId | String | POS生成的订单ID | 是 |
totalProduct | Double | 订单总计金额 | 是 |
totalTax | Double | 订单税额 | 否 |
totalShipping | Double | 总运费 | 否 |
totalTaxShipping | Double | 运费税额 | 否 |
subTotalProduct | Double | 小计金额(在税和折扣之前) | 是 |
totalAdjustment | Double | 应用在订单上的折扣总额 | 否 |
adjustmentDescription | String | 订单级别折扣描述(例如:10%折扣) | 否 |
description | String | 订单的简短描述,如果需要 | 否 |
currency | String | 使用的货币(USD,ILS等...),有关更多信息,请参阅支持货币部分 | 是 |
timePlaced | 日期 | 放置订单的日期和时间 | 是 |
createdBy | String | 收银员的标识符(姓名或ID) | 否 |
topTextArea | String | 位于收据顶部的自由文本区域。可以包含多个值(管道分隔,以下为示例)。每个值都会在新的一行显示 | 否 |
bottomTextArea | String | 值对将显示在收据底部。可以包含多个值(管道分隔,以下为示例)。每个值都会在新的一行显示 | 否 |
2-您需要将购买的物品作为一个字典数组来准备订单项,每个字典代表一个物品
let orderItems : [[String:Any]] = [
[
"price" : 60.0,
"quantity" : 1,
"description": "Blue Jeans",
"totalProduct" : 60.0,
"taxAmount" : 0.0,
"shipCharge" : 0.0,
"shipTaxAmount" : 0.0,
"totalAdjustment" : 0.0,
"adjustmentDescription" : ""
],
[
"price" : 30.0,
"quantity" : 2,
"description": "Black Shirt XL",
"totalProduct" : 60.0,
"taxAmount" : 0.0,
"shipCharge" : 0.0,
"shipTaxAmount" : 0.0,
"totalAdjustment" : 0.0,
"adjustmentDescription" : ""
]
]
参数名称 | 类型 | 描述 | 必需 |
---|---|---|---|
price | Double | 列表项目价格 | 是 |
quantity | Int | 列表商品的数量 | 是 |
description | String | 列表商品产品描述,将在电子收据上显示 | 是 |
totalProduct | Double | 总产品价格(价格 x 数量) | 是 |
taxAmount | Double | 税额 | 否 |
shipCharge | Double | 如果有的话,运费金额 | 否 |
shipTaxAmount | Double | 如果有的话,运费税额 | 否 |
totalAdjustment | Double | 列表商品的折扣金额 | 否 |
adjustmentDescription | String | 项目级别折扣描述(例如:10%折扣) | 否 |
itemNumber | String | 项目编号,条形码等 | 否 |
3-您需要将所有这些信息放在一个新字典中,以下格式中包含orderDetails,orderItems从上一节prepared
let order : [String:Any] = [
"media":"digital",
"languageId":1,
"order":orderDetails,
"order_items":orderItems
]
参数名称 | 类型 | 描述 | 必需 |
---|---|---|---|
media | String | 收据媒体的类型。值:数字,数字和纸张,纸张 | 是 |
languageId | Int | 使用的语言。1:英语 2:阿拉伯语 | 是 |
order对象(上文所述) | 字典 | 包含订单详情 | 是 |
billing_address对象(下文所述) | 字典 | 客户地址信息,将在收据的“开票至”部分显示 | 否 |
order_items对象(上文所述) | 项目对象字典数组 | 订单商品数组 | 是 |
4-您需要将此字典发送到收据销售点经理
ReceetPOS.shared.sendDigitalOrder(order: order)// send the digital order To Receet POS
自定义文本
topTextArea 显示在收据顶部。示例:
"topTextArea" : "Cash transaction"
bottomTextArea 显示在收据底部,在总计下方。示例:
"bottomTextArea": "Paid: $ 100 | Change: $ 60.02 | Points from this sale: 20 | Total points: 100"
账单地址对象(可选)
参数名称 | 类型 | 描述 | 必需 |
---|---|---|---|
addressType | String | U: 用户 | 是 |
memberId | String | 忠诚客户会员ID | 否 |
状态 | String | 地址状态。值:A | 是 |
isPrimary | Int | 值:1 | 是 |
address1 | String | 地址行 1 | 是 |
address2 | String | 地址行 2 | |
address3 | String | 地址行 3 | 否 |
city | String | 城市 | 是 |
state | String | 州 | 是 |
country | String | 国家 | 是 |
zipCode | String | 邮政编码 | 是 |
phone1 | String | 电话号码 1 | 是 |
phone2 | String | 电话号码 2 | 否 |
传真 | String | 传真号码 | 否 |
String | 电子邮件 | 否 |
支持货币
收据系统中支持以下货币,按照上述描述的订单字典发送所需货币的符号。
货币 | 货币符号 | 货币全称 |
---|---|---|
AFN | ؋ | 阿富汗尼 |
ALL | 列克 | 列克 |
ANG | ƒ | 荷兰安的列斯盾 |
ARS | $ | 阿根廷比索 |
AUD | $ | 澳大利亚元 |
AWG | ƒ | 阿鲁巴弗罗林 |
AZN | ₼ | 阿塞拜疆马纳特 |
BAM | KM | 可兑换马克 |
BBD | $ | 巴巴多斯元 |
BGN | лв | 保加利亚列弗 |
BMD | $ | 百慕大元 |
BND | $ | 文莱元 |
BOB | $b | 玻利维亚诺 |
BRL | R$ | 巴西雷亚尔 |
BSD | $ | 巴哈马元 |
BTC | Ƀ | 比特币 |
BWP | P | 普拉 |
BYN | Br | 白俄罗斯卢布 |
BZD | BZ$ | 伯利兹元 |
CAD | $ | 加拿大元 |
CHF | CHF | 瑞士法郎 |
CLP | $ | 智利比索 |
CNY | ¥ | 人民币元 |
COP | $ | 哥伦比亚比索 |
CRC | ₡ | 哥斯达黎加科朗 |
CUP | ₱ | 古巴比索 |
CZK | Kč | 捷克克朗(复数为koruny) |
DKK | kr | 丹麦克朗 |
DOP | RD$ | 多米尼加比索 |
EGP | £ | 埃及镑 |
EUR | € | 欧元 |
FJD | $ | 斐济元 |
FKP | £ | 福克兰群岛镑 |
GBP | £ | pound sterling |
GHS | ¢ | 加纳塞地 |
GIP | £ | 直布罗陀镑 |
GTQ | Q | 危地马拉格查尔 |
GYD | $ | 圭亚那元 |
HKD | $ | 港元 |
HNL | L | 伦皮拉 |
HRK | kn | 库纳 |
HUF | Ft | 福林 |
IDR | Rp | 卢比 |
ILS | ₪ | 新以色列谢克尔 |
INR | ₹ | 印度卢比 |
IRR | ﷼ | 伊朗里亚尔 |
ISK | kr | 冰岛克朗 |
JMD | J$ | 牙买加元 |
JPY | ¥ | 日元 |
KGS | лв | 索姆 |
KHR | ៛ | 瑞尔 |
KPW | ₩ | 朝鲜元(旧称) |
KRW | ₩ | 韩国元(旧称) |
KYD | $ | 开曼群岛元 |
KZT | лв | 坚戈 |
LAK | ₭ | 基普(旧称) |
LBP | £ | 黎巴嫩镑 |
LKR | ₨ | 斯里兰卡卢比 |
LRD | $ | 利比里亚元 |
MKD | ден | 第纳尔(旧称) |
MNT | ₮ | 图格里克 |
MUR | ₨ | 毛里求斯卢比 |
MXN | $ | 墨西哥比索 |
MYR | RM | 马来西亚林吉特 |
MZN | MT | 莫桑比克梅蒂卡尔 |
NAD | $ | 纳米比亚元 |
NGN | ₦ | 奈拉 |
NIO | C$ | 科多巴奥罗 |
NOK | kr | 挪威克朗 |
NPR | ₨ | 尼泊尔卢比 |
NZD | $ | 新西兰元 |
OMR | ﷼ | 阿曼里亚尔 |
PAB | B/. | 巴尔博亚 |
PEN | S/. | 索尔 |
PHP | ₱ | 菲律宾比索 |
PKR | ₨ | 巴基斯坦卢比 |
PLN | zł | 兹罗提 |
PYG | Gs | 瓜拉尼 |
QAR | ﷼ | 卡塔尔里亚尔 |
RON | lei | 罗马尼亚列伊 |
RSD | Дин. | 塞尔维亚第纳尔 |
RUB | ₽ | 卢布 |
SAR | ﷼ | 沙特里亚尔 |
SBD | $ | 所罗门群岛元 |
SCR | ₨ | 塞舌耳卢比 |
SEK | kr | 瑞典克朗 |
SGD | $ | 新加坡元 |
SHP | £ | 圣赫勒拿镑 |
SOS | S | 索马里先令 |
SRD | $ | 苏里南元 |
SVC | $ | 萨尔瓦多科朗 |
SYP | £ | 叙利亚镑 |
THB | ฿ | 泰铢 |
TRY | ₺ | 土耳其里拉 |
TTD | TT$ | 特立尼达和多巴哥元 |
TWD | NT$ | 新台币 |
UAH | ₴ | 格里夫纳 |
USD | $ | 美元 |
UYU | $U | 乌拉圭比索 |
UZS | лв | 乌兹别克斯坦苏姆 |
VND | ₫ | 盾 |
XCD | $ | 东加勒比元 |
YER | ﷼ | 也门里亚尔 |
ZAR | R | 兰特 |
NIS | ₪ | 以色列谢克尔 |
构建于
- Starscream -使用的WebSocket库
- ReachabilitySwift
- lottie-ios - 动画库
作者
- Amjad Khalil - 初期工作 - Receet
许可证
本工程采用MIT许可证 - 详细内容请参阅(LICENSE)文件