【发布时间】:2014-01-01 17:41:37
【问题描述】:
$arrProducts = array(
array(
"sku" => "sku1",
"qty" => 1,
"options" => array(
99 => '.50' // 99 is the price attribute id, I want to set this sku to $0.50
)
),
array(
"sku" => "sku2",
"quantity" => 1
)
);
$resultCartProductAdd = $client->call($session, "cart_product.add", array($shoppingCartId, $arrProducts));
在 sku1 的选项数组中,我如何设置要添加到购物车并计算结帐总额的价格?
以上选项不会改变价格。 sku 的原价仍会添加到购物车中,而不是 0.50 美元。看着How do I create a product with additional attributes in Magento via Soap/Java我还是没看懂。
我在 Magento EE 1.13 上使用 SOAP V1 调用
【问题讨论】:
-
查看文档选项值用于产品选项,所以我认为这将用于产品的自定义选项,而不是价格等属性。我的猜测是,通过 API 添加到购物车时,magento 将始终使用配置的产品价格。为什么它必须与正常的产品价格不同?您可能需要使用客户组或分层定价来实现这一点,或者扩展 API 以便它执行您想要的操作(但由于 Magento 进行价格计算的方式,我认为这并不那么简单),或者可能使用凭证 API 调用以将优惠券添加到报价单中。
-
@AshleySwatton 您在文档中的哪个位置看到选项值仅适用于自定义产品选项?我想这个特殊的api调用可以临时设置客户群,下单后再设置回来,但是好像有点草率。我将不得不研究等级定价。不确定那个。我真的很想即时定价。
-
它没有明确说自定义选项,但确实说“option_id => 内容形式的数组(可选)”。如果是产品属性,它可能会提到attribute_id。表 catalog_product_option 也有 option_id 作为主键,这些表引用自定义产品选项。更多的是明智的猜测。对其进行测试,为您的产品添加自定义选项并查看。即使在管理员中添加到购物车时也无法覆盖产品价格。您可以扩展 api 并将价格作为额外选项传递,也可以尝试将报价项目的基本价格设置为它。
-
P.S. Magento 的 API 文档并不是最好的,它需要大量的尝试和学习。 wiki 上有一个很好的指南,展示了如何扩展现有的 API 函数。 magentocommerce.com/wiki/doc/webservices-api/custom-api。在客户群体定价之前,magento 中只有分层定价,可以用来有效地做同样的事情。
-
分层定价不适用于我这里的特殊需求。如果您所说的是正确的,则在 SOAP 结帐期间临时更改组以获取组定价似乎是不扩展 api 的最佳选择。我将进行更多研究,并希望其他人可以加入一些关于更改 sku 的 SOAP 价格的知识。感谢您的意见。
标签: magento