#google-checkout
#google-checkout
Вопрос:
В Google Checkout возникла проблема с динамическим расчетом обратного вызова для доставки товаров.
Когда клиент нажимает на кнопку оформить заказ с помощью Google, я использую способ доставки, называемый «доставка по умолчанию», и стоимость доставки составляет 100 долларов.
Это значение по умолчанию будет отображаться клиенту только в том случае, если он выбрал адрес доставки, а обратный вызов Google на сайт продавца для выбора способа доставки завершается ошибкой.
Когда клиент войдет в учетную запись Google и введет адрес доставки (страна / город / штат / почтовый индекс …), Google выполнит мгновенный обратный вызов merchant script для получения последнего доступного способа доставки.
Мне удалось успешно перезвонить в Google, но мой способ доставки в Google не принят.
Пример,
Когда клиент выбрал отправку в США, Северная Каролина, затем:
- Я верну FedEx Economy в качестве способа доставки (моя система повторно выберет доступный способ доставки на основе указанного адреса)
- Мне вообще не нужно показывать доставку по умолчанию
но Google сообщает об ошибке ниже:
Расчеты продавца: Мы искали данные в ваших результатах расчета продавца, но не смогли их найти: результат: адрес-идентификатор: 209802946439880 название доставки: доставка по умолчанию при сбое
XML, полученный от Google instant callback:
<?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>
XML для отправки в Google после выполнения пользовательского расчета доставки merchant script:
<?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>
Поэтому я подозреваю, что Google должен потребовать от меня вернуть то же название доставки по умолчанию, когда я отправляю ответ в Google.
Я пробовал это, если вернуть то же название доставки по умолчанию, изменив сумму доставки, это работает!
Но когда я возвращаю Google то же название доставки по умолчанию и в то же время дополнительный способ доставки, такой как FedEx Economy, Google выдает сообщение об ошибке с указанием недопустимых дополнительных данных:
Расчеты продавца: Вы отправили нам неверные дополнительные данные в результатах вашего торгового расчета: [адрес-id: 209802946439880 / название доставки: 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>
Как так получилось! Разве это не практично иметь такого рода правила…
Когда Google вернет мне город доставки / штат / почтовый индекс / страну, моя система рассчитает и вернет только доступные способы доставки
Это означает, что до того, как Google сообщит мне адрес, я даже не знаю, сколько способов доставки доступно для конкретного клиента.
Ответ №1:
Вот как работает доставка, рассчитанная продавцом:
ССЫЛКА: Merchant Calculations API -> Доставка
Вы должны указать уникальное имя и стоимость доставки по умолчанию для каждого варианта доставки.
Альтернативным вариантом является сбор почтового индекса перед отправкой вашего клиента в Google Checkout. Затем ваша система может заранее определить доступность доставки и стоимость до перенаправления вашего клиента в Google и указать параметры доставки / стоимость как «доставка по фиксированной ставке» — это просто специфичный термин Google Checkout, означающий «вот стоимость доставки для этого заказа» (которую вы уже каким-то образом предварительно рассчитали).
Дополнительная ссылка:
Надеюсь, это поможет…