Корзина в FastSpring автоматически пустеет после того, как пользователь закрывает всплывающую витрину магазина

#reactjs #api

#reactjs #API

Вопрос:

Я интегрирую FastSpring в свое приложение для оплаты, и у меня проблема с сохранением данных в корзине после закрытия всплывающей витрины.

Согласно документации, я вставил скрипт в свой index.html вот так

   <script
    id="fsc-api"
    src="https://d1f8f9xcsvx3ha.cloudfront.net/sbl/0.8.3/fastspring-builder.min.js"
    type="text/javascript"
    data-storefront="xxxxx.test.onfastspring.com/popup-xxx"
    data-popup-webhook-received='paymentReceived'>
</script>
 

Затем в моем приложении React в js-файле я создал несколько кнопок для добавления товаров в корзину и одну для отображения корзины

      <Buy onClick={()=>{addToCart(licence.name.replace(/s /g, ''))}}> <AddShoppingCartIcon/>Add to cart</Buy>
     <ShoppingCartIcon onClick={()=>{myCart()}} style={{ width:'35px', height:'35px', cursor:'pointer'}}/> 
 

Это мои функции для показа и добавления в корзину

      async function myCart () {
             let res
            try {
               res= await window.fastspring.builder.viewCart()
            }
            catch(err) {
                console.log('err',err)
    
            }
            if(!res) { //res is always undefined (when cart is empty and also when its not)
                NotificationManager.error('Your cart is empty! Please add some products.')
            }
    
        }
        function addToCart (productID) {
 
            const res= window.fastspring.builder.add(productID)
            NotificationManager.success('Product added to your cart.')
        }
 

Проблема в том, что если в корзине что-то есть после закрытия всплывающей витрины магазина, корзина автоматически пустеет, если вы попытаетесь показать ее снова.
Он показывает эту ошибку

[FastSpring API] (!) Ошибка: получена ошибка: 400 пустых сеансов

Как сохранить данные в корзине после закрытия всплывающей витрины? У кого-нибудь была подобная проблема?

Спасибо

Ответ №1:

Это поздний ответ, но у меня был такой же случай, когда корзина очищалась после закрытия всплывающего окна. К счастью, в FastSpring есть опция continuous , которая предотвращает очистку корзины после закрытия всплывающего окна. Просто добавьте data-continuous="true" в свой script тег. Я изучил JavaScript SDK FastSpring и отладил весь цикл, чтобы обнаружить эту опцию.

Документы: https://fastspringexamples.com/callback/data-continuous /