Completed
Push — master ( 1dc1a5...f8d9f6 )
by Anton
10s
created

examples/Market/view-order.php (2 issues)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
$settings = require_once '../settings.php';
3
use Yandex\Market\Partner\PartnerClient;
4
use Yandex\Common\Exception\ForbiddenException;
5
6
$errorMessage = false;
7
$order = null;
8
9
//Is auth
10
if (isset($_COOKIE['yaAccessToken']) && isset($_COOKIE['yaClientId'])
11
    && isset($_GET['campaignId']) && $_GET['campaignId']
12
    && isset($_GET['orderId']) && $_GET['orderId']
13
) {
14
15
    $market = new PartnerClient($_COOKIE['yaAccessToken']);
16
    $market->setClientId($_COOKIE['yaClientId']);
17
    $market->setLogin($settings['global']['marketLogin']);
18
19
    try {
20
        $market->setCampaignId($_GET['campaignId']);
21
22
        if (isset($_GET['status']) && $_GET['status']) {
23
            if (isset($_GET['substatus']) && $_GET['substatus']) {
24
                $market->setOrderStatus($_GET['orderId'], $_GET['status'], $_GET['substatus']);
25
            } else {
26
                $market->setOrderStatus($_GET['orderId'], $_GET['status']);
27
            }
28
        }
29
        /** @var Yandex\Market\Models\Order $orders */
30
        $order = $market->getOrder($_GET['orderId']);
31
    } catch (ForbiddenException $ex) {
32
        $errorMessage = $ex->getMessage();
33
        $errorMessage .= '<p>Возможно, у приложения нет прав на доступ к ресурсу. Попробуйте '
34
            . '<a href="' . rtrim(str_replace($_SERVER['DOCUMENT_ROOT'], '', __DIR__), "/") . "/../OAuth/"  . '">авторизироваться</a> и повторить.</p>';
35
36
    } catch (Exception $ex) {
37
        $errorMessage = $ex->getMessage();
38
    }
39
}
40
$orderStatusesTexts = [
41
    PartnerClient::ORDER_STATUS_RESERVED => 'заказ в резерве',
42
    PartnerClient::ORDER_STATUS_UNPAID => 'заказ оформлен, но еще не оплачен',
43
    PartnerClient::ORDER_STATUS_PROCESSING => 'заказ находится в обработке',
44
    PartnerClient::ORDER_STATUS_DELIVERY => 'заказ передан в доставку',
45
    PartnerClient::ORDER_STATUS_PICKUP => 'заказ доставлен в пункт самовывоза',
46
    PartnerClient::ORDER_STATUS_DELIVERED => 'заказ получен покупателем',
47
    PartnerClient::ORDER_STATUS_CANCELLED => 'заказ отменен',
48
];
49
?>
50
<!doctype html>
51
<html lang="en-US">
52
<head>
53
    <meta charset="UTF-8">
54
    <title>Yandex PHP Library: Market Demo</title>
55
    <link rel="stylesheet" href="//yandex.st/bootstrap/3.0.0/css/bootstrap.min.css">
56
    <link href="//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css" rel="stylesheet">
57
    <link rel="stylesheet" href="/examples/Disk/css/style.css">
58
</head>
59
<body>
60
<div class="container">
61
<div class="jumbotron">
62
    <h2><span class="glyphicon glyphicon-shopping-cart"></span> Пример работы с Яндекс Маркетом</h2>
63
</div>
64
<div><span class="glyphicon glyphicon-arrow-left"></span> <a href="/examples/Market/">Назад</a></div>
65
<?php
66
if (!isset($_GET['campaignId']) || !$_GET['campaignId'] || !isset($_GET['orderId']) || !$_GET['orderId']) {
67
    ?>
68
    <div class="alert alert-info">
69
        Для просмотра этой страницы вам необходимо передать orderId и campaignId
70
        <a id="goToAuth" href="/examples/Market/" class="alert-link">Перейти назад</a>.
71
    </div>
72
<?php
73 View Code Duplication
} elseif (!isset($_COOKIE['yaAccessToken']) || !isset($_COOKIE['yaClientId'])) {
74
    ?>
75
    <div class="alert alert-info">
76
        Для просмотра этой страницы вам необходимо авторизироваться.
77
        <a id="goToAuth" href="<?php echo rtrim(str_replace($_SERVER['DOCUMENT_ROOT'], '', __DIR__), "/") . '/../OAuth/'?>" class="alert-link">Перейти на страницу авторизации</a>.
78
    </div>
79
<?php
80
} elseif ($errorMessage) {
0 ignored issues
show
Bug Best Practice introduced by
The expression $errorMessage of type false|string is loosely compared to true; this is ambiguous if the string can be empty. You might want to explicitly use !== false instead.

In PHP, under loose comparison (like ==, or !=, or switch conditions), values of different types might be equal.

For string values, the empty string '' is a special case, in particular the following results might be unexpected:

''   == false // true
''   == null  // true
'ab' == false // false
'ab' == null  // false

// It is often better to use strict comparison
'' === false // false
'' === null  // false
Loading history...
81
    ?>
82
83
    <div class="alert alert-danger">
84
        <?= $errorMessage ?>
85
    </div>
86
<?php
87
} elseif (isset($market)) {
88
89
    if ($errorMessage) {
0 ignored issues
show
Bug Best Practice introduced by
The expression $errorMessage of type false|string is loosely compared to true; this is ambiguous if the string can be empty. You might want to explicitly use !== false instead.

In PHP, under loose comparison (like ==, or !=, or switch conditions), values of different types might be equal.

For string values, the empty string '' is a special case, in particular the following results might be unexpected:

''   == false // true
''   == null  // true
'ab' == false // false
'ab' == null  // false

// It is often better to use strict comparison
'' === false // false
'' === null  // false
Loading history...
90
        ?>
91
        <div class="alert alert-danger"><?= $errorMessage ?></div>
92
    <?php
93
    } elseif ($order) {
94
        ?>
95
        <div class="col-md-8">
96
        <h2>Информация о Заказе:</h2>
97
        <h3>Запрос:</h3>
98
        <p>
99
            <a href="http://api.yandex.ru/market/partner/doc/dg/reference/get-campaigns-id-orders-id.xml">
100
                GET /campaigns/{campaignId}/orders/{orderId}
101
            </a>
102
        </p>
103
104
        <h3>Ответ:</h3>
105
        <h3>Информация о заказе:</h3>
106
        <p>
107
            <label>ID:</label> <?= $order->getId() ?>
108
        </p>
109
        <p>
110
            <label>Статус:</label> <?php
111
            echo $orderStatusesTexts[$order->getStatus()];
112
            ?>
113
        </p>
114
        <?php
115
        if ($order->getStatus() === PartnerClient::ORDER_STATUS_PROCESSING) {
116
            ?>
117
            <p>
118
                <a href="/examples/Market/view-order.php?orderId=<?= $order->getId(
119
                ) ?>&campaignId=<?= $_GET['campaignId'] ?>&status=DELIVERY">Заказ готов к передаче в службу
120
                    доставки</a>
121
            </p>
122
            <p>
123
                <a href="/examples/Market/view-order.php?orderId=<?= $order->getId(
124
                ) ?>&campaignId=<?= $_GET['campaignId'] ?>&status=CANCELLED&substatus=USER_UNREACHABLE">Не удалось
125
                    связаться с покупателем</a>
126
            </p>
127
            <p>
128
                <a href="/examples/Market/view-order.php?orderId=<?= $order->getId(
129
                ) ?>&campaignId=<?= $_GET['campaignId'] ?>&status=CANCELLED&substatus=USER_CHANGED_MIND">Покупатель
130
                    отменил заказ по собственным причинам</a>
131
            </p>
132
        <?php
133
        } elseif ($order->getStatus() === PartnerClient::ORDER_STATUS_DELIVERY) {
134
            ?>
135
            <p>
136
                <a href="/examples/Market/view-order.php?orderId=<?= $order->getId(
137
                ) ?>&campaignId=<?= $_GET['campaignId'] ?>&status=PICKUP">Заказ доставлен в пункт самовывоза</a>
138
            </p>
139
            <p>
140
                <a href="/examples/Market/view-order.php?orderId=<?= $order->getId(
141
                ) ?>&campaignId=<?= $_GET['campaignId'] ?>&status=DELIVERED">Заказ вручен покупателю</a>
142
            </p>
143
            <p>
144
                <a href="/examples/Market/view-order.php?orderId=<?= $order->getId(
145
                ) ?>&campaignId=<?= $_GET['campaignId'] ?>&status=CANCELLED&substatus=USER_UNREACHABLE">Не удалось
146
                    связаться с покупателем</a>
147
            </p>
148
            <p>
149
                <a href="/examples/Market/view-order.php?orderId=<?= $order->getId(
150
                ) ?>&campaignId=<?= $_GET['campaignId'] ?>&status=CANCELLED&substatus=USER_CHANGED_MIND">Покупатель
151
                    отменил заказ по собственным причинам</a>
152
            </p>
153
        <?php
154
        }
155
        ?>
156
157
        <p>
158
            <label>Дата оформления заказа:</label> <?= $order->getCreationDate() ?>
159
        </p>
160
        <p>
161
            <label>Валюта:</label> <?= $order->getCurrency() ?>
162
        </p>
163
        <p>
164
            <label>Общая сумма заказа в валюте заказа без учета доставки:</label> <?= $order->getItemsTotal() ?>
165
        </p>
166
        <p>
167
            <label>Общая сумма заказа в валюте заказа с учетом доставки:</label> <?= $order->getTotal() ?>
168
        </p>
169
        <hr/>
170
        <h3>Товары:</h3>
171
        <?php
172
        if ($order->getItems() instanceof Traversable) {
173
            /** @var Yandex\Market\Models\Item $item */
174
            foreach ($order->getItems() as $item) {
175
                ?>
176
                <p>
177
                    <label>ID товара:</label> <?= $item->getOfferId() ?>
178
                </p>
179
                <p>
180
                    <label>Категория:</label> <?= $item->getFeedCategoryId() ?>
181
                </p>
182
                <p>
183
                    <label>Название товара:</label> <?= $item->getOfferName() ?>
184
                </p>
185
                <p>
186
                    <label>Цена:</label> <?= $item->getPrice() ?>
187
                </p>
188
                <p>
189
                    <label>Количество:</label> <?= $item->getCount() ?>
190
                </p>
191
                <hr/>
192
            <?php
193
            }
194
        }
195
        ?>
196
        <?php if ($order->getBuyer()) { ?>
197
            <h3>Покупатель:</h3>
198
            <p>
199
                <label>Фамилия:</label> <?= $order->getBuyer()->getLastName() ?>
200
            </p>
201
            <p>
202
                <label>Имя:</label> <?= $order->getBuyer()->getFirstName() ?>
203
            </p>
204
            <p>
205
                <label>Телефон:</label> <?= $order->getBuyer()->getPhone() ?>
206
            </p>
207
            <p>
208
                <label>Email:</label> <?= $order->getBuyer()->getEmail() ?>
209
            </p>
210
        <?php } ?>
211
        <h3>Доставка:</h3>
212
        <p>
213
            <label>Способ доставки заказа:</label> <?php
214
            if ($order->getDelivery()->getType() === PartnerClient::DELIVERY_TYPE_DELIVERY) {
215
                ?>
216
                курьерская доставка
217
            <?php
218
            } elseif ($order->getDelivery()->getType() === PartnerClient::DELIVERY_TYPE_PICKUP) {
219
                ?>
220
                самовывоз
221
            <?php
222
            } else {
223
                ?>
224
                почта
225
            <?php
226
            }
227
            ?>
228
        </p>
229
        <p>
230
            <label>Название службы доставки:</label> <?= $order->getDelivery()->getServiceName() ?>
231
        </p>
232
        <p>
233
            <label>Стоимость доставки в валюте заказа:</label> <?= $order->getDelivery()->getPrice() ?>
234
        </p>
235
        <p>
236
            <label>Диапазон дат доставки:</label> <?=
237
            $order->getDelivery()->getDates()->getFromDate() . ' - '
238
            . $order->getDelivery()->getDates()->getToDate() ?>
239
        </p>
240
        <p>
241
            <label>Страна:</label> <?= $order->getDelivery()->getAddress()->getCountry() ?>
242
        </p>
243
        <p>
244
            <label>Город либо населенный пункт:</label> <?= $order->getDelivery()->getAddress()->getCity() ?>
245
        </p>
246
        <p>
247
            <label>Улица:</label> <?= $order->getDelivery()->getAddress()->getStreet() ?>
248
        </p>
249
        <p>
250
            <label>Номер дома или владения:</label> <?= $order->getDelivery()->getAddress()->getHouse() ?>
251
        </p>
252
        <p>
253
            <label>ФИО получателя заказа:</label> <?= $order->getDelivery()->getAddress()->getRecipient() ?>
254
        </p>
255
        <p>
256
            <label>Номер телефона получателя заказа:</label> <?=
257
            $order->getDelivery()->getAddress()->getPhone() ?>
258
        </p>
259
260
    <?php
261
    }
262
    ?>
263
    </div>
264
<?php
265
}
266
?>
267
</div>
268
<script src="http://yandex.st/jquery/2.0.3/jquery.min.js"></script>
269
<script src="http://yandex.st/jquery/cookie/1.0/jquery.cookie.min.js"></script>
270
<script>
271
    $(function () {
272
        $('#goToAuth').click(function (e) {
273
            $.cookie('back', location.href, {expires: 256, path: '/'});
274
        });
275
    });
276
</script>
277
</body>
278
</html>
279
280