文档地址:Promotion - US - API Reference - Walmart Developer Portal
1.单个调价接口 Update a promotional price
us和mx 接口地址:https://marketplace.walmartapis.com/v3/price?promo=true
ca接口地址:https://marketplace.walmartapis.com/v3/ca/price?promo=true
"priceDisplayCodes": "CART" 这个参数不能要 不然页面变成了 see price in cart processMode = DELETE 删除活动 必须是当前活动的原始开始和结束时间 replaceAll 不填 可以吧非促销活动变成促销活动, replaceAll="true" 可以删除当前促销活动,重新设置促销活动
促销价格最好设置为 90% 如果设置少一分 两分的 不会成功 促销价格必须小于对比价格
//currency货币类型 $currencyarr = ['us'=>'USD','mx'=>'MXN','ca'=>'CAD']; $walmartPostService = new WalmartListingData(30); $effective_date = date('Y-m-d H:i:s', (strtotime(date('Y-m-d H:i:s')) - (3600*8)+300));//减去时差8个小时,也就是开始时间为当前时间+5分钟 $expiration_date = date('Y-m-d H:i:s', (strtotime('2023-11-20 08:00:00') - (3600*8)));//结束时间 $data = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Price xmlns="http://walmart.com/"> <itemIdentifier> <sku>Bling-WFS-3904-003009-12U0D</sku> </itemIdentifier> <pricingList replaceAll="true"> <pricing effectiveDate="'.date('Y-m-d\TH:i:s.000\Z', strtotime($effective_date)).'" expirationDate="'.date('Y-m-d\TH:i:s.000\Z', strtotime($expiration_date)).'" processMode="UPSERT"> <currentPrice> <value currency="USD" amount="21.58"/> </currentPrice> <currentPriceType>REDUCED</currentPriceType> <comparisonPrice> <value currency="USD" amount="23.99"/> </comparisonPrice> </pricing> </pricingList> </Price>'; $res = $walmartPostService->updateproprice($data);//返回为xml类型 //xml转换为数组 $preg = "/(<|<\/)(?:\w+:)/is"; $newXmlStr = preg_replace($preg,"\\1",$res[1]); $xmlstring = simplexml_load_string($newXmlStr); $res[1] = json_decode(json_encode($xmlstring),true); /** * 单个促销调价(new) */ public function updatepropricenew($data){ $accountInfo = array(); $url = 'https://marketplace.walmartapis.com/v3/price?promo=true'; $extra = [ "Accept"=>"application/xml", "Content-Type"=>"application/xml", ]; if($this->site=='ca'){ $url = 'https://marketplace.walmartapis.com/v3/ca/price?promo=true'; } $headers = $this->getHeaders($url, 'PUT', $accountInfo, $extra); $result = $this->cur_request($url,'PUT',$data,$headers); return $result; } public function cur_request($URL, $type, $params, $headers) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $URL); if ($headers != "") { curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); } else { curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/x-www-form-urlencoded')); } curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); curl_setopt($ch,CURLOPT_ENCODING,""); // 返回数据支持所有编码,不乱码 ;如果为空字符串"",会发送所有支持的编码类型。 switch ($type) { case "GET" : curl_setopt($ch, CURLOPT_HTTPGET, true); break; case "POST": curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); break; case "PUT" : curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); break; case "PATCH": curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH'); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); break; case "DELETE": curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE"); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); break; } $file_contents = curl_exec($ch);//获得返回值 $responseCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); return [$responseCode, $file_contents]; }