mageworx / module-multifees-graphql
MageWorx 多费用 GraphQl
Requires
- mageworx/module-multifees: >= 2.4.0
README
为 MageWorx Magento 2 多费用 扩展插件提供的 GraphQL API 模块。
安装
1) 使用 composer(从 Packagist)安装
- 执行以下命令:
composer require mageworx/module-multifees-graphql
2) 复制粘贴方法
- 下载此模块并将其上传到
app/code/MageWorx/MultiFeesGraphQl
目录 (如果不存在,请先创建 "MultiFeesGraphQl" 目录)
如何使用
将购物车费用添加到购物车
addMwCartFeesToCart 变异用于将购物车费用添加到购物车。
语法
addMwCartFeesToCart(input: AddMwFeesToCartInput): AddMwFeesToCartOutput
AddMwFeesToCartInput 对象可能包含以下属性
cart_id: String! @doc(description:"The unique ID that identifies the customer's cart")
fee_data: [MwFeeDataInput!]!
The MwFeeDataInput 对象可能包含以下属性
fee_id: Int! @doc(description: "Fee ID")
fee_option_ids: [Int!]! @doc(description: "An array of fee option IDs")
message: String
date: String
AddMwFeesToCartOutput 对象包含购物车对象。
请求
mutation {
addMwCartFeesToCart(
input: {
cart_id: "yoSUj6X411aAMMqALERGxnYQsY73iQvM"
fee_data: [
{
fee_id: 1
fee_option_ids: [1,2]
},
{
fee_id: 5
fee_option_ids: [6],
message: "tt-test mes",
date: "06/24/2023"
}
]
}
) {
cart {
mw_applied_quote_fees {
id
title
type
customer_message
date
price {
value
currency
}
tax {
value
currency
}
options {
id
title
price {
value
currency
}
tax {
value
currency
}
}
}
}
}
}
响应
{
"data": {
"addMwCartFeesToCart": {
"cart": {
"mw_applied_quote_fees": [
{
"id": 1,
"title": "Cart Fee",
"type": "CART",
"customer_message": "",
"date": "",
"price": {
"value": 90,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
},
"options": [
{
"id": 1,
"title": "option +10",
"price": {
"value": 30,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
}
},
{
"id": 2,
"title": "option +20",
"price": {
"value": 60,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
}
}
]
},
{
"id": 5,
"title": "Cart Fee 2",
"type": "CART",
"customer_message": "tt-test mes",
"date": "06/24/2023",
"price": {
"value": 10,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
},
"options": [
{
"id": 6,
"title": "op1",
"price": {
"value": 10,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
}
}
]
}
]
}
}
}
}
将运费添加到购物车
addMwShippingFeesToCart 变异用于将运费添加到购物车。
语法
addMwShippingFeesToCart(input: AddMwFeesToCartInput): AddMwFeesToCartOutput
请求与 addMwCartFeesToCart 变异类似。
将支付费用添加到购物车。
addMwPaymentFeesToCart 变异用于将支付费用添加到购物车。
语法
addMwPaymentFeesToCart(input: AddMwFeesToCartInput): AddMwFeesToCartOutput
请求与 addMwCartFeesToCart 变异类似。
将产品费用添加到购物车
addMwProductFeesToCart 变异用于将产品费用添加到购物车。
语法
addMwProductFeesToCart(input: AddMwProductFeesToCartInput): AddMwFeesToCartOutput
AddMwProductFeesToCartInput 对象可能包含以下属性
cart_id: String! @doc(description:"The unique ID that identifies the customer's cart")
fee_data: [MwFeeDataInput!]!
quote_item_id: Int! @doc(description: "Quote Item ID")
请求
mutation {
addMwProductFeesToCart(
input: {
cart_id: "yoSUj6X411aAMMqALERGxnYQsY73iQvM"
quote_item_id: 25
fee_data: [
{
fee_id: 6
fee_option_ids: [8]
}
]
}
) {
cart {
mw_applied_product_fees {
quote_item_id
fees {
id
title
type
customer_message
date
price {
value
currency
}
tax {
value
currency
}
options {
id
title
price {
value
currency
}
tax {
value
currency
}
}
}
}
}
}
}
响应
{
"data": {
"addMwProductFeesToCart": {
"cart": {
"mw_applied_product_fees": [
{
"quote_item_id": 25,
"fees": [
{
"id": 6,
"title": "Product Fee 2",
"type": "PRODUCT",
"customer_message": "",
"date": "",
"price": {
"value": 1,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
},
"options": [
{
"id": 8,
"title": "op1",
"price": {
"value": 1,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
}
}
]
}
]
}
]
}
}
}
}
购物车对象中的附加数据
为购物车添加以下属性
mw_applied_quote_fees: [MwAppliedFee] @doc(description: "Applied Quote Fees")
mw_applied_product_fees: [MwAppliedProductFee] @doc(description: "Applied Product Fees")
mw_cart_fees: [MwFee] @doc(description: "Cart Fees")
mw_shipping_fees: [MwFee] @doc(description: "Shipping Fees")
mw_payment_fees: [MwFee] @doc(description: "Payment Fees")
mw_product_fees: [MwProductFee] @doc(description: "Product Fees")
MwAppliedFee 属性
id: Int @doc(description: "Fee ID")
title: String @doc(description: "Fee Title")
type: MwFeeTypeEnum @doc(description: "Either CART, SHIPPING, PAYMENT or PRODUCT")
customer_message: String @doc(description: "Customer Message")
date: String @doc(description: "Date")
price: Money
tax: Money
options: [MwAppliedFeeOption]
MwAppliedFeeOption 属性
id: Int @doc(description: "Option ID")
title: String @doc(description: "Option Title")
price: Money
tax: Money
MwAppliedProductFee 属性
quote_item_id: Int @doc(description: "Quote Item ID")
fees: [MwAppliedFee] @doc(description: "Product Fees")
MwFee 属性
id: Int @doc(description: "Fee ID")
title: String @doc(description: "Fee Title")
description: String @doc(description: "Fee Description")
input_type: String @doc(description: "Fee Input Type")
is_required: Boolean @doc(description: "Indicates whether the fee is required")
is_enabled_customer_message: Boolean @doc(description: "Indicates whether the customer message field is enabled")
customer_message_title: String @doc(description: "Customer Message Field Title")
is_enabled_date_field: Boolean @doc(description: "Indicates whether the date field is enabled")
date_field_title: String @doc(description: "Date Field Title")
sort_order: Int @doc(description: "Fee Sort Order")
options: [MwFeeOption] @doc(description: "An array of fee options")
MwFeeOption 属性
id: Int @doc(description: "Option ID")
field_label: String @doc(description: "Option Field Label")
is_default: Boolean @doc(description: "Indicates whether the given option is the default option")
position: Int @doc(description: "Option Position")
title: String @doc(description: "Option Title")
price_type: String @doc(description: "Option Price Type")
price: Float @doc(description: "Option Price")
MwProductFee 属性
quote_item_id: Int @doc(description: "Quote Item ID")
fees: [MwFee] @doc(description: "Product Fees")
请求
{
customerCart {
items {
id
product {
name
sku
}
quantity
}
mw_applied_quote_fees {
id
title
type
customer_message
date
price {
value
currency
}
tax {
value
currency
}
options {
id
title
price {
value
currency
}
tax {
value
currency
}
}
}
mw_applied_product_fees {
quote_item_id
fees {
id
title
type
customer_message
date
price {
value
currency
}
tax {
value
currency
}
options {
id
title
price {
value
currency
}
tax {
value
currency
}
}
}
}
mw_cart_fees {
id
title
description
input_type
is_required
is_enabled_customer_message
customer_message_title
is_enabled_date_field
date_field_title
sort_order
options {
id
field_label
is_default
position
title
price_type
price
}
}
mw_shipping_fees {
id
title
description
input_type
is_required
is_enabled_customer_message
customer_message_title
is_enabled_date_field
date_field_title
sort_order
options {
id
field_label
is_default
position
title
price_type
price
}
}
mw_payment_fees {
id
title
description
input_type
is_required
is_enabled_customer_message
customer_message_title
is_enabled_date_field
date_field_title
sort_order
options {
id
field_label
is_default
position
title
price_type
price
}
}
mw_product_fees {
quote_item_id
fees {
id
title
description
input_type
is_required
is_enabled_customer_message
customer_message_title
is_enabled_date_field
date_field_title
sort_order
options {
id
field_label
is_default
position
title
price_type
price
}
}
}
}
}
响应
{
"data": {
"customerCart": {
"items": [
{
"id": "25",
"product": {
"name": "Fusion Backpack",
"sku": "24-MB02"
},
"quantity": 2
},
{
"id": "34",
"product": {
"name": "Push It Messenger Bag",
"sku": "24-WB04"
},
"quantity": 1
}
],
"mw_applied_quote_fees": [
{
"id": 3,
"title": "Shipping Fee",
"type": "SHIPPING",
"customer_message": "",
"date": "",
"price": {
"value": 10,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
},
"options": [
{
"id": 4,
"title": "option +10",
"price": {
"value": 10,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
}
}
]
},
{
"id": 4,
"title": "Payment Fee",
"type": "PAYMENT",
"customer_message": "",
"date": "",
"price": {
"value": 30,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
},
"options": [
{
"id": 5,
"title": "option +10",
"price": {
"value": 30,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
}
}
]
},
{
"id": 5,
"title": "Cart Fee 2",
"type": "CART",
"customer_message": "",
"date": "",
"price": {
"value": 19.56,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
},
"options": [
{
"id": 7,
"title": "op2",
"price": {
"value": 19.56,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
}
}
]
},
{
"id": 1,
"title": "Cart Fee",
"type": "CART",
"customer_message": "",
"date": "",
"price": {
"value": 90,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
},
"options": [
{
"id": 1,
"title": "option +10",
"price": {
"value": 30,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
}
},
{
"id": 2,
"title": "option +20",
"price": {
"value": 60,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
}
}
]
}
],
"mw_applied_product_fees": [
{
"quote_item_id": 25,
"fees": [
{
"id": 2,
"title": "Product Fee",
"type": "PRODUCT",
"customer_message": "",
"date": "",
"price": {
"value": 12,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
},
"options": [
{
"id": 3,
"title": "option +12",
"price": {
"value": 12,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
}
}
]
}
]
},
{
"quote_item_id": 34,
"fees": [
{
"id": 2,
"title": "Product Fee",
"type": "PRODUCT",
"customer_message": "",
"date": "",
"price": {
"value": 12,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
},
"options": [
{
"id": 3,
"title": "option +12",
"price": {
"value": 12,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
}
}
]
}
]
}
],
"mw_cart_fees": [
{
"id": 1,
"title": "Cart Fee",
"description": "Cart Fee Description",
"input_type": "checkbox",
"is_required": false,
"is_enabled_customer_message": false,
"customer_message_title": "",
"is_enabled_date_field": false,
"date_field_title": "",
"sort_order": 0,
"options": [
{
"id": 1,
"field_label": "option +10-$30.00",
"is_default": true,
"position": 10,
"title": "option +10",
"price_type": "fixed",
"price": 10
},
{
"id": 2,
"field_label": "option +20-$60.00",
"is_default": true,
"position": 20,
"title": "option +20",
"price_type": "fixed",
"price": 20
}
]
},
{
"id": 5,
"title": "Cart Fee 2",
"description": "Description Cart Fee 2",
"input_type": "radio",
"is_required": true,
"is_enabled_customer_message": true,
"customer_message_title": "Customer Message Title 2",
"is_enabled_date_field": true,
"date_field_title": "Date Field Title 2",
"sort_order": 10,
"options": [
{
"id": 6,
"field_label": "op1-$10.00",
"is_default": false,
"position": 10,
"title": "op1",
"price_type": "fixed",
"price": 10
},
{
"id": 7,
"field_label": "op2-12.00%",
"is_default": true,
"position": 12,
"title": "op2",
"price_type": "percent",
"price": 12
}
]
}
],
"mw_shipping_fees": [
{
"id": 3,
"title": "Shipping Fee",
"description": "Shipping Fee Description",
"input_type": "radio",
"is_required": false,
"is_enabled_customer_message": false,
"customer_message_title": "",
"is_enabled_date_field": false,
"date_field_title": "",
"sort_order": 0,
"options": [
{
"id": 4,
"field_label": "option +10-$10.00",
"is_default": false,
"position": 10,
"title": "option +10",
"price_type": "fixed",
"price": 10
}
]
}
],
"mw_payment_fees": [
{
"id": 4,
"title": "Payment Fee",
"description": "Payment Fee Description",
"input_type": "checkbox",
"is_required": false,
"is_enabled_customer_message": false,
"customer_message_title": "",
"is_enabled_date_field": false,
"date_field_title": "",
"sort_order": 0,
"options": [
{
"id": 5,
"field_label": "option +10-$30.00",
"is_default": true,
"position": 10,
"title": "option +10",
"price_type": "fixed",
"price": 10
}
]
}
],
"mw_product_fees": [
{
"quote_item_id": 25,
"fees": [
{
"id": 2,
"title": "Product Fee",
"description": "Product Fee Description",
"input_type": "hidden",
"is_required": true,
"is_enabled_customer_message": true,
"customer_message_title": "Customer Message Title",
"is_enabled_date_field": true,
"date_field_title": "Date Field Title",
"sort_order": 0,
"options": [
{
"id": 3,
"field_label": "option +12-$12.00",
"is_default": true,
"position": 12,
"title": "option +12",
"price_type": "fixed",
"price": 12
}
]
},
{
"id": 6,
"title": "Name for Default Store View",
"description": "Description for Default Store View",
"input_type": "drop_down",
"is_required": false,
"is_enabled_customer_message": false,
"customer_message_title": "Customer Message Title for Default Store View",
"is_enabled_date_field": false,
"date_field_title": "Date Field Title for Default Store View",
"sort_order": 0,
"options": [
{
"id": 8,
"field_label": "op1-$1.00",
"is_default": false,
"position": 1,
"title": "op1",
"price_type": "fixed",
"price": 1
},
{
"id": 9,
"field_label": "op2-$2.00",
"is_default": false,
"position": 2,
"title": "op2",
"price_type": "fixed",
"price": 2
}
]
}
]
},
{
"quote_item_id": 34,
"fees": [
{
"id": 2,
"title": "Product Fee",
"description": "Product Fee Description",
"input_type": "hidden",
"is_required": true,
"is_enabled_customer_message": true,
"customer_message_title": "Customer Message Title",
"is_enabled_date_field": true,
"date_field_title": "Date Field Title",
"sort_order": 0,
"options": [
{
"id": 3,
"field_label": "option +12-$12.00",
"is_default": true,
"position": 12,
"title": "option +12",
"price_type": "fixed",
"price": 12
}
]
},
{
"id": 6,
"title": "Name for Default Store View",
"description": "Description for Default Store View",
"input_type": "drop_down",
"is_required": false,
"is_enabled_customer_message": false,
"customer_message_title": "Customer Message Title for Default Store View",
"is_enabled_date_field": false,
"date_field_title": "Date Field Title for Default Store View",
"sort_order": 0,
"options": [
{
"id": 8,
"field_label": "op1-$1.00",
"is_default": false,
"position": 1,
"title": "op1",
"price_type": "fixed",
"price": 1
},
{
"id": 9,
"field_label": "op2-$2.00",
"is_default": false,
"position": 2,
"title": "op2",
"price_type": "fixed",
"price": 2
}
]
}
]
}
]
}
}
}
ProductInterface 中的附加数据
为 ProductInterface 添加以下属性
mw_product_hidden_fees: [MwFee] @doc(description: "Product Hidden Fees")
请求
{
products(filter: {sku: {eq: "24-MB02"}}) {
items {
__typename
name
sku
mw_product_hidden_fees {
id
title
description
sort_order
options {
id
field_label
position
title
price_type
price
}
}
}
}
}
响应
{
"data": {
"products": {
"items": [
{
"__typename": "SimpleProduct",
"name": "Fusion Backpack",
"sku": "24-MB02",
"mw_product_hidden_fees": [
{
"id": 2,
"title": "Product Fee",
"description": "Product Fee Description",
"sort_order": 0,
"options": [
{
"id": 3,
"field_label": "option +12 - $12.00",
"position": 1,
"title": "option +12",
"price_type": "fixed",
"price": 12
}
]
},
{
"id": 8,
"title": "prod fee 3 hidden",
"description": "",
"sort_order": 0,
"options": [
{
"id": 12,
"field_label": "op1 - $3.00",
"position": 1,
"title": "op1",
"price_type": "fixed",
"price": 3
}
]
},
{
"id": 7,
"title": "Product Fee hidden 2",
"description": "Description for Product Fee hidden 2",
"sort_order": 10,
"options": [
{
"id": 13,
"field_label": "op1 - $12.00",
"position": 1,
"title": "op1",
"price_type": "fixed",
"price": 12
},
{
"id": 11,
"field_label": "op2 - 10.00%",
"position": 2,
"title": "op2",
"price_type": "percent",
"price": 10
}
]
}
]
}
]
}
}
}
CartItemInterface 中的附加数据
为 CartItemInterface 添加以下属性
mw_applied_product_fees: [MwAppliedFee] @doc(description: "Applied Product Fees")
请求
{
cart(cart_id: "RCBVPrmgjDnNYin5RLhXxvHOp3sYTZkv") {
items {
id
product {
name
sku
}
quantity
mw_applied_product_fees {
id
title
type
customer_message
date
price {
value
currency
}
tax {
value
currency
}
options {
id
title
price {
value
currency
}
tax {
value
currency
}
}
}
}
}
}
响应
{
"data": {
"cart": {
"items": [
{
"id": "47",
"product": {
"name": "Fusion Backpack",
"sku": "24-MB02"
},
"quantity": 1,
"mw_applied_product_fees": [
{
"id": 2,
"title": "Product Fee",
"type": "PRODUCT",
"customer_message": "",
"date": "",
"price": {
"value": 12,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
},
"options": [
{
"id": 3,
"title": "option +12",
"price": {
"value": 12,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
}
}
]
},
{
"id": 8,
"title": "prod fee 3 hidden",
"type": "PRODUCT",
"customer_message": "",
"date": "",
"price": {
"value": 3,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
},
"options": [
{
"id": 12,
"title": "op1",
"price": {
"value": 3,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
}
}
]
},
{
"id": 7,
"title": "Product Fee hidden 2",
"type": "PRODUCT",
"customer_message": "",
"date": "",
"price": {
"value": 17.9,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
},
"options": [
{
"id": 13,
"title": "op1",
"price": {
"value": 12,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
}
},
{
"id": 11,
"title": "op2",
"price": {
"value": 5.9,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
}
}
]
}
]
},
{
"id": "48",
"product": {
"name": "Radiant Tee",
"sku": "WS12"
},
"quantity": 1,
"mw_applied_product_fees": [
{
"id": 2,
"title": "Product Fee",
"type": "PRODUCT",
"customer_message": "",
"date": "",
"price": {
"value": 12,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
},
"options": [
{
"id": 3,
"title": "option +12",
"price": {
"value": 12,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
}
}
]
},
{
"id": 8,
"title": "prod fee 3 hidden",
"type": "PRODUCT",
"customer_message": "",
"date": "",
"price": {
"value": 3,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
},
"options": [
{
"id": 12,
"title": "op1",
"price": {
"value": 3,
"currency": "USD"
},
"tax": {
"value": 0,
"currency": "USD"
}
}
]
}
]
}
]
}
}
}
StoreConfig 对象中的附加数据
为 StoreConfig 添加以下属性
mw_multi_fees_is_enabled: Boolean @doc(description: "Indicates whether the MultiFees functionality is enabled")
mw_display_product_fee_on_product_page_is_enabled: Boolean @doc(description: "Indicates whether the product fee display is enabled on the product page")
mw_fees_block_label_on_product_page: String @doc(description: "The label for the fees block that is displayed on the product page")
mw_product_fees_position: MwHiddenFeePositionEnum @doc(description: "Either BELOW_ADD_TO_CART or ABOVE_ADD_TO_CART")
mw_apply_fee_on_click_is_enabled: Boolean @doc(description: "Indicates whether to apply fee on click")
mw_multi_fees_tax_calculation_type: MwFeeTaxCalculationTypeEnum @doc(description: "Either EXCLUDING_TAX or INCLUDING_TAX")
mw_prices_type_in_additional_fees_block: MwFeeAmountTypeEnum @doc(description: "Either EXCLUDING_TAX, INCLUDING_TAX or INCLUDING_AND_EXCLUDING_TAX")
mw_additional_fees_amount_type_in_cart_total: MwFeeAmountTypeEnum @doc(description: "Either EXCLUDING_TAX, INCLUDING_TAX or INCLUDING_AND_EXCLUDING_TAX")
请求
{
storeConfig {
store_code
store_name
mw_multi_fees_is_enabled
mw_display_product_fee_on_product_page_is_enabled
mw_fees_block_label_on_product_page
mw_product_fees_position
mw_apply_fee_on_click_is_enabled
mw_multi_fees_tax_calculation_type
mw_prices_type_in_additional_fees_block
mw_additional_fees_amount_type_in_cart_total
}
}
响应
{
"data": {
"storeConfig": {
"store_code": "default",
"store_name": "Default Store View",
"mw_multi_fees_is_enabled": true,
"mw_display_product_fee_on_product_page_is_enabled": true,
"mw_fees_block_label_on_product_page": "Additional Product Fees",
"mw_product_fees_position": "BELOW_ADD_TO_CART",
"mw_apply_fee_on_click_is_enabled": false,
"mw_multi_fees_tax_calculation_type": "EXCLUDING_TAX",
"mw_prices_type_in_additional_fees_block": "INCLUDING_AND_EXCLUDING_TAX",
"mw_additional_fees_amount_type_in_cart_total": "INCLUDING_AND_EXCLUDING_TAX"
}
}
}