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
|
|||
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
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 For '' == 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 |
In PHP, under loose comparison (like
==
, or!=
, orswitch
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: