Created
April 7, 2020 21:27
-
-
Save kernusr/5fb3a811b964aeba5ddb1256be9b8a55 to your computer and use it in GitHub Desktop.
Получаем xml заказа, как при обмене Bitrix
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
define("NO_AGENT_CHECK", true); | |
define("NO_KEEP_STATISTIC", true); | |
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); | |
if (!$GLOBALS['USER']->IsAdmin()) { | |
die("Доступно только для администратора."); | |
} | |
CModule::IncludeModule('sale'); | |
$arErrors = array(); | |
if (isset($_REQUEST['ORDER_ID']) || isset($_REQUEST['ORDER_ID_TEXT'])) { | |
$nOrder = ((int)$_REQUEST['ORDER_ID_TEXT'] > 0 ? (int)$_REQUEST['ORDER_ID_TEXT'] : (int)$_REQUEST['ORDER_ID']); | |
if ($nOrder && CSaleOrder::GetByID($nOrder)) { | |
ob_end_clean(); | |
header('Content-Type: text/html; charset=utf-8'); | |
header('P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"'); | |
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); | |
header('Cache-Control: no-store, no-cache, must-revalidate'); | |
header('Cache-Control: post-check=0, pre-check=0', false); | |
header('Pragma: no-cache'); | |
header('Content-transfer-encoding: binary'); | |
header('Content-Disposition: attachment; filename=order-'.$nOrder.'.xml'); | |
header('Content-Type: application/x-unknown'); | |
ob_start(); | |
CSaleExport::ExportOrders2Xml(array('ID' => $nOrder)); | |
$sXml = ob_get_clean(); | |
$sXml = strtr($sXml, array('encoding="windows-1251"' => 'encoding="utf-8"')); | |
echo $sXml; | |
exit(); | |
} else { | |
$arErrors[] = "Заказ №{$nOrder} не найден."; | |
} | |
} | |
$arOrdersID = array(); | |
$dbOrders = CSaleOrder::GetList( | |
array("ID" => "DESC"), | |
array(), | |
false, | |
array('nTopCount' => 200), | |
array('ID', 'DATE_INSERT') | |
); | |
while ($arOrder = $dbOrders->Fetch()) { | |
$arOrdersID[] = $arOrder; | |
} | |
?> | |
<!DO CTYPE html> | |
<html> | |
<head> | |
<title>Просмотр XML выгрузки для заказа</title> | |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | |
<style> | |
html, body { | |
position: relative; | |
height: 100%; | |
} | |
body { | |
background: #f1f1f1; | |
padding: 0; | |
margin: 0 | |
} | |
.content-table { | |
position: relative; | |
width: 100%; | |
height: 100%; | |
} | |
.content-cell { | |
position: relative; | |
text-align: center; | |
vertical-align: middle; | |
} | |
.center-content { | |
position: relative; | |
box-shadow: 0 0 2px #555; | |
padding: 20px; | |
border-radius: 4px; | |
background: #fff; | |
display: inline-block; | |
text-align: left; | |
} | |
</style> | |
</head> | |
<body> | |
<table class="content-table"> | |
<tr> | |
<td class="content-cell"> | |
<div class="center-content"> | |
<? //echo '<pre>'.var_export($_REQUEST, 1).'</pre>';?> | |
<form action="" method="post" style="line-height: 24px;"> | |
Форма генерирует XML файл заказа, такой же как при экспорте | |
<br/>заказов с сайта в 1C, но в кодировке utf-8 для просмотре в браузере | |
<br/><br/> | |
<? | |
if ($arErrors) { | |
// Ошибки | |
echo implode('<br />', $arErrors).'<br />'; | |
} | |
?> | |
Выберите из списка (200 последних ID): | |
<select name="ORDER_ID" style="cursor: pointer;"> | |
<option value="">Выберите номер заказа</option> | |
<? | |
foreach ($arOrdersID as $arOrder) { | |
echo '<option value="'.$arOrder['ID'].'">'.$arOrder['ID'].' ('.$arOrder['DATE_INSERT'].')</option>'; | |
} | |
?> | |
</select> | |
<br/>Или введите номер заказа вручную: <input type="text" name="ORDER_ID_TEXT" value=""/> | |
<br/> | |
<button type="submit" name="SUBMIT" value="Y" style="cursor: pointer;">Сгенерировать XML</button> | |
<br/><br/>* Полученный XML файл можно открыть в Google Chrome, | |
<br/>файл будет открыт с XML форматированием. | |
</form> | |
</div> | |
</td> | |
</tr> | |
</table> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment