PHPスニペット スマレジAPI関係
スマレジAPIをPHPで叩くときのスニペット
契約IDとアクセストークンをよういしてください。
またスマレジディベロッパーのAPIとは別なので注意。そちらのほうが機能が多いし更新があるらしいが、使い方に癖がぜんぜん違うので後ほど調査
ここに載せているスマレジAPIバージョン2は今後更新しないとのこと。
paramsの注意点
改行コードが有るとだめみたいなのです・・・
取り置きの取得
disposeDivisionを0指定にしないとキャンセルした取り置きとキャンセル取り置き注文が引っかかってしまう
function get_transaction_torioki( $contract_id ,$access_token){
$data='proc_name=transaction_ref¶ms={"fields":[
"transactionHeadId",
"transactionDateTime",
"transactionHeadDivision",
"cancelDivision",
"unitNonDiscountsubtotal",
"unitDiscountsubtotal",
"subtotal",
"subtotalDiscountPrice",
"subtotalDiscountRate",
"subtotalDiscountDivision",
"pointDiscount",
"total",
"taxExclude",
"taxInclude",
"roundingDivision",
"roundingPrice",
"cashTotal",
"creditTotal",
"deposit",
"depositCash",
"depositCredit",
"charge",
"changeDifference",
"amount",
"returnAmount",
"costTotal",
"salesHeadDivision",
"inTaxSalesTotal",
"outTaxSalesTotal",
"nonTaxSalesTotal",
"nonSalesTargetTotal",
"nonSalesTargetOutTaxTotal",
"nonSalesTargetInTaxTotal",
"nonSalesTargetTaxFreeTotal",
"nonSalesTargetCostTotal",
"nonSalesTargetAmount",
"nonSalesTargetReturnAmount",
"newPoint",
"spendPoint",
"point",
"totalPoint",
"currentMile",
"earnMile",
"totalMile",
"adjustmentMile",
"adjustmentMileDivision",
"adjustmentMileValue",
"storeId",
"storeCode",
"terminalId",
"customerId",
"customerCode",
"terminalTranId",
"terminalTranDateTime",
"sumDivision",
"adjustmentDateTime",
"sumDateTime",
"customerRank",
"customerGroupId",
"customerGroupId2",
"customerGroupId3",
"customerGroupId4",
"customerGroupId5",
"staffId",
"staffName",
"staffCode",
"paymentCount",
"slipNumber",
"cancelSlipNumber",
"authNumber",
"authDate",
"cardCompany",
"memo",
"receiptMemo",
"paymentMethodId1",
"paymentMethodName1",
"depositOthers1",
"paymentMethodId2",
"paymentMethodName2",
"depositOthers2",
"paymentMethodId3",
"paymentMethodName3",
"depositOthers3",
"carriage",
"commission",
"guestNumbers",
"taxFreeSalesDivision",
"netTaxFreeGeneralTaxInclude",
"netTaxFreeGeneralTaxExclude",
"netTaxFreeConsumableTaxInclude",
"netTaxFreeConsumableTaxExclude",
"tags",
"pointGivingDivision",
"pointGivingUnitPrice",
"pointGivingUnit",
"pointSpendDivision",
"mileageDivision",
"mileageLabel",
"customerPinCode",
"disposeDivision",
"disposeServerTransactionHeadId",
"cancelDateTime",
"sellDivision",
"taxRate",
"taxRounding",
"discountRoundingDivision",
"transactionUuid",
"giftReceiptValidDays",
"receiptIssueNumberOfTimes",
"pickUpDate",
"partPayment",
"partPaymentClass",
"layawayServerTransactionHeadId",
"disabledEdit",
"updDateTime"
],"conditions":[
{
"transactionHeadDivision": "10"
},
{
"cancelDivision": "0"
},
{
"disposeDivision": "0"
}
],"order":null,"limit":100,"page":1,"table_name":"TransactionHead"}';
$ch = curl_init();
$data = str_replace(array("\r", "\n"), '', $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded;charset=UTF-8','X_contract_id: '.$contract_id,'X_access_token: '.$access_token));
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, 'https://webapi.smaregi.jp/access/');
$result = curl_exec($ch);
curl_close($ch);
return json_decode($result,true);
}
取引の取り消し
取引系のレコードは(物理)削除も更新もできない!!
disposeDivisionを2指定し、
disposeServerTransactionHeadIdに取り消したい取引IDを入れて新たなレコードをセットすると対象の取引を取り消し扱いにできる。
コメント
コメントを投稿