如何使用 PayPal 智能按钮在商品缺货时显示售罄消息 [英] How to display sold out message once an itemruns out of stock with PayPal smart button

查看:68
本文介绍了如何使用 PayPal 智能按钮在商品缺货时显示售罄消息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前正在为我的网站开发商店.我正在使用 PayPal Smart 按钮进行付款.我想知道如何添加库存数量,以便当库存编号为 0 时,购买能力变得不可用.我在互联网上到处搜索,找不到我的问题的任何答案.这是我当前的代码:

I am currently working on the store for my website. I am using the PayPal Smart button for payments. I was wondering how I can add a stock amount so that when stock number is 0, the ability to purchase becomes unavailable. I've searched everywhere around the internet and could not find any answers for my question. Here is my current code:

    paypal.Buttons({

    style: {
        shape: 'rect',
        color: 'blue',
        layout: 'vertical',
        label: 'paypal',
        locale: 'en_CY'
    },

    createOrder: function(data, actions) {
        return actions.order.create({
            purchase_units: [{
                amount: {
                    value: ". $row['paypal_price'] .",
                    currency: 'EUR'
                }
            }]
        });
    },
    onApprove: function(data, actions) {
        return actions.order.capture().then(function(details) {
            localStorage.clear();
            window.location.href = 'http://localhost/website/thankyou.php';
            //alert('Transaction completed by ' + details.payer.name.given_name + '!');
            $stock = 0;
        });
    }
}).render('#paypal-button-container');

先谢谢你!

推荐答案

您的问题更多是关于如何更新我当前的库存";和我如何获得我当前的库存"

Your question is more about "how do i update my current stock" and "how do i get my current stock"

Javascript 在客户端运行,由于您在客户端没有当前的股票编号,您需要让 Javascript 与您的服务器进行通信.

Javascript runs client-side, since you dont have your current stock-number on client-side, you will need to make Javascript communicate with your server.

一种方法是通过ajax.您可以使用 fetch-api 来完成此操作.

One way to do this is via ajax. You can use the fetch-api to accomplish this.

这是你必须做的:

在显示按钮之前(php-code):

Before you display the button (php-code):

<?php
    // your code ...
    // check stock before you echo. Only echo when $stock is > 0
    
    $stock = /* get current stock-amount */;

    if ($stock > 0) {
        echo "paypal.Buttons([...";
    }

在确认付款后更新您的库存:

Update your stock on confirmed payment:

// your current code
localStorage.clear();
window.location.href = 'http://localhost/website/thankyou.php';
// alert('Transaction completed by ' + details.payer.name.given_name + '!');
// $stock = 0;

// add something like this
const formData = new FormData();
formData.append('amountOrdered', /* number as string */);

// maybe use await to block further processing until stock has been updated
fetch('update_stock.php', {
     method: 'POST',
     body: formData
});

在新的 update_stock.php 中:

<?php
    // update your stock-source by reducing it by $_POST['amountOrdered']

您需要的最后一步是在创建订单 (JS) 之前检查您的库存:

The last step you will need is to check your stock right before you create an order (JS):

// async here needed so you can use await
createOrder: async function(data, actions) {
    // check stock here
    let stock = (await fetch('get_current_stock.php')).json();
    let currentStock = stock['current'];

    // you may want to check for amoutTryingToOrder instead of 1
    if (currentStock < 1) {
        alert('Out of stock, sorry :(');
        return false;
    }

    return actions.order.create({

在您的 get_current_stock.php 中:

<?php
    header('Content-Type: application/json');

    $currentStock = /* get current stock */;
    
    echo json_encode([
        'current' => $currentStock
    ]);

这篇关于如何使用 PayPal 智能按钮在商品缺货时显示售罄消息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆