123 - PHP Online
Form of PHP Sandbox
Enter Your PHP code here for testing/debugging in the Online PHP Sandbox. As in the usual PHP files, you can also add HTML, but do not forget to add the tag <?php
in the places where the PHP script should be executed.
Result of php executing
Full code of 123.php
- #-------------ТУТ ВАШ КОД
- #Что нужно сделать: Загрузить XML в PHP (рекомендую simplexml_load_file). Далее вывести на экран каждый элемент со свойствами
- #Цель: Аккуратно окунуть Вас в работу с самим PHP и посмотреть у кого возникнут сложности с чистым PHP. Далее мы имея данные в массивах/обьектах научимся загружать это непосредственно в Bitrix.
- #-------------КОНЕЦ КОДА
- $_xml = simplexml_load_file("data/data.xml");
- $el = new CIBlockElement;
- foreach ($_xml->product as $product) {
- # Приводим объект к типу массив
- $product = xml2array($product);
- # Массив полей элемента инфоблока для добавления
- $arFields = array(
- "NAME" => $product["NAME"],
- "CODE" => $product["CODE"],
- "IBLOCK_SECTION_ID" => $product["SECTION_ID"],
- "DETAIL_TEXT" => $product["DESCRIPTION"],
- "IBLOCK_ID" => BLK_CATALOG_ID,
- "ACTIVE" => "Y"
- );
- # начинаем добавлять элементы в инфоблок
- if($prod_id = $el->Add($arFields)) {
- pre('Добавлен товар с ID: ' . $prod_id);
- # добавляем параметры торгового каталога для товара
- $arFields = array(
- "ID" => $prod_id,
- "QUANTITY" => 0
- );
- # Обновляем / Добавляем параметры товара
- CCatalogProduct::Add($arFields);
- # Проходим по торговым предложениям товара
- foreach ($product["OFFERS"]["OFFER"] as $offer) {
- # заполняем свойства торгового предложения
- $propsOffer = array(
- "CML2_LINK" => $prod_id,
- "QTY_LEGS" => $offer->QTY_LEGS
- );
- # Заполняем поля торгового предложения (элемента инфоблока)
- $arOffersFields = array(
- "NAME" => implode(', ', [$product["NAME"], $offer->SIZE_FIELD, $offer->GAME_TYPE]),
- "IBLOCK_ID" => BLK_CATALOG_OFFERS_ID,
- "PROPERTY_VALUES" => $propsOffer,
- "ACTIVE" => "Y"
- );
- if($offerId = $el->Add($arOffersFields)) {
- pre('Добавлен оффер с ID: ' . $offerId);
- # добавляем параметры торгового каталога для торгового предложения
- $arOffersFields = array(
- "ID" => $offerId,
- "QUANTITY" => 39,
- "WEIGHT" => $offer->VES
- );
- # Обновляем / Добавляем параметры торгового предложения
- CCatalogProduct::Add($arOffersFields);
- }else {
- pre("Ошибка офера");
- $el->LAST_ERROR;
- }
- }
- }else {
- pre("Ошибка при добавлении товара");
- pre($el->LAST_ERROR);
- }
- break;
- }