Полоса: рассчитать цены на доставку с разных складов - PullRequest
0 голосов
/ 03 марта 2020

Введение: Мой друг владеет несколькими небольшими винодельнями в Италии и владеет 3-4 небольшими складами в разных европейских странах. Он хочет, чтобы его онлайн-клиенты (покупатели вина) решали, с какого склада они хотят получить вино, сравнивая цены отгрузки.

Цель: Рассчитать цену отгрузки для каждого склада, зная адрес клиента.

Мое решение: Vue, Firebase , Stripe будут использоваться для сборки магазин. До сих пор я сделал CheckoutSession облачную функцию, которая успешно возвращает sessionId :

exports.CheckoutSession = functions.https.onRequest((request, response) => {
  cors(request, response, () => {
    stripe.checkout.sessions.create(
      {
        success_url: 'https://example.com/success',
        cancel_url: 'https://example.com/cancel',
        payment_method_types: ['card'],
        line_items: [
          {
            name: 'T-shirt',
            description: 'Comfortable cotton t-shirt',
            amount: 1500,
            currency: 'eur',
            quantity: 2,
          },
        ],
      },
      function(err, session) {
        response.send(session)
        if (err) {
          // ...
        }
      }
    )
  })
})

Затем я запускаю:

await stripe.redirectToCheckout({ sessionId: this.sessionId })

И платеж обрабатывается - я вижу доход в приборной панели Stripe.

1) Как узнать стоимость доставки? В соответствии с этим do c, я должен получить «items»: Array , который содержит объекты с типом «shipping» после создания заказа с помощью stripe.orders.create () . Но этот API устарел и в соответствии с этим do c, stripe.checkout.sessions.create () полезная нагрузка должна содержать "line_items" - список товаров, которые покупатель покупает : нет упоминаний о доставке ... Так что я немного растерялся: возможно ли даже передать стоимость доставки в stripe.checkout.sessions.create () ?

2) Можно ли выбрать несколько адресов? В https://dashboard.stripe.com/settings/orders# Я вижу только один адрес отправителя ...

...