我目前已经通过post方法为shopify添加了价格规则。
const title = body.get("title");
const price_rule = new admin.rest.resources.PriceRule({session: session});
price_rule.title = title;
price_rule.value_type = "fixed_amount";
price_rule.value = "-10";
price_rule.customer_selection = "all";
price_rule.target_type ="line_item";
price_rule.target_selection = "entitled";
price_rule.allocation_method = "each";
price_rule.starts_at = "2018-03-22T00:00:00-00:00";
price_rule.entitled_product_ids = [
6952008155224
];
price_rule.prerequisite_quantity_range = {
"greater_than_or_equal_to": 2,
}
price_rule.allocation_limit = 3;
await price_rule.save({
update: true,
});
我的期望是,当我添加产品 6952008155224 且数量大于或等于 2 时,每项将扣除 10。
这意味着如果乘积为 30,则为 -10,并为每个乘积提供 20。
但是,我在购物车或结帐中没有看到任何有关折扣的信息。
该帖子成功但未执行。
知道我是否遗漏了什么吗?
如果没有与折扣代码明确关联,Shopify 的价格规则不会自动应用于购物车或结帐。价格规则本身定义了折扣的逻辑,但需要与折扣代码绑定才能生效。
因此,您需要创建与您创建的价格规则关联的折扣代码。
const discount_code = new admin.rest.resources.DiscountCode({session: session});
discount_code.code = "DISCOUNT10";
discount_code.price_rule_id = price_rule.id;
await discount_code.save();
对于自动折扣,Shopify 的 REST API 并不直接允许通过价格规则进行自动折扣。您需要通过 Shopify 管理员配置自动折扣。
顺便说一下,通过查看您的代码,折扣类型似乎是
Buy X Get Y
,但我不确定这个价格规则是否有效。您可能还需要定义 prerequisite_product_ids
。
由于您的期望是在添加数量大于或等于 2 的产品时获得
6952008155224
产品的 -$10 折扣,因此您可以将 prerequisite_product_ids
设置为与 entitled_product_ids
相同,如下所示。
price_rule.prerequisite_product_ids = [
6952008155224
];
price_rule.entitled_product_ids = [
6952008155224
];