PHPスニペット スマレジAPI関係

スマレジAPIをPHPで叩くときのスニペット

契約IDとアクセストークンをよういしてください。

またスマレジディベロッパーのAPIとは別なので注意。そちらのほうが機能が多いし更新があるらしいが、使い方に癖がぜんぜん違うので後ほど調査

ここに載せているスマレジAPIバージョン2は今後更新しないとのこと。

paramsの注意点

改行コードが有るとだめみたいなのです・・・

取り置きの取得

disposeDivisionを0指定にしないとキャンセルした取り置きとキャンセル取り置き注文が引っかかってしまう
    function get_transaction_torioki( $contract_id ,$access_token){

        $data='proc_name=transaction_ref&params={"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を入れて新たなレコードをセットすると対象の取引を取り消し扱いにできる。

コメント

このブログの人気の投稿

ネットギア WiFi6 無線lan 法人向け メッシュ アクセスポイント WAX610の初期設定

Raspberry Pi 4 でデュアルディスプレイの拡張・複製

【更新】福祉施設向け事務用PC選定