【问题标题】:AJAX Request for LinnworksLinnworks 的 AJAX 请求
【发布时间】:2018-02-21 22:23:03
【问题描述】:

我正在使用 Laravel 为 Linnworks API 创建一个应用程序。我在 PHP 中创建了自己的 AJAX 请求,从 javascript 接收数据。

这是一个有效的请求。

Linnworks 示例

inventoryItemId=28c6226d-08de-4eb5-9bf1-f6089972cf18&fieldName=0&fieldValue=sample string 1&locationId=e10f6f45-d4ad-4128-8b58-6ff84b23199a

对 PHP 的 Javascript 请求

var itemArray = 
{
    "inventoryItemId": "39692932-f8b0-42d7-9419-0500d6d79769",
    "fieldName": "StockLevel",
    "fieldValue": 6,
    "locationId": "00000000-0000-0000-0000-000000000000"
};

var itemArrayStr = JSON.stringify(itemArray);

AjaxRequestNew({'dataArray': itemArrayStr, 'linnworksURL': 'Inventory/UpdateInventoryItemLevels'});

function AjaxRequestNew(ajaxData) {
$.ajax({
    headers: {'X-CSRF-TOKEN': mytoken},
    url: '/api-linnworks-request',
    method: 'post',
    data: ajaxData,
    async: false,
    complete: function (data) {
        resp = data.responseText;
    }
});
}

PHP AJAX 请求

public function apiLinnworksRequest(Request $request){
$url ='https://eu1.linnworks.net//api/'.$request->linnworksURL;
$data = json_decode($request->dataArray);

$myvar = WebController::linnworksRequestNew($url, $data , $request);
}

public function linnworksRequestNew($url, $data , $request) {
$client = new Client();
// dd($data);

$res = $client->request(
    'POST', $url, [
    'headers' => [
        'Authorization' => $request->session()->get('LinnReturnToken')
    ],
    'form_params' => $data
]);
var_dump($res->getBody()->__toString());
}

这很有效,并且会更新商品的库存水平,但是我需要同时更新多个商品。我发现 Stock /SetStockLevel 符合我的要求,但是我无法正确格式化请求并不断收到错误。

Linnworks 示例

 stockLevels=[
{
    "SKU": "sample string 1",
    "LocationId": "2260b419-69dd-4586-b2b2-08db9591921c",
    "Level": 3
},
{
    "SKU": "sample string 1",
    "LocationId": "2260b419-69dd-4586-b2b2-08db9591921c",
    "Level": 3
}
]

【问题讨论】:

  • keep getting an error ... ?

标签: javascript php json ajax laravel


【解决方案1】:

感谢 Linnworks 的帮助,通过使用 Postman,我发现请求需要按照以下格式进行格式化。

PHP

 'stocklevels' => 
     '[ { "SKU": "SUIT-4PC-[philip / paisley]-BLACK-02yrs", ]
     "LocationId": "00000000-0000-0000-0000-000000000000", 
     "Level": 3 }, { "SKU": "SUIT-4PC-[philip / paisley]-BLACK-03yrs", 
     "LocationId": "00000000-0000-0000-0000-000000000000", 
     "Level": 3 } ]'

为了复制这一点,我从 Javascript 中发送了以下格式的数据:

JS

var itemArray = 
    [
        {
            "SKU": "SUIT-4PC-[philip / paisley]-BLACK-02yrs",
            "LocationId": "00000000-0000-0000-0000-000000000000",
            "Level": 6
        },
        {
            "SKU": "SUIT-4PC-[philip / paisley]-BLACK-03yrs",
            "LocationId": "00000000-0000-0000-0000-000000000000",
            "Level": 6
        }
    ];

    var itemArrayStr = JSON.stringify(itemArray);
    var dataRequest = {stocklevels: itemArrayStr};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-22
    • 2012-09-02
    • 1970-01-01
    • 2011-12-26
    • 1970-01-01
    • 2020-04-05
    相关资源
    最近更新 更多