-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathadd-order-row.php
83 lines (74 loc) · 2.88 KB
/
add-order-row.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php
/**
* This method is used to add order rows to an order, assuming the order has the action "CanAddOrderRow".
* If the new order amount will exceed the current order amount, a credit check will be taken.
*
*
* Include Library
*
* If you use Composer, include the autoload.php file from vendor folder
* require_once '../../vendor/autoload.php';
*
* If you do not use Composer, include the include.php file from root of the project
* require_once '../../include.php';
*/
require_once '../../include.php';
/**
* Unique merchant ID
* Shared Secret string between Svea and merchant
* Base Url for SVEA Api. Can be TEST_ADMIN_BASE_URL and PROD_ADMIN_BASE_URL
*/
$checkoutMerchantId = 100002;
$checkoutSecret = "3862e010913d7c44f104ddb4b2881f810b50d5385244571c3327802e241140cc692522c04aa21c942793c8a69a8e55ca7b6131d9ac2a2ae2f4f7c52634fe30d2";
$baseUrl = \Svea\Checkout\Transport\Connector::TEST_ADMIN_BASE_URL;
try {
/**
* Create Connector object
*
* Exception \Svea\Checkout\Exception\SveaConnectorException will be returned if
* some of fields $merchantId, $sharedSecret and $baseUrl is missing
*
*
* Add Order Row
*
* Possible Exceptions are:
* \Svea\Checkout\Exception\SveaInputValidationException
* \Svea\Checkout\Exception\SveaApiException
* \Exception - for any other error
*/
$conn = \Svea\Checkout\Transport\Connector::init($checkoutMerchantId, $checkoutSecret, $baseUrl);
$checkoutClient = new \Svea\Checkout\CheckoutAdminClient($conn);
$data = array(
"orderId" => 65017, // required - Long filed (Specified Checkout order for cancel amount)
"orderRow" => array(
"ArticleNumber" => "prod-04",
"Name" => "someProd",
"Quantity" => 300, // minor unit
"UnitPrice" => 5000,
"DiscountPercent" => "", // optional 0-100 minor unit
"VatPercent" => 0, // required - 0, 6, 12, 25
"Unit" => "pc" // optional st, pc, kg, etc.
)
);
$response = $checkoutClient->addOrderRow($data);
$location = $response['HeaderLocation'];
$data = array(
"locationUrl" => $location
);
$response = $checkoutClient->getTask($data);
print_r($response);
} catch (\Svea\Checkout\Exception\SveaApiException $ex) {
examplePrintError($ex, 'Api errors');
} catch (\Svea\Checkout\Exception\SveaConnectorException $ex) {
examplePrintError($ex, 'Conn errors');
} catch (\Svea\Checkout\Exception\SveaInputValidationException $ex) {
examplePrintError($ex, 'Input data errors');
} catch (Exception $ex) {
examplePrintError($ex, 'General errors');
}
function examplePrintError(Exception $ex, $errorTitle)
{
print_r('--------- ' . $errorTitle . ' ---------' . PHP_EOL);
print_r('Error message -> ' . $ex->getMessage() . PHP_EOL);
print_r('Error code -> ' . $ex->getCode() . PHP_EOL);
}