当前位置: 首页>>代码示例>>PHP>>正文


PHP CSaleBasket::CheckFields方法代码示例

本文整理汇总了PHP中CSaleBasket::CheckFields方法的典型用法代码示例。如果您正苦于以下问题:PHP CSaleBasket::CheckFields方法的具体用法?PHP CSaleBasket::CheckFields怎么用?PHP CSaleBasket::CheckFields使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CSaleBasket的用法示例。


在下文中一共展示了CSaleBasket::CheckFields方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: _Update

 function _Update($ID, &$arFields)
 {
     global $DB;
     $ID = (int) $ID;
     //CSaleBasket::Init();
     if (!CSaleBasket::CheckFields("UPDATE", $arFields, $ID)) {
         return false;
     }
     foreach (GetModuleEvents("sale", "OnBeforeBasketUpdateAfterCheck", true) as $arEvent) {
         if (ExecuteModuleEventEx($arEvent, array($ID, &$arFields)) === false) {
             return false;
         }
     }
     $arOldFields = false;
     $updateHistory = isset($arFields["ORDER_ID"]) && (int) $arFields["ORDER_ID"] > 0;
     $strUpdate = $DB->PrepareUpdate("b_sale_basket", $arFields);
     if (!empty($strUpdate)) {
         if ($updateHistory) {
             $oldOrderIterator = CSaleBasket::GetList(array(), array('ID' => $ID), false, false, array_keys($arFields));
             $arOldFields = $oldOrderIterator->Fetch();
         }
         $strSql = "update b_sale_basket set " . $strUpdate . ", DATE_UPDATE = " . $DB->GetNowFunction() . " where ID = " . $ID;
         $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
     } else {
         $updateHistory = false;
     }
     if (isset($arFields["PROPS"]) && !empty($arFields["PROPS"]) && is_array($arFields["PROPS"])) {
         $sql = "delete from b_sale_basket_props where BASKET_ID = " . $ID;
         $bProductXml = false;
         $bCatalogXml = false;
         foreach ($arFields["PROPS"] as $prop) {
             if (!isset($prop['CODE'])) {
                 continue;
             }
             if ($prop["CODE"] == "PRODUCT.XML_ID") {
                 $bProductXml = true;
             }
             if ($prop["CODE"] == "CATALOG.XML_ID") {
                 $bCatalogXml = true;
             }
             if ($bProductXml && $bCatalogXml) {
                 break;
             }
         }
         if (!$bProductXml) {
             $sql .= " and CODE <> 'PRODUCT.XML_ID'";
         }
         if (!$bCatalogXml) {
             $sql .= " and CODE <> 'CATALOG.XML_ID'";
         }
         $DB->Query($sql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         if (!$bProductXml || !$bCatalogXml) {
             $sql = "delete from b_sale_basket_props where BASKET_ID = " . $ID . " and CODE IS NULL";
             $DB->Query($sql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         }
         foreach ($arFields["PROPS"] as $prop) {
             if (!isset($prop["NAME"])) {
                 continue;
             }
             $prop["NAME"] = (string) $prop["NAME"];
             if ($prop["NAME"] != '') {
                 $arInsert = $DB->PrepareInsert("b_sale_basket_props", $prop);
                 $strSql = "INSERT INTO b_sale_basket_props(BASKET_ID, " . $arInsert[0] . ") VALUES(" . $ID . ", " . $arInsert[1] . ")";
                 $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
             }
         }
     }
     if ($updateHistory) {
         CSaleOrderChange::AddRecordsByFields($arFields["ORDER_ID"], $arOldFields, $arFields, array('PROPS'), "BASKET");
     }
     foreach (GetModuleEvents("sale", "OnBasketUpdate", true) as $arEvent) {
         ExecuteModuleEventEx($arEvent, array($ID, $arFields));
     }
     return true;
 }
开发者ID:DarneoStudio,项目名称:bitrix,代码行数:75,代码来源:basket.php

示例2: _Update

	function _Update($ID, &$arFields)
	{
		global $DB;

		$ID = (int)$ID;
		//CSaleBasket::Init();

		if (!CSaleBasket::CheckFields("UPDATE", $arFields, $ID))
			return false;

		foreach(GetModuleEvents("sale", "OnBeforeBasketUpdateAfterCheck", true) as $arEvent)
			if (ExecuteModuleEventEx($arEvent, array($ID, &$arFields))===false)
				return false;

		$arOldFields = CSaleBasket::GetByID($ID);

		$strUpdate = $DB->PrepareUpdate("b_sale_basket", $arFields);
		if(!empty($strUpdate))
		{
			$strSql = "update b_sale_basket set ".$strUpdate.", DATE_UPDATE = ".$DB->GetNowFunction()." where ID = ".$ID;
			$DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__);
		}

		if (isset($arFields["PROPS"]) && !empty($arFields["PROPS"]) && is_array($arFields["PROPS"]))
		{
			$sql = "delete from b_sale_basket_props where BASKET_ID = ".$ID;

			$bProductXml = false;
			$bCatalogXml = false;
			foreach($arFields["PROPS"] as $prop)
			{
				if ($prop["CODE"] == "PRODUCT.XML_ID")
					$bProductXml = true;

				if ($prop["CODE"] == "CATALOG.XML_ID")
					$bCatalogXml = true;

				if ($bProductXml && $bCatalogXml)
					break;
			}
			if (!$bProductXml)
				$sql .= " and CODE <> 'PRODUCT.XML_ID'";
			if (!$bCatalogXml)
				$sql .= " and CODE <> 'CATALOG.XML_ID'";
			$DB->Query($sql, false, "File: ".__FILE__."<br>Line: ".__LINE__);
			if (!$bProductXml || !$bCatalogXml)
			{
				$sql = "delete from b_sale_basket_props where BASKET_ID = ".$ID." and CODE IS NULL";
				$DB->Query($sql, false, "File: ".__FILE__."<br>Line: ".__LINE__);
			}

			foreach($arFields["PROPS"] as $prop)
			{
				if(strlen($prop["NAME"]) > 0)
				{
					$arInsert = $DB->PrepareInsert("b_sale_basket_props", $prop);
					$strSql = "INSERT INTO b_sale_basket_props(BASKET_ID, ".$arInsert[0].") VALUES(".$ID.", ".$arInsert[1].")";
					$DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__);
				}
			}
		}

		if (isset($arFields["ORDER_ID"]) && (int)$arFields["ORDER_ID"] > 0)
			CSaleOrderChange::AddRecordsByFields($arFields["ORDER_ID"], $arOldFields, $arFields, array(), "BASKET");

		foreach(GetModuleEvents("sale", "OnBasketUpdate", true) as $arEvent)
			ExecuteModuleEventEx($arEvent, Array($ID, $arFields));

		return true;
	}
开发者ID:ASDAFF,项目名称:1C_Bitrix_info_site,代码行数:70,代码来源:basket.php

示例3: Add

 /**
  * <p>Метод добавляет товар в корзину, если его ещё нет, и обновляет параметры товара с увеличением количества, если он уже находится в корзине. В массиве <b>arFields</b> перечисляются все параметры товара, которые нужны для работы модуля Интернет-магазина (т.е. этот модуль не зависит от других модулей и работает полностью самостоятельно). Метод динамичный.</p> <p>Интернет-магазин не зависит от других модулей, поэтому товары в корзину модуля продаж могут добавляться из любого места (например, из торгового каталога или со статической страницы). Для некоторых модулей существуют функции - оболочки, облегчающие добавление товара в корзину (например, для модуля <b>catalog</b> существуют функции <b>Add2Basket</b> и <b>Add2BasketByProductID</b>). </p>
  *
  *
  * @param array $arFields  Ассоциативный массив параметров элемента корзины, содержащий
  * следующие ключи: <ul> <li> <b>PRODUCT_ID</b> - уникальный в рамках модуля код
  * товара (обязательное поле);</li> <li> <b>PRODUCT_PRICE_ID</b> - ID (идентификатор)
  * конкретного ценового предложения товара, пришедшего в корзину.
  * Может быть использован в классе <a
  * href="http://dev.1c-bitrix.ru/api_help/catalog/classes/cprice/index.php">CPrice</a> модуля Catalog для
  * получения детальной информации о цене.</li> <li> <b> PRICE</b> - стоимость
  * единицы товара (обязательное поле);</li> <li> <b>CURRENCY</b> - валюта
  * стоимости единицы товара (обязательное поле), если валюта
  * отличается от базовой валюты для данного сайта, то стоимость
  * будет автоматически сконвертирована по текущему курсу;</li> <li>
  * <b>WEIGHT</b> - вес единицы товара;</li> <li> <b>QUANTITY</b> - количество единиц
  * товара;</li> <li> <b>LID</b> - сайт, на котором сделана покупка
  * (обязательное поле);</li> <li> <b>DELAY</b> - флаг "товар отложен" (Y/N);</li> <li>
  * <b>CAN_BUY</b> - флаг "товар можно купить" (Y/N) - может устанавливаться
  * автоматически про наличии функции обратного вызова для
  * поддержки актуальности корзины;</li> <li> <b>NAME</b> - название товара
  * (обязательное поле);</li> <li> <b>PRODUCT_XML_ID</b> - внешний код товара
  * (необходим при обмене заказами с 1С);</li> <li> <b>CATALOG_XML_ID</b> - внешний
  * код каталога (необходим при обмене заказами с 1С);</li> <li> <b>ORDER_ID</b> -
  * идентификатор заказа. Ключ будет пустым, если товар еще не
  * добавлен в заказ;</li> <li> <b>CALLBACK_FUNC<font color="#FF0000">*</font></b> - название
  * функции обратного вызова для поддержки актуальности корзины
  * (описание ниже);</li> <li> <b>MODULE</b> - модуль, добавляющий товар в
  * корзину;</li> <li> <b>NOTES</b> - особые заметки, например, тип цены;</li> <li>
  * <b>ORDER_CALLBACK_FUNC<font color="#FF0000">*</font></b> - название функции обратного
  * вызова для оформления заказа (описание ниже);</li> <li> <b>DETAIL_PAGE_URL</b> -
  * ссылка на страницу детального просмотра товара;</li> <li>
  * <b>CANCEL_CALLBACK_FUNC<font color="#FF0000">*</font></b> - название функции обратного
  * вызова для отмены заказа (описание ниже);</li> <li> <b>PAY_CALLBACK_FUNC<font
  * color="#FF0000">*</font></b> - название функции обратного вызова, которая
  * вызывается при установке флага "Доставка разрешена" заказа;</li> <li>
  * <b>FUSER_ID</b> - идентификатор пользователя интернет-магазина,
  * необязательный параметр, по умолчанию CSaleBasket::GetBasketUserID() (текущий
  * пользователь);</li> <li> <b>DISCOUNT_PRICE</b> - величина скидки;</li> <li>
  * <b>DISCOUNT_NAME</b> - название скидки;</li> <li> <b>DISCOUNT_VALUE</b> - размер скидки (в
  * процентах);</li> <li> <b>DISCOUNT_COUPON</b> - купон скидки;</li> <li> <b>PROPS</b> - массив
  * свойств товара, который сохраняется в корзине. Каждый элемент
  * этого массива является массивом следующего формата: <pre
  * class="syntax"><code>array("NAME" =&gt; "Название свойства", "CODE" =&gt; "Код свойства",
  * "VALUE" =&gt; "Значение свойства", "SORT" =&gt; "Индекс сортировки")</code></pre> </li>
  * <li> <b>PRODUCT_PROVIDER_CLASS<font color="#0000FF">**</font></b> - содержит имя класса,
  * реализующего интерфейс <b> IBXSaleProductProvider</b>. Торговый каталог
  * записывает в это поле имя класса <b>CCatalogProductProvider</b>. Если поле
  * пусто, то возникает попытка использовать старые поля:<b>CALLBACK_FUNC</b>,
  * <b>ORDER_CALLBACK_FUNC</b>, <b>CANCEL_CALLBACK_FUNC</b> и <b>PAY_CALLBACK_FUNC</b>.</li> </ul>
  *
  * @return int <p>Метод возвращает код элемента корзины, в который попал данный
  * товар.</p> <a name="examples"></a>
  *
  * <h4>Example</h4> 
  * <pre>
  * &lt;?<br>if (CModule::IncludeModule("sale"))<br>{<br>  $arFields = array(<br>    "PRODUCT_ID" =&gt; 51,<br>    "PRODUCT_PRICE_ID" =&gt; 0,<br>    "PRICE" =&gt; 138.54,<br>    "CURRENCY" =&gt; "RUB",<br>    "WEIGHT" =&gt; 530,<br>    "QUANTITY" =&gt; 1,<br>    "LID" =&gt; LANG,<br>    "DELAY" =&gt; "N",<br>    "CAN_BUY" =&gt; "Y",<br>    "NAME" =&gt; "Чемодан кожаный",<br>    "CALLBACK_FUNC" =&gt; "MyBasketCallback",<br>    "MODULE" =&gt; "my_module",<br>    "NOTES" =&gt; "",<br>    "ORDER_CALLBACK_FUNC" =&gt; "MyBasketOrderCallback",<br>    "DETAIL_PAGE_URL" =&gt; "/".LANG."/detail.php?ID=51"<br>  );<br><br>  $arProps = array();<br><br>  $arProps[] = array(<br>    "NAME" =&gt; "Цвет",<br>    "CODE" =&gt; "color",<br>    "VALUE" =&gt; "черный"<br>  );<br><br>  $arProps[] = array(<br>    "NAME" =&gt; "Размер",<br>    "VALUE" =&gt; "1.5 x 2.5"<br>  );<br><br>  $arFields["PROPS"] = $arProps;<br><br>  CSaleBasket::Add($arFields);<br>}<br>?&gt;<br>
  * 
  * 
  * 
  * //пример на проверку создания покупателя
  * 
  * $userId=XXX;//id пользователя
  * //получаем FUSER_ID, если покупатель для данного пользователя существует
  * $FUSER_ID=CSaleUser::GetList(array('USER_ID' =&gt; $userId));
  * //если покупателя нет - создаем его
  * if(!$FUSER_ID['ID'])                  
  *        $FUSER_ID['ID']=CSaleUser::_Add(array("USER_ID" =&gt; $userId)); //обратите внимание на нижнее подчеркивание перед Add
  * //если не получается создать покупателя - то тут уж ничего не поделаешь
  * if(!$FUSER_ID['ID']){         
  *  echo "Error while creating SaleUser";      
  *  die();      
  * }
  * $FUSER_ID=$FUSER_ID['ID'];
  * //теперь переменную $FUSER_ID можно использовать для добавления товаров в корзину пользователя с $userId.
  * 
  * 
  * Смотрите также:
  * 
  * <li><a href="/api_help/catalog/interface.php">Взаимодействие торгового каталога и магазина</a></li>
  * </pre>
  *
  *
  * @static
  * @link http://dev.1c-bitrix.ru/api_help/sale/classes/csalebasket/csalebasket__add.php
  * @author Bitrix
  */
 public static function Add($arFields)
 {
     global $DB, $APPLICATION;
     if (isset($arFields["ID"])) {
         unset($arFields["ID"]);
     }
     $isOrderConverted = \Bitrix\Main\Config\Option::get("main", "~sale_converted_15", 'N');
     CSaleBasket::Init();
     if (!CSaleBasket::CheckFields("ADD", $arFields)) {
         return false;
     }
     if (!array_key_exists('IGNORE_CALLBACK_FUNC', $arFields) || 'Y' != $arFields['IGNORE_CALLBACK_FUNC']) {
         if (array_key_exists("CALLBACK_FUNC", $arFields) && !empty($arFields["CALLBACK_FUNC"]) || array_key_exists("PRODUCT_PROVIDER_CLASS", $arFields) && !empty($arFields["PRODUCT_PROVIDER_CLASS"])) {
//.........这里部分代码省略.........
开发者ID:andy-profi,项目名称:bxApiDocs,代码行数:101,代码来源:basket.php

示例4: _Update

 function _Update($ID, &$arFields)
 {
     global $DB;
     $ID = IntVal($ID);
     //CSaleBasket::Init();
     if (!CSaleBasket::CheckFields("UPDATE", $arFields, $ID)) {
         return false;
     }
     foreach (GetModuleEvents("sale", "OnBeforeBasketUpdateAfterCheck", true) as $arEvent) {
         if (ExecuteModuleEventEx($arEvent, array($ID, &$arFields)) === false) {
             return false;
         }
     }
     $strUpdate = $DB->PrepareUpdate("b_sale_basket", $arFields);
     if (strlen($strUpdate) > 0) {
         $strSql = "UPDATE b_sale_basket SET " . "\t" . $strUpdate . ", " . "\tDATE_UPDATE = " . $DB->GetNowFunction() . " " . "WHERE ID = " . $ID . " ";
         $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
     }
     if (is_array($arFields["PROPS"]) && count($arFields["PROPS"]) > 0) {
         $sql = "DELETE FROM b_sale_basket_props WHERE BASKET_ID = " . $ID;
         $bProductXml = false;
         $bCatalogXml = false;
         foreach ($arFields["PROPS"] as $prop) {
             if ($prop["CODE"] == "PRODUCT.XML_ID") {
                 $bProductXml = true;
             }
             if ($prop["CODE"] == "CATALOG.XML_ID") {
                 $bCatalogXml = true;
             }
             if ($bProductXml && $bCatalogXml) {
                 break;
             }
         }
         if (!$bProductXml) {
             $sql .= " AND CODE <> 'PRODUCT.XML_ID'";
         }
         if (!$bCatalogXml) {
             $sql .= " AND CODE <> 'CATALOG.XML_ID'";
         }
         $DB->Query($sql);
         foreach ($arFields["PROPS"] as $prop) {
             if (strlen($prop["NAME"]) > 0) {
                 $arInsert = $DB->PrepareInsert("b_sale_basket_props", $prop);
                 $strSql = "INSERT INTO b_sale_basket_props(BASKET_ID, " . $arInsert[0] . ") " . "VALUES(" . $ID . ", " . $arInsert[1] . ")";
                 $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
             }
         }
     }
     foreach (GetModuleEvents("sale", "OnBasketUpdate", true) as $arEvent) {
         ExecuteModuleEventEx($arEvent, array($ID, $arFields));
     }
     return True;
 }
开发者ID:k-kalashnikov,项目名称:geekcon_new,代码行数:53,代码来源:basket.php

示例5: Add

	/**
	 * <p>Функция добавляет товар в корзину, если его ещё нет, и обновляет параметры товара с увеличением количества, если он уже находится в корзине. В массиве <b>arFields</b> перечисляются все параметры товара, которые нужны для работы модуля Интернет-магазина (т.е. этот модуль не зависит от других модулей и работает полностью самостоятельно).</p> <p>Интернет-магазин не зависит от других модулей, поэтому товары в корзину модуля продаж могут добавляться из любого места (например, из торгового каталога или со статической страницы). Для некоторых модулей существуют функции - оболочки, облегчающие добавление товара в корзину (например, для модуля <b>catalog</b> существуют функции <b>Add2Basket</b> и <b>Add2BasketByProductID</b>). </p>
	 *
	 *
	 *
	 *
	 * @param array $arFields  Ассоциативный массив параметров элемента корзины, содержащий
	 * следующие ключи: <ul> <li> <b>PRODUCT_ID</b> - уникальный в рамках модуля код
	 * товара (обязательное поле);</li> <li> <b>PRODUCT_PRICE_ID</b> - дополнительный
	 * код товара;</li> <li> <b> PRICE</b> - стоимость единицы товара (обязательное
	 * поле);</li> <li> <b>CURRENCY</b> - валюта стоимости единицы товара
	 * (обязательное поле), если валюта отличается от базовой валюты для
	 * данного сайта, то стоимость будет автоматически сконвертирована
	 * по текущему курсу;</li> <li> <b>WEIGHT</b> - вес единицы товара;</li> <li>
	 * <b>QUANTITY</b> - количество единиц товара;</li> <li> <b>LID</b> - сайт, на котором
	 * сделана покупка (обязательное поле);</li> <li> <b>DELAY</b> - флаг "товар
	 * отложен" (Y/N);</li> <li> <b>CAN_BUY</b> - флаг "товар можно купить" (Y/N) - может
	 * устанавливаться автоматически про наличии функции обратного
	 * вызова для поддержки актуальности корзины;</li> <li> <b>NAME</b> - название
	 * товара (обязательное поле);</li> <li> <b>CALLBACK_FUNC<font color="#FF0000">*</font></b> -
	 * название функции обратного вызова для поддержки актуальности
	 * корзины (описание ниже);</li> <li> <b>MODULE</b> - модуль, добавляющий товар в
	 * корзину;</li> <li> <b>NOTES</b> - особые заметки, например, тип цены;</li> <li>
	 * <b>ORDER_CALLBACK_FUNC<font color="#FF0000">*</font></b> - название функции обратного
	 * вызова для оформления заказа (описание ниже);</li> <li> <b>DETAIL_PAGE_URL</b> -
	 * ссылка на страницу детального просмотра товара;</li> <li>
	 * <b>CANCEL_CALLBACK_FUNC<font color="#FF0000">*</font></b> - название функции обратного
	 * вызова для отмены заказа (описание ниже);</li> <li> <b>PAY_CALLBACK_FUNC<font
	 * color="#FF0000">*</font></b> - название функции обратного вызова, которая
	 * вызывается при установке флага "Доставка разрешена" заказа;</li> <li>
	 * <b>FUSER_ID</b> - идентификатор пользователя интернет-магазина,
	 * необязательный параметр, по умолчанию CSaleBasket::GetBasketUserID() (текущий
	 * пользователь);</li> <li> <b>PROPS</b> - массив свойств товара, который
	 * сохраняется в корзине. Каждый элемент этого массива является
	 * массивом следующего формата: <pre class="syntax"><code>array("NAME" =&gt; "Название
	 * свойства", "CODE" =&gt; "Код свойства", "VALUE" =&gt; "Значение свойства", "SORT"
	 * =&gt; "Индекс сортировки")</code></pre> </li> <li> <b>PRODUCT_PROVIDER_CLASS<font
	 * color="#0000FF">**</font></b> - содержит имя класса, реализующего интерфейс <b>
	 * IBXSaleProductProvider</b>. Торговый каталог записывает в это поле имя класса
	 * <b>CCatalogProductProvider</b>. Если поле пусто, то возникает попытка
	 * использовать старые поля:<b>CALLBACK_FUNC</b>, <b>ORDER_CALLBACK_FUNC</b>,
	 * <b>CANCEL_CALLBACK_FUNC</b> и <b>PAY_CALLBACK_FUNC</b>.</li> </ul>
	 *
	 *
	 *
	 * @return int <p>Функция возвращает код элемента корзины, в который попал данный
	 * товар.</p><a name="examples"></a>
	 *
	 *
	 * <h4>Example</h4> 
	 * <pre>
	 * &lt;?<br>if (CModule::IncludeModule("sale"))<br>{<br>  $arFields = array(<br>    "PRODUCT_ID" =&gt; 51,<br>    "PRODUCT_PRICE_ID" =&gt; 0,<br>    "PRICE" =&gt; 138.54,<br>    "CURRENCY" =&gt; "RUB",<br>    "WEIGHT" =&gt; 530,<br>    "QUANTITY" =&gt; 1,<br>    "LID" =&gt; LANG,<br>    "DELAY" =&gt; "N",<br>    "CAN_BUY" =&gt; "Y",<br>    "NAME" =&gt; "Чемодан кожаный",<br>    "CALLBACK_FUNC" =&gt; "MyBasketCallback",<br>    "MODULE" =&gt; "my_module",<br>    "NOTES" =&gt; "",<br>    "ORDER_CALLBACK_FUNC" =&gt; "MyBasketOrderCallback",<br>    "DETAIL_PAGE_URL" =&gt; "/".LANG."/detail.php?ID=51"<br>  );<br><br>  $arProps = array();<br><br>  $arProps[] = array(<br>    "NAME" =&gt; "Цвет",<br>    "CODE" =&gt; "color",<br>    "VALUE" =&gt; "черный"<br>  );<br><br>  $arProps[] = array(<br>    "NAME" =&gt; "Размер",<br>    "VALUE" =&gt; "1.5 x 2.5"<br>  );<br><br>  $arFields["PROPS"] = $arProps;<br><br>  CSaleBasket::Add($arFields);<br>}<br>?&gt;<br>
	Смотрите также:
	<li><a href="/api_help/catalog/interface.php">Взаимодействие торгового каталога и магазина</a></li>
	 * </pre>
	 *
	 *
	 * @static
	 * @link http://dev.1c-bitrix.ru/api_help/sale/classes/csalebasket/csalebasket__add.php
	 * @author Bitrix
	 */
	public static function Add($arFields)
	{
		global $DB;

		if (isset($arFields["ID"]))
			unset($arFields["ID"]);

		CSaleBasket::Init();
		if (!CSaleBasket::CheckFields("ADD", $arFields))
			return false;

		foreach(GetModuleEvents("sale", "OnBeforeBasketAdd", true) as $arEvent)
			if (ExecuteModuleEventEx($arEvent, Array(&$arFields))===false)
				return false;

		$bFound = false;
		$bEqAr = false;

		$boolProps = (array_key_exists('PROPS', $arFields) && !empty($arFields["PROPS"]) && is_array($arFields["PROPS"]));

		$db_res = CSaleBasket::GetList(
			array(),
			array(
				"FUSER_ID" => $arFields["FUSER_ID"],
				"PRODUCT_ID" => $arFields["PRODUCT_ID"],
				"LID" => $arFields["LID"],
				"ORDER_ID" => "NULL"
			),
			false,
			false,
			array("ID", "QUANTITY")
		);
		while($res = $db_res->Fetch())
		{
			if(!$bEqAr)
			{
				$arPropsCur = array();
				$arPropsOld = array();

//.........这里部分代码省略.........
开发者ID:ASDAFF,项目名称:bxApiDocs,代码行数:101,代码来源:basket.php


注:本文中的CSaleBasket::CheckFields方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。