Ուղեցույց
Ինչպես է աշխատում
- 1. Ստացեք WooCommerce պատվերը
- 2. Սինքրոնացրեք WooCommerce պատվերի ապրանքները eHDM-ի հետ
- 3. Ստացեք պատրաստված ապրանքները eHDM պահոցից
- 4. Կանչեք
$eHDM->print() - 5. Ստացեք ֆիսկալ կտրոնի պատասխանը
Աջակցվող սցենարներ
- Անկանխիկ վճարում — ամբողջ վճարումը կատարվում է անկանխիկ
- Կանխիկ վճարում — ամբողջ վճարումը կատարվում է կանխիկ
- Խառը վճարում — մասամբ անկանխիկ, մասամբ կանխիկ
- Մասնակի վճարում — վճարումը փոխանցվում է
partialAmountդաշտով - Կանխավճարի օգտագործում — վճարումը փոխանցվում է
prePaymentAmountդաշտով
Բոլոր օրինակներում օգտագործվող հիմնական կարգավորումը՝
$eHDM = apply_filters( 'planetstudio-payment-gateway-ehdm', null );
$wc_order_id = 2708;
$order = wc_get_order( $wc_order_id );
$amount = (float) $order->get_total();
$order_id = '3b2a2c1b-a850-4edd-abf9-bb2a36e1078a';
$eHDM->getWoocommersOrderItems( $wc_order_id );
$items = $eHDM->getWoocommersOrderItemsFromDB( $wc_order_id );
Սցենար 1․ Անկանխիկ վճարում
$result = $eHDM->print(
array(
'orderId' => $order_id,
'wc_orderId' => $wc_order_id,
'cardAmount' => $amount,
'cashAmount' => 0,
'partialAmount' => 0,
'prePaymentAmount' => 0,
'cashierId' => (int) get_option( 'ehdm_default_cashierId', 1 ),
'mode' => 2,
'partnerTin' => null,
'items' => $items,
)
);
Սպասվող արդյունքը՝
{
"code": 0,
"message": "OK",
"errorMessage": null,
"result": {
"receiptId": "824",
"crn": "52014201",
"sn": "2FECD1F8",
"tin": "00493113",
"taxpayer": "...",
"address": "...",
"time": 1774363086000,
"fiscal": "30247466",
"total": 1,
"change": 0,
"qr": "TIN: ..., TOTAL_CASH: 0, TOTAL_NONCASH: 1, PREP_USAGE: 0, PARTIAL: 0, TOTAL: 1"
}
}
Սցենար 2․ Կանխիկ վճարում
$result = $eHDM->print(
array(
'orderId' => '',
'wc_orderId' => $wc_order_id,
'cardAmount' => 0,
'cashAmount' => $amount,
'partialAmount' => 0,
'prePaymentAmount' => 0,
'cashierId' => (int) get_option( 'ehdm_default_cashierId', 1 ),
'mode' => 2,
'partnerTin' => null,
'items' => $items,
)
);
Սպասվող արդյունքը՝
{
"code": 0,
"message": "OK",
"errorMessage": null,
"result": {
"receiptId": "825",
"crn": "52014201",
"sn": "2FECD1F8",
"tin": "00493113",
"taxpayer": "...",
"address": "...",
"time": 1774363177000,
"fiscal": "46682581",
"total": 1,
"change": 0,
"qr": "TIN: ..., TOTAL_CASH: 1, TOTAL_NONCASH: 0, PREP_USAGE: 0, PARTIAL: 0, TOTAL: 1"
}
}
Սցենար 3․ Խառը վճարում
$result = $eHDM->print(
array(
'orderId' => $order_id,
'wc_orderId' => $wc_order_id,
'cardAmount' => 0.6,
'cashAmount' => 0.4,
'partialAmount' => 0,
'prePaymentAmount' => 0,
'cashierId' => (int) get_option( 'ehdm_default_cashierId', 1 ),
'mode' => 2,
'partnerTin' => null,
'items' => $items,
)
);
Սպասվող արդյունքը՝
{
"code": 0,
"message": "OK",
"errorMessage": null,
"result": {
"receiptId": "826",
"crn": "52014201",
"sn": "2FECD1F8",
"tin": "00493113",
"taxpayer": "...",
"address": "...",
"time": 1774363289000,
"fiscal": "25105467",
"total": 1,
"change": 0,
"qr": "TIN: ..., TOTAL_CASH: 0.4, TOTAL_NONCASH: 0.6, PREP_USAGE: 0, PARTIAL: 0, TOTAL: 1"
}
}
Սցենար 4․ Մասնակի վճարում
$result = $eHDM->print(
array(
'orderId' => $order_id,
'wc_orderId' => $wc_order_id,
'cardAmount' => 0,
'cashAmount' => 0,
'partialAmount' => $amount,
'prePaymentAmount' => 0,
'cashierId' => (int) get_option( 'ehdm_default_cashierId', 1 ),
'mode' => 2,
'partnerTin' => null,
'items' => $items,
)
);
Սպասվող արդյունքը՝
{
"code": 0,
"message": "OK",
"errorMessage": null,
"result": {
"receiptId": "827",
"crn": "52014201",
"sn": "2FECD1F8",
"tin": "00493113",
"taxpayer": "...",
"address": "...",
"time": 1774363388000,
"fiscal": "35778064",
"total": 1,
"change": 0,
"qr": "TIN: ..., TOTAL_CASH: 0, TOTAL_NONCASH: 0, PREP_USAGE: 0, PARTIAL: 1, TOTAL: 1"
}
}
Սցենար 5․ Կանխավճարի օգտագործում
$result = $eHDM->print(
array(
'orderId' => $order_id,
'wc_orderId' => $wc_order_id,
'cardAmount' => 0,
'cashAmount' => 0,
'partialAmount' => 0,
'prePaymentAmount' => $amount,
'cashierId' => (int) get_option( 'ehdm_default_cashierId', 1 ),
'mode' => 2,
'partnerTin' => null,
'items' => $items,
)
);
Սպասվող արդյունքը՝
{
"code": 0,
"message": "OK",
"errorMessage": null,
"result": {
"receiptId": "828",
"crn": "52014201",
"sn": "2FECD1F8",
"tin": "00493113",
"taxpayer": "...",
"address": "...",
"time": 1774363457000,
"fiscal": "10900220",
"total": 1,
"change": 0,
"qr": "TIN: ..., TOTAL_CASH: 0, TOTAL_NONCASH: 0, PREP_USAGE: 1, PARTIAL: 0, TOTAL: 1"
}
}
Նշում կանխավճարի մասին
Կանխավճարի օգտագործումը (prePaymentAmount) կարող է իրականացվել առանց ապրանքների ցանկի։
- Սովորական վաճառքների համար ապրանքների ցանկը պարտադիր է
- Կանխավճարի օգտագործման դեպքում
items-ը կարող է դատարկ լինել - Սա կախված է ֆիսկալ կանոններից և eHDM կարգավորումից
Կանխավճար առանց ապրանքների
Կանխավճարի օգտագործումը (prePaymentAmount) կարող է իրականացվել առանց ապրանքների ցանկի։
$result = $eHDM->print([
'orderId' => '',
'wc_orderId' => 0,
'cardAmount' => 0,
'cashAmount' => 0,
'partialAmount' => 0,
'prePaymentAmount' => 1,
'cashierId' => 1,
'mode' => 3,
'partnerTin' => null,
'items' => [],
]);
Ապրանքացանկի ստացում
print() մեթոդի համար կարող եք փոխանցել items տարբեր ձևերով՝ կախված ձեր հոսքից։
- 1. WooCommerce պատվերից (ուղիղ)
Օգտագործեք այս մեթոդը, երբ ցանկանում եք ստանալ ապրանքները անմիջապես WooCommerce պատվերից։
$items = $eHDM->getWoocommersOrderItems( $wc_order_id );
Այս մեթոդը ձևավորում է ապրանքների ցանկը ընթացիկ պատվերի տվյալներից
- 2. eHDM բազայից (տպված կտրոնի համար)
Օգտագործեք այս մեթոդը, երբ տվյալ պատվերի ունի կտրոն
$items = $eHDM->getWoocommersOrderItemsFromDB( $wc_order_id );
Սա հիմնականում օգտագործվում է, երբ կտրոնը արդեն ստեղծվել է, և ցանկանում եք օգտագործել նույն ապրանքների ցանկը։
Ապրանքների սեփական ցանկ
Եթե չեք օգտագործում WooCommerce պատվերի ապրանքները, կարող եք items զանգվածը փոծարինել սեփականով։
$items = array(
array(
'adgCode' => '9205',
'dep' => 1,
'goodCode' => '9205-13',
'goodName' => 'երգեհոն',
'quantity' => 2,
'unit' => 'հատ',
'price' => 25000,
'additionalDiscount' => null,
'additionalDiscountType' => null,
'discount' => null,
'discountType' => null,
),
);
$result = $eHDM->print(
array(
'orderId' => 'CUSTOM-ORDER-1',
'wc_orderId' => 0,
'cardAmount' => 50000,
'cashAmount' => 0,
'partialAmount' => 0,
'prePaymentAmount' => 0,
'cashierId' => 1,
'mode' => 2,
'partnerTin' => null,
'items' => $items,
)
);
Կտրոնի QR կոդ
Կարող եք ստեղծել QR կոդ տպված կտրոնի համար՝ օգտագործելով getReceiptQR() մեթոդը։
Օգտագործում
$url = $eHDM->getReceiptQR( 824, true );
Վերադարձնում է QR կոդի նկարի URL։
$html = $eHDM->getReceiptQR( 824 );
Վերադարձնում է պատրաստ HTML <img> թեգ։
Օրինակ արդյունք
https://api.qrserver.com/v1/create-qr-code/?data=...&size=300x300
<img class="ehdm-qr" src="https://api.qrserver.com/..." alt="eHDM QR Code">
Ինչպես է աշխատում
- Բեռնում է կտրոնը eHDM բազայից ըստ
receiptId - Վերցնում է
qrդաշտը - Կոդավորում է տվյալները
- Ստեղծում է QR նկար արտաքին սերվիսի միջոցով
Նշումներ
receiptId-ը պետք է գոյություն ունենա- Վերադարձնում է
false, եթե կտրոնը չի գտնվել - QR-ը պարունակում է ամբողջ ֆիսկալ ինֆորմացիան
- Կարող եք օգտագործել URL կամ պատրաստ HTML տարբերակը
Զեղչի կիրառում
Էլեկտրոնային ՀԴՄ գրանցելու և այն ծածկագրումը ինտեգրելու համար, հնարավոր է կիրառել տարբեր տեսակի զեղչեր, որոնք իրենց հերթին ունեն երկու ենթատեսակ:
- 1. Ապրանքի գնի / discount
- % PERCENT, տոկոսային գին՝ discountType = 1
- PRICE (դ), մեկ ապրանքի / միավորի համար տրված գումարային գին՝ discountType = 2. Հաշվում՝ (initial_price – discount) * quantity
- TOTAL (դ), ընդհանուր քանակի համար տրված գին՝ discountType = 4. Հաշվում՝ (price*quantity) – discount
- 2. Ապրանքի լրացուցիչ գին / additionalDiscount
- Type additionalDiscountType = 16, գումարային գին հաշվվում՝ (price*quantity) – discount
- % – այս գինը կիրառվում է 8 սիմվոլ
Ինչ է նշանակում պատասխանը
code = 0— հաջողությունmessage = OK— կտրոնը հաջողությամբ տպվել էerrorMessage = null— սխալ չկաresult.receiptId— կտրոնի IDresult.fiscal— ֆիսկալ համարresult.total— կտրոնի ընդհանուր գումարըresult.change— մանրըresult.qr— ֆիսկալ QR տող՝ վճարման բաժանմամբ
QR դաշտեր
TOTAL_CASH— կանխիկ գումարTOTAL_NONCASH— անկանխիկ գումարPREP_USAGE— օգտագործված կանխավճարի գումարPARTIAL— մասնակի վճարման գումարTOTAL— վերջնական գումար
Նշումներ
mode =2 – Ապրանքներ ռեժիմ / 3 – ԿանխավճարorderId-ը պարտադիր է անկանխիկ և խառը վճարման սցենարների համար- WooCommerce ապրանքները նախ պետք է պատրաստվեն
getWoocommersOrderItems()-ով - Այնուհետև դրանք պետք է բեռնվեն
getWoocommersOrderItemsFromDB()-ով - Բոլոր կտրոնները պահվում են eHDM-ում
Պարամետրեր
| Պարամետր | Տիպ | Նկարագրություն |
|---|---|---|
cardAmount | double | Անկանխիկ (քարտով) վճարված գումար |
cashAmount | double | Կանխիկ վճարված գումար |
partialAmount | double | Մասնակի վճարման գումար |
prePaymentAmount | double | Օգտագործված կանխավճարի գումար |
cashierId | int | Գանձապահի համարը |
mode | int | Կտրոնի ռեժիմ՝ 2 – Ապրանքներ / 3 – Կանխավճար |
partnerTin | string | Գնորդի ՀՎՀՀ |
items | array | Ապրանքների ցանկ |
