bangerkuwranger/magento-2-coupon-code-api

用于生成给定购物车价格规则的优惠券代码的API方法

1.0.1 2017-05-04 14:43 UTC

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将仅生成代码而不进行检查。

无论如何,一旦安装,将会有三个端点可用

  1. GET /V1/bangerkuwranger/couponcode/getCartRule/
  2. POST /V1/bangerkuwranger/couponcode/getCustIdByEmail/
  3. POST /V1/bangerkuwranger/couponcode/getCouponCode/

第三个端点是唯一真正必要的端点;它实际上是为您购物车价格规则生成代码。其他两个端点如果您想验证购物车规则ID和客户ID则很有用。所有三种方法都需要某种形式的身份验证;确保熟悉Magento API身份验证过程,以便您的逻辑包含适当的身份验证步骤。一旦处理完毕,您可以通过对getCouponCode端点发出API请求来生成代码,并将获得一个新的优惠券代码。

推荐逻辑流程

无客户组验证

  1. 对Magento API进行身份验证
  2. 从API请求购物车规则信息(getCartRule)。
  3. 验证购物车规则详细信息是否如预期。
  4. 使用ruleId创建购物车规则的新优惠券代码,并将custId设置为0。(getCouponCode)

带有客户组身份验证

  1. 对Magento API进行身份验证
  2. 从API请求购物车规则信息(getCartRule)。
  3. 验证购物车规则详细信息是否如预期。
  4. 使用getCustIdByEmail端点获取custId并验证电子邮件地址是否存在。
  5. 如果客户存在,继续。如果不存在,您可以如果对您的流程有意义,则使用Magento内置的API方法创建客户。
  6. 使用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
}