Расчет доставки товаров в Google Checkout не имеет смысла

#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, означающий «вот стоимость доставки для этого заказа» (которую вы уже каким-то образом предварительно рассчитали).

Дополнительная ссылка:

  1. Можно запросить почтовый индекс
  2. Больше обсуждений на форуме

Надеюсь, это поможет…