1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
commerceml.php
См. документацию.
1<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
2
3/****************************************************************************/
4/*************** ENGLISH **********************************************/
5/* CommerceML format. Every item in shopping cart should have the following */
6/* properties: */
7/* - catalog XML_ID (with mnemonic code CATALOG.XML_ID) */
8/* - product XML_ID (with mnemonic code PRODUCT.XML_ID). */
9/****************************************************************************/
10
12IncludeModuleLangFile(__FILE__);
13
14if (!isset($arFilter) || !is_array($arFilter))
15 die("Wrong use 1");
16
17
19 'filter' => $arFilter,
20 'select' => array("ID", "LID", "PERSON_TYPE_ID", "PAYED", "DATE_PAYED", "EMP_PAYED_ID", "CANCELED", "DATE_CANCELED", "EMP_CANCELED_ID", "REASON_CANCELED", "STATUS_ID", "DATE_STATUS", "PAY_VOUCHER_NUM", "PAY_VOUCHER_DATE", "EMP_STATUS_ID", "PRICE_DELIVERY", "ALLOW_DELIVERY", "DATE_ALLOW_DELIVERY", "EMP_ALLOW_DELIVERY_ID", "PRICE", "CURRENCY", "DISCOUNT_VALUE", "SUM_PAID", "USER_ID", "PAY_SYSTEM_ID", "DELIVERY_ID", "DATE_INSERT", "DATE_INSERT_FORMAT", "DATE_UPDATE", "USER_DESCRIPTION", "ADDITIONAL_INFO",
21 'PS_STATUS' => 'PAYMENT.PS_STATUS',
22 'PS_STATUS_CODE' => 'PAYMENT.PS_STATUS_CODE',
23 'PS_STATUS_DESCRIPTION' => 'PAYMENT.PS_STATUS_DESCRIPTION',
24 'PS_STATUS_MESSAGE' => 'PAYMENT.PS_STATUS_MESSAGE',
25 'PS_SUM' => 'PAYMENT.PS_SUM',
26 'PS_CURRENCY' => 'PAYMENT.PS_CURRENCY',
27 'PS_RESPONSE_DATE' => 'PAYMENT.PS_RESPONSE_DATE',
28
29 "COMMENTS", "TAX_VALUE", "STAT_GID", "RECURRING_ID"),
30 'runtime' => $runtimeFields
31);
32
33
34if (!empty($by))
35{
36 $order = (!empty($order) && $order == "DESC" ? "DESC" : "ASC");
37 $filter['order'] = array($by => $order);
38}
39
40$dbOrderList = new CDBResult(\Bitrix\Sale\Internals\OrderTable::getList($filter));
41
42ob_start();
43
44echo "<"."?xml version=\"1.0\" encoding=\"".LANG_CHARSET."\"?".">\n";
45echo "<BizTalk xmlns=\"urn:schemas-biztalk-org:biztalk/biztalk-0.81.xml\"><Route><From locationID=\"\" locationType=\"\" process=\"\" path=\"\" handle=\"\"/><To locationID=\"\" locationType=\"\" process=\"\" path=\"\" handle=\"\"/></Route><Body>\n";
46echo " <".GetMessage("CommerceInfo")." xmlns=\"urn:CommerceML\">\n";
47
49while ($dbOrderList->NavNext(true, "f_")):
50 echo " <".GetMessage("Document")." ".GetMessage("Operation")."=\"Order\" ".GetMessage("NumberDoc")."=\"".$f_ID."\" ";
51 echo "".GetMessage("DateDoc")."=\"".CDatabase::FormatDate($f_DATE_INSERT, CLang::GetDateFormat("FULL", LANG), "Y-M-D")."\" ".GetMessage("TimeDoc")."=\"".CDatabase::FormatDate($f_DATE_INSERT, CLang::GetDateFormat("FULL", LANG), "HH:MI:SS")."\" ".GetMessage("PaymentDate")."=\"\" ";
52 echo "".GetMessage("Sum")."=\"".$f_PRICE."\" ".GetMessage("Comment")."=\"\" ".GetMessage("Currency")."=\"".$f_CURRENCY."\">\n";
53 echo " <".GetMessage("CompanyInDocument")." ".GetMessage("Role")."=\"Saler\" ".GetMessage("Company")."=\"".$SALER_COMPANY_XML_ID."\"/>\n";
54 echo " <".GetMessage("CompanyInDocument")." ".GetMessage("Role")."=\"Buyer\" ".GetMessage("Company")."=\"BC".$f_USER_ID."\"/>\n";
55
57 array(),
58 array("ORDER_ID" => $f_ID),
59 false,
60 false,
61 array("ID", "TAX_NAME", "VALUE", "VALUE_MONEY", "CODE", "IS_IN_PRICE")
62 );
63 while ($arOrderTax = $dbOrderTax->Fetch())
64 {
65 echo " <".GetMessage("TaxSum")." ".GetMessage("Tax")."=\"".htmlspecialcharsbx($arOrderTax["TAX_NAME"])."\" ".GetMessage("TaxRate")."=\"".htmlspecialcharsbx($arOrderTax["VALUE"])."\" ".GetMessage("Sum")."=\"".htmlspecialcharsbx($arOrderTax["VALUE_MONEY"])."\" ".GetMessage("IncludedInSum")."=\"".(($arOrderTax["IS_IN_PRICE"]=="Y") ? 1 : 0)."\"/>\n";
66 }
67
68
70 array("NAME" => "ASC"),
71 array("ORDER_ID" => $f_ID)
72 );
73 while ($arBasket = $dbBasket->Fetch())
74 {
75 $CATALOG_XML_ID = $arBasket["CATALOG_XML_ID"];
76 $PRODUCT_XML_ID = $arBasket["PRODUCT_XML_ID"];
77 if ($PRODUCT_XML_ID == '' && $CATALOG_XML_ID == '')
78 {
79 $dbBasketProps = CSaleBasket::GetPropsList(
80 array("CODE" => "ASC"),
81 array("BASKET_ID" => $arBasket["ID"])
82 );
83 while ($arBasketProps = $dbBasketProps->Fetch())
84 {
85 if ($arBasketProps["CODE"] == "CATALOG.XML_ID")
86 $CATALOG_XML_ID = $arBasketProps["VALUE"];
87 elseif ($arBasketProps["CODE"] == "PRODUCT.XML_ID")
88 {
89 $PRODUCT_XML_ID = $arBasketProps["VALUE"];
90 if (mb_substr($PRODUCT_XML_ID, 0, 2) == "ID")
91 $PRODUCT_XML_ID = mb_substr($PRODUCT_XML_ID, 2);
92 }
93 }
94 }
95 if ($PRODUCT_XML_ID == '')
96 $PRODUCT_XML_ID = $arBasket["PRODUCT_ID"];
97
98 echo " <".GetMessage("Article")." ".GetMessage("Catalog")."=\"".$CATALOG_XML_ID."\" ".GetMessage("Product")."=\"".$PRODUCT_XML_ID."\" ".GetMessage("Unit")."=\"\" ".GetMessage("Amount")."=\"".$arBasket["QUANTITY"]."\" ".GetMessage("Price")."=\"".$arBasket["PRICE"]."\" ".GetMessage("Sum")."=\"".(DoubleVal($arBasket["PRICE"])*intval($arBasket["QUANTITY"]))."\" ".GetMessage("Description")."=\"".htmlspecialcharsbx($arBasket["NAME"])."\"/>\n";
99 }
100 echo " </".GetMessage("Document").">\n";
101
102 if (!in_array("BC".$f_USER_ID, $arContra))
103 {
104 $arContra[] = "BC".$f_USER_ID;
105
106 $db_user = CUser::GetByID($f_USER_ID);
107 $arUser = $db_user->Fetch();
108
109 $contra_mail = "";
110 $contra_name = $arUser["NAME"]." ".$arUser["LAST_NAME"];
111 $contra_other = "";
112 $db_props = CSaleOrderPropsValue::GetOrderProps($f_ID);
113 while ($arProps = $db_props->Fetch())
114 {
115 if ($arProps["IS_EMAIL"]=="Y")
116 $contra_mail = $arProps["VALUE"];
117 if ($arProps["IS_PAYER"]=="Y")
118 $contra_name = $arProps["VALUE"];
119 if ($arProps["TYPE"]=="LOCATION")
120 {
121 $arLocs = CSaleLocation::GetByID($arProps["VALUE"], LANG);
122 $contra_other .= $arProps["PROPERTY_NAME"]."=".$arLocs["COUNTRY_NAME"]." - ".$arLocs["CITY_NAME"];
123 }
124 else
125 {
126 $contra_other .= $arProps["PROPERTY_NAME"]."=".$arProps["VALUE"];
127 }
128 $contra_other .= " // ";
129 }
130
131 echo " <".GetMessage("Company")." ".GetMessage("ID")."=\"BC".$f_USER_ID."\" ".GetMessage("Name")."=\"".htmlspecialcharsbx($contra_name)."\" ".GetMessage("DisplayName")."=\"".htmlspecialcharsbx($contra_name)."\" ".GetMessage("Address")."=\"\" ".GetMessage("JuridicAddress")."=\"\" ".GetMessage("WWW")."=\"\" ".GetMessage("Comment")."=\"".htmlspecialcharsbx($contra_other)."\">\n";
132 echo " <".GetMessage("Contact")." ".GetMessage("ID")."=\"B".$f_USER_ID."\" ".GetMessage("Name")."=\"".GetMessage("Contact")."\">\n";
133 echo " <".GetMessage("ContactMan").">".htmlspecialcharsbx($arUser["NAME"]." ".$arUser["LAST_NAME"])." (".htmlspecialcharsbx($contra_name).")</".GetMessage("ContactMan").">\n";
134 echo " <".GetMessage("E-mail").">".htmlspecialcharsbx($contra_mail)."</".GetMessage("E-mail").">\n";
135 echo " </".GetMessage("Contact").">\n";
136 echo " </".GetMessage("Company").">\n";
137 }
139
140echo " <".GetMessage("Company")." ".GetMessage("ID")."=\"".$SALER_COMPANY_XML_ID."\"/>\n";
141echo " </".GetMessage("CommerceInfo").">\n";
142echo "</Body></BizTalk>";
143
144$content = ob_get_contents();
145ob_end_clean();
146
147header('Pragma: public');
148header('Cache-control: private');
149header('Accept-Ranges: bytes');
150header("Content-Type: application/xml");
151header('Content-Length: ' . strlen($content));
152header("Content-Disposition: attachment; filename=order.xml");
153
154echo $content;
155die();
156?>
static GetOrderProps($ORDER_ID)
Определения order_props_values.php:149
static GetByID($ID)
Определения user.php:3820
static GetList($arOrder=array(), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения basket.php:33
static GetPropsList($arOrder=array(), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения basket.php:317
static GetByID($primary, $strLang=LANGUAGE_ID)
Определения location.php:118
static GetList($arOrder=array("TAX_NAME"=> "ASC"), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения order_tax.php:7
if(!empty($by)) $dbOrderList
Определения commerceml.php:40
$dbOrderTax
Определения commerceml.php:56
$content
Определения commerceml.php:144
$arContra
Определения commerceml.php:48
if(!in_array("BC". $f_USER_ID, $arContra)) endwhile
Определения commerceml.php:102
$SALER_COMPANY_XML_ID
Определения commerceml.php:11
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$filter
Определения iblock_catalog_list.php:54
const LANG_CHARSET
Определения include.php:65
htmlspecialcharsbx($string, $flags=ENT_COMPAT, $doubleEncode=true)
Определения tools.php:2701
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
Определения tools.php:3778
GetMessage($name, $aReplace=null)
Определения tools.php:3397
$order
Определения payment.php:8
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
die
Определения quickway.php:367
if(CSalePaySystemAction::GetParamValue("DATE_PAY_BEFORE", false)) $dbBasket
Определения html.php:162
$arFilter
Определения user_search.php:106