bangerkuwranger / magento-2-coupon-code-api
用于生成给定购物车价格规则的优惠券代码的API方法
Requires
- php: ~5.5.0|~5.6.0|~7.0.0
This package is auto-updated.
Last update: 2024-09-05 02:39:01 UTC
README
此模块添加了三个API端点,这些端点提供从外部源生成现有Magento 2购物车价格规则的优惠券代码的方法。它已经与REST API进行了测试,尽管它应该同样适用于SOAP/XML API。使用文档仅适用于REST使用。
为什么?
虽然Magento 2提供了一种生成促销规则优惠券代码列表的内置方法,但为了与其他系统(如营销电子邮件平台、竞赛系统或SalesForce等CRM系统)一起使用,您必须生成一定数量的优惠券代码,然后通过CSV导出。对于按需生成,更有意义的是在需要时生成代码。
安装
安装通过composer提供。包名为bangerkuwranger/magento-2-coupon-code-api。只需在您的Magento根目录中运行以下命令:composer require bangerkuwranger/magento-2-coupon-code-api
php bin/magento module:enable Bangerkuwranger_Couponcodeapi
php bin/magento setup:upgrade
使用
首先熟悉一下 Magento API 系统。
为了正确使用端点,您需要创建一个将优惠券字段设置为自动的 购物车价格规则。其他设置由您决定。确保在设置优惠券生成逻辑之前,您的规则在您的系统上正常工作。
此模块允许您通过在生成新代码时包含客户ID来检查确保Magento客户实际上可以使用生成的代码。Magento将看到客户属于哪个客户组,然后验证该组是否允许在您的购物车价格规则中。这是可选的,但如果您为特定客户生成代码,则非常有用。将客户ID参数设置为0将仅生成代码而不进行检查。
无论如何,一旦安装,将会有三个端点可用
- GET /V1/bangerkuwranger/couponcode/getCartRule/
- POST /V1/bangerkuwranger/couponcode/getCustIdByEmail/
- POST /V1/bangerkuwranger/couponcode/getCouponCode/
第三个端点是唯一真正必要的端点;它实际上是为您购物车价格规则生成代码。其他两个端点如果您想验证购物车规则ID和客户ID则很有用。所有三种方法都需要某种形式的身份验证;确保熟悉Magento API身份验证过程,以便您的逻辑包含适当的身份验证步骤。一旦处理完毕,您可以通过对getCouponCode端点发出API请求来生成代码,并将获得一个新的优惠券代码。
推荐逻辑流程
无客户组验证
- 对Magento API进行身份验证
- 从API请求购物车规则信息(getCartRule)。
- 验证购物车规则详细信息是否如预期。
- 使用ruleId创建购物车规则的新优惠券代码,并将custId设置为0。(getCouponCode)
带有客户组身份验证
- 对Magento API进行身份验证
- 从API请求购物车规则信息(getCartRule)。
- 验证购物车规则详细信息是否如预期。
- 使用getCustIdByEmail端点获取custId并验证电子邮件地址是否存在。
- 如果客户存在,继续。如果不存在,您可以如果对您的流程有意义,则使用Magento内置的API方法创建客户。
- 使用ruleId和custId创建购物车规则的新优惠券代码(getCouponCode)
端点文档
/bangerkuwranger/couponcode/getCartRule/
描述
给定一个购物规则ID,如果规则存在,此方法返回购物规则的值数组;如果规则不存在或API事务出现其他错误,则返回错误。
示例
curl -X GET "https://magento.host/index.php/rest/V1//bangerkuwranger/couponcode/getCartRule/?ruleId=20" -H “Content-Type: application/json” -H "Authorization: Bearer vbnf3hjklp5iuytre"
方法
GET
请求 查询字符串 参数
int $ruleId Magento购物折扣规则的唯一标识符
成功响应
格式
[
[0] (string): name,
[1] (string): description,
[2] (string): fromDate,
[3] (string): toDate,
[4] (int): usesPerCust,
[5] (int): usesPerCoupon,
[6] (bool): isActive,
[7] (array):
groupIds [
(string) groupId,
...additional groupIds...
]
]
HTTP 400响应
原因
无效请求
格式
error-response {
message (string): Error message ,
errors (error-errors, optional),
code (integer, optional): Error code ,
parameters (error-parameters, optional),
trace (string, optional): Stack trace
}
error-errors [
error-errors-item
]
error-parameters [
error-parameters-item
]
error-errors-item {
message (string, optional): Error message ,
parameters (error-parameters, optional)
}
error-parameters-item {
resources (string, optional): ACL resource ,
fieldName (string, optional): Missing or invalid field name ,
fieldValue (string, optional): Incorrect field value
}
HTTP 401响应
原因
未授权/无效令牌
格式
error-response {
message (string): Error message ,
errors (error-errors, optional),
code (integer, optional): Error code ,
parameters (error-parameters, optional),
trace (string, optional): Stack trace
}
error-errors [
error-errors-item
]
error-parameters [
error-parameters-item
]
error-errors-item {
message (string, optional): Error message ,
parameters (error-parameters, optional)
}
error-parameters-item {
resources (string, optional): ACL resource ,
fieldName (string, optional): Missing or invalid field name ,
fieldValue (string, optional): Incorrect field value
}
HTTP 500响应
原因
服务器错误/本地异常
格式
error-response {
message (string): Error message ,
errors (error-errors, optional),
code (integer, optional): Error code ,
parameters (error-parameters, optional),
trace (string, optional): Stack trace
}
error-errors [
error-errors-item
]
error-parameters [
error-parameters-item
]
error-errors-item {
message (string, optional): Error message ,
parameters (error-parameters, optional)
}
error-parameters-item {
resources (string, optional): ACL resource ,
fieldName (string, optional): Missing or invalid field name ,
fieldValue (string, optional): Incorrect field value
}
/bangerkuwranger/couponcode/getCustIdByEmail/
描述
给定一个电子邮件地址,此方法返回一个唯一的Magento客户标识符;如果不存在或API事务出现错误,则返回错误。
示例
curl -X POST "https://magento.host/index.php/rest/V1//bangerkuwranger/couponcode/getCustIdByEmail/" -H “Content-Type: application/json” -H "Authorization: Bearer vbnf3hjklp5iuytre" -d '{"email":"customer1@example.com"}'
方法
POST
请求 正文 参数
string $email 搜索客户的电子邮件地址
成功响应
格式
(string) “custId”
HTTP 400响应
原因
无效请求
格式
error-response {
message (string): Error message ,
errors (error-errors, optional),
code (integer, optional): Error code ,
parameters (error-parameters, optional),
trace (string, optional): Stack trace
}
error-errors [
error-errors-item
]
error-parameters [
error-parameters-item
]
error-errors-item {
message (string, optional): Error message ,
parameters (error-parameters, optional)
}
error-parameters-item {
resources (string, optional): ACL resource ,
fieldName (string, optional): Missing or invalid field name ,
fieldValue (string, optional): Incorrect field value
}
HTTP 401响应
原因
未授权/无效令牌
格式
error-response {
message (string): Error message ,
errors (error-errors, optional),
code (integer, optional): Error code ,
parameters (error-parameters, optional),
trace (string, optional): Stack trace
}
error-errors [
error-errors-item
]
error-parameters [
error-parameters-item
]
error-errors-item {
message (string, optional): Error message ,
parameters (error-parameters, optional)
}
error-parameters-item {
resources (string, optional): ACL resource ,
fieldName (string, optional): Missing or invalid field name ,
fieldValue (string, optional): Incorrect field value
}
HTTP 500响应
原因
服务器错误/本地异常
格式
error-response {
message (string): Error message ,
errors (error-errors, optional),
code (integer, optional): Error code ,
parameters (error-parameters, optional),
trace (string, optional): Stack trace
}
error-errors [
error-errors-item
]
error-parameters [
error-parameters-item
]
error-errors-item {
message (string, optional): Error message ,
parameters (error-parameters, optional)
}
error-parameters-item {
resources (string, optional): ACL resource ,
fieldName (string, optional): Missing or invalid field name ,
fieldValue (string, optional): Incorrect field value
}
/bangerkuwranger/couponcode/getCouponCode/
描述
给定购物规则ID和客户ID(如果未使用客户ID,请使用数字零),此方法返回购物规则的唯一优惠券代码;如果不存在或API事务出现错误,则返回错误。如果使用客户ID,此方法将检查客户是否属于可以使用优惠券代码的组,如果客户未授权,则返回错误。
示例
curl -X POST "https://magento.host/index.php/rest/V1//bangerkuwranger/couponcode/getCouponCode/" -H “Content-Type: application/json” -H "Authorization: Bearer vbnf3hjklp5iuytre" -d '{"ruleId":31,”custId”:1055}'
方法
POST
请求 正文 参数
int $ruleId Magento购物折扣规则的唯一标识符
int $custId Magento客户的唯一标识符
成功响应
格式
(string) “couponCode”
HTTP 400响应
原因
无效请求
格式
error-response {
message (string): Error message ,
errors (error-errors, optional),
code (integer, optional): Error code ,
parameters (error-parameters, optional),
trace (string, optional): Stack trace
}
error-errors [
error-errors-item
]
error-parameters [
error-parameters-item
]
error-errors-item {
message (string, optional): Error message ,
parameters (error-parameters, optional)
}
error-parameters-item {
resources (string, optional): ACL resource ,
fieldName (string, optional): Missing or invalid field name ,
fieldValue (string, optional): Incorrect field value
}
HTTP 401响应
原因
未授权/无效令牌
格式
error-response {
message (string): Error message ,
errors (error-errors, optional),
code (integer, optional): Error code ,
parameters (error-parameters, optional),
trace (string, optional): Stack trace
}
error-errors [
error-errors-item
]
error-parameters [
error-parameters-item
]
error-errors-item {
message (string, optional): Error message ,
parameters (error-parameters, optional)
}
error-parameters-item {
resources (string, optional): ACL resource ,
fieldName (string, optional): Missing or invalid field name ,
fieldValue (string, optional): Incorrect field value
}
HTTP 500响应
原因
服务器错误/本地异常
格式
error-response {
message (string): Error message ,
errors (error-errors, optional),
code (integer, optional): Error code ,
parameters (error-parameters, optional),
trace (string, optional): Stack trace
}
error-errors [
error-errors-item
]
error-parameters [
error-parameters-item
]
error-errors-item {
message (string, optional): Error message ,
parameters (error-parameters, optional)
}
error-parameters-item {
resources (string, optional): ACL resource ,
fieldName (string, optional): Missing or invalid field name ,
fieldValue (string, optional): Incorrect field value
}