продолжение instantcms.ru/blogs/uluchshenija/svjazka-ishop-i-programa-pokupka-na-jandeks-markete.htmlпервой части
6. изменения в файле: backend.php (позволяют менять статус заказа на маркете — это надо делать обязательно)
надеюсь заметка будет кому то полезной!
6. изменения в файле: backend.php (позволяют менять статус заказа на маркете — это надо делать обязательно)
... //=================================================================================================// //=================================================================================================// if($opt == 'set_y_status'){ $new_status = $inCore->request('new_status', 'str'); $order_id = $inCore->request('order_id', 'int', 0); $token = $_SESSION['token']; //получаем токен от яндекс маркета if(!$token)$inCore->redirect('https://oauth.yandex.ru/authorize?response_type=token&client_id=bde9b231b3d649c3b......&state='.$order_id); $component_id = $inCore->request('id', 'int', 0); $component_uri = 'index.php?view=components&do=config&id='.$component_id; cpAddPathway('Список заказов', '?view=components&do=config&id='.$_REQUEST['id'].'&opt=list_orders'); cpAddPathway('Просмотр заказа', '?view=components&do=config&id='.$_REQUEST['id'].'&opt=edit_order&item_id='.$order_id); cpAddPathway('Смена статуса заказа', '?view=components&do=config&id='.$_REQUEST['id'].'&opt=set_y_status&item_id='.$order_id); echo '<h3>Смена статуса заказа #'.$order_id.'</h3>'; $order = $model->getOrder($order_id); ?> <form action="" method="get" name="addform"> Сменить на статус: <select name="new_status"> <option value="PROCESSING">заказ находится в обработке</option> <option value="DELIVERY">заказ передан в доставку</option> <!--<option value="PICKUP">заказ доставлен в пункт самовывоза</option>--> <option value="DELIVERED">заказ получен покупателем</option> <option value="CANCELLED">заказ отменен</option> </select> <input type="submit" /> <input type="hidden" name="do" value="config" /> <input type="hidden" name="id" value="<?=$component_id?>" /> <input type="hidden" name="opt" value="set_y_status" /> <input type="hidden" name="order_id" value="<?=$order_id?>" /> <input type="hidden" name="view" value="components" /> </form> <? //проверяем, с маркета ли заказ? $market_id = $inDB->get_field('cms_shop_orders', 'id='.$order_id, 'market_id'); print $market_id; print " "; print $new_status; if($market_id && $new_status){ 'Host:api.partner.market.yandex.ru', 'Content-Type: application/json;charset=utf-8', 'Accept:*/*', 'Authorization: OAuth oauth_token="'.$token.'", oauth_client_id="bde9b231b3d........", oauth_login="......."' ); curl_setopt($ch, CURLOPT_URL,"https://api.partner.market.yandex.ru/v2/campaigns/211....../orders/{$market_id}/status.json"); //создаем временный файл с запросом //ПОДСКАЖИТЕ КАК СДЕЛАТЬ PUT без временного файла $str = '{"order":{"status":"'.$new_status.'"}}'; if($new_status == 'CANCELLED')$str = '{"order":{"status":"'.$new_status.'", "substatus":"USER_CHANGED_MIND"}}'; //при ОТМЕНЕ надо обязательно еще передавать и подстатус! $tmp_file = PATH.'/str.txt'; } else { echo $data; } echo $result; } } ...
надеюсь заметка будет кому то полезной!
Реклама #
Майкл 10 лет назад #
vicoder 10 лет назад #
lokanaft 10 лет назад #
lezginka.ru 10 лет назад #
vicoder было бы куда приятней и понятней, если выложить уже готовые файлы...да и демо(или скрины) не помешало бы :)
r2 10 лет назад #