shopware 6:如何在更新 productrepository 时获取价格规则 ID

shopware 6: how can I get a price rule ID at updating productrepository

我对通过 Shopware 6 ProductRepository 以编程方式更新产品有疑问。我将更新我的产品的行动价格。 但是规则 ID 是必填字段。但是我怎样才能得到这个 Rule ID 字段?

    $price = [[
        'linked' => false,
        'net' => (float)$netPrice,
        'gross' => (float)$grossPrice,
        'currencyId' => Defaults::CURRENCY,

    ]];

    $prices = [
        [
            'quantityStart' => 1,
            'ruleId' => '???', // How can I get this???
            'quantityEnd' => 10,
            'price' => [
                [
                    'currencyId' => Defaults::CURRENCY,
                    'gross' => $actionGrossPrice,
                    'net' => $actionNetPrice,,
                    'linked' => false
                ]
            ]
        ]
    ];

那么我怎样才能得到这个规则 ID 字段呢?

很遗憾,您没有 post 完整代码,尤其是调用更新函数的部分。我假设您正在尝试设置产品的“高级定价”。

在以编程方式执行某些操作之前,最好检查一下它是如何手动完成的。

在管理面板(Shopware v6.4.3.0)中,创建高级价格规则也需要一个规则id:

这是指在设置 -> 商店 -> 规则生成器之前创建的规则。

有些规则是默认创建的,例如“所有客户”:

您可以在单击该规则时从 URL 中选择规则 ID,并在您的代码中使用它。

如果你为一个特定的商店写一个插件,这可能没问题。但其他店铺的规则会有所不同。

如果您正在为更广泛的受众编写插件,我建议制定要应用的规则configurable in the plugin configuration

您当然也可以通过编程方式搜索“所有客户”规则 - 但它可能已被店主删除。