Google Checkout在动态商家运费回调计算方面存在问题。
当客户使用Google按钮点击结帐时,我会传递名为“默认送货”的送货方式,运费为100美元。
此默认值仅在客户选择送货地址时显示,并且谷歌回调商家网站以提取送货方式失败。
当客户登录Google帐户并输入送货地址(国家/城市/州/邮政编码...)时,Google会立即回复商家脚本以获取最新的送货方式。
我能够成功将谷歌回调给我,但我的谷歌运送方式不被接受。
示例,
当客户选择运送到美国NC时,则:
但谷歌说下面的错误:
商家计算:我们在您的商家计算结果中查找数据,但无法找到它:结果:address-id:209802946439880shipping-name:失败时默认发货
从谷歌即时回调收到的XML:
<?xml version="1.0" encoding="UTF-8"?>
<merchant-calculation-callback xmlns="http://checkout.google.com/schema/2" serial-number="abd99db3-d3e3-485b-ba9c-75863d02ed65">
<shopping-cart>
<merchant-private-data>
<session-id>f199c97f7fa9b19ade6fa57a17ce79d61508aef4</session-id>
</merchant-private-data>
<items>
<item>
<item-weight value="0.0" unit="LB" />
<tax-table-selector>food</tax-table-selector>
<item-name>Test prod 3</item-name>
<item-description></item-description>
<unit-price currency="USD">1.0</unit-price>
<quantity>1</quantity>
<merchant-item-id>test11</merchant-item-id>
</item>
</items>
<cart-expiration>
<good-until-date>2011-05-20T23:59:59.000Z</good-until-date>
</cart-expiration>
</shopping-cart>
<buyer-id>119687448728341</buyer-id>
<calculate>
<addresses>
<anonymous-address id="209802946439880">
<country-code>US</country-code>
<city>Charlotte</city>
<region>NC</region>
<postal-code>28227</postal-code>
</anonymous-address>
</addresses>
<shipping>
<method name="default shipping" />
</shipping>
<tax>false</tax>
<merchant-code-strings />
</calculate>
<buyer-language>English</buyer-language>
</merchant-calculation-callback>
在商家脚本自定义运费计算完成后发布到Google的XML:
<?xml version="1.0" encoding="UTF-8"?>
<merchant-calculation-results xmlns="http://checkout.google.com/schema/2">
<results>
<result shipping-name="Fedex Economy" address-id="209802946439880">
<shipping-rate currency="USD">15.20</shipping-rate>
<shippable>true</shippable>
</result>
</results>
</merchant-calculation-results>
所以我怀疑谷歌必须要求我在发回谷歌时返回相同的默认运送名称。
我试过了,如果通过修改运费返回相同的默认运输名称,它就可以了!
但是当我返回相同的默认运输名称,同时另外一种运输方式作为FedEx Economy to google时,google会回复错误,说明无效的额外数据:
商家计算:您在商家计算结果中向我们发送了无效的额外数据:[address-id:209802946439880 / shipping-name:Fedex Economy]
<?xml version="1.0" encoding="UTF-8"?>
<merchant-calculation-results xmlns="http://checkout.google.com/schema/2">
<results>
<result shipping-name="default shipping" address-id="209802946439880">
<shipping-rate currency="USD">8</shipping-rate>
<shippable>true</shippable>
</result>
<result shipping-name="Fedex Economy" address-id="209802946439880">
<shipping-rate currency="USD">15.20</shipping-rate>
<shippable>true</shippable>
</result>
</results>
</merchant-calculation-results>
怎么来的!拥有这种规则是不切实际的......
当谷歌将运输城市/州/邮政编码/国家/地区传回给我时,我的系统将仅计算并返回可用的运送方式
这意味着在谷歌让我知道地址之前,我甚至不知道有多少运送方式可供特定客户使用。
答案 0 :(得分:0)
这就是商家计算运费的方式:
参考:Merchant Calculations API -> Shipping
您必须指定唯一名称和a 每个的默认运费 运输选项。
另一种方法是在将客户发送到Google Checkout之前收集邮政编码。然后,您的系统可以在将客户重定向到Google之前预先确定送货可用性和费用,并将送货选项/费用作为“统一费率运费”传递 - 这只是Google Checkout特定字词,表示“这是此处的运费命令“(你已经预先计算过某种方式)。
更多参考资料:
希望这会有所帮助......