Skip to content

Instantly share code, notes, and snippets.

@EscApp2
EscApp2 / gist:039034bb9a921c358081bf90a5e4efe6
Last active November 9, 2023 12:41
NAV_ORDER_MAKE bitrix order make support class
<?
class NAV_ORDER_MAKE{
function MergeOrderProps($arResult,$sort=true){
if(isset($arResult['ORDER_PROP']['USER_PROPS_MERGE'])){
return $arResult;
}
if (!is_array($arResult["ORDER_PROP"]["USER_PROPS_Y"]) && is_array($arResult["ORDER_PROP"]["USER_PROPS_N"])){
$arResult['ORDER_PROP']['USER_PROPS_MERGE'] = $arResult["ORDER_PROP"]["USER_PROPS_N"];
return $arResult;
@EscApp2
EscApp2 / gist:cf3e33ec18a682553c018deea248ac86
Created August 12, 2016 10:56
Ошибка удаления элемента #325. [Ошибка при удалении в CCatalogDocs::OnBeforeIBlockElementDelete (catalog): Некоторые проведенные документы складского учета содержат данный товар.]
http://skill.vpvd.ru/oshibka-udaleniya-tovara.html
1) Оключить складской учет
2) Обнуть остатки товара
3) включить складской учет
4) Перейти в Мазазин->Складской учет->Документы
5) Отменить (обратить) проводку документов
По необходимости:
6) Удалить документ
7) Оключить складской учет
@EscApp2
EscApp2 / ajax.php
Last active December 7, 2023 12:46
favorite, favorite class for bitrix| favorites v2 на свойстве UF_FAVORITES
<?
define("NO_KEEP_STATISTIC", true); // Не собираем стату по действиям AJAX
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
$action = (string)$_REQUEST['action'];
if($action == "addToFav"){
$id = (int)$_REQUEST['id'];
if($id>0){
nav_favorite::addToFav($id);
@EscApp2
EscApp2 / setTitle.php
Last active July 29, 2020 15:05
bitrix set title, set properties, set meta after ajax
<?
function setTitle($Mess = false){
if(!empty($Mess)){
global $APPLICATION;
$APPLICATION->SetTitle($Mess);
?>
<script type="text/javascript">
document.title = "<?=CUtil::JSEscape($Mess);?>";
</script>
<?
<?
class nav_catalog{
function canBuy($arItem){
if(isset($arItem['OFFERS']) && !empty($arItem['OFFERS'])){
$can_buys = array();
foreach($arItem['OFFERS'] as $offer){
$can_buys[] = self::canBuy($offer);
}
$can_buy = "N";
@EscApp2
EscApp2 / wrapPhpCache.php
Last active July 31, 2023 10:01
bitrix wrap php cache
<?
if(!function_exists("wrapPhpCache")){
function wrapPhpCache(){
//$MainParam, $Callable, $FunctionParam = false
//$Callable, $MainParam, $FunctionParam = false
//$MainParam, $Callable, $FunctionParam1, $FunctionParam2 ....
$arArgs = func_get_args();
$_MParams = $arArgs[0];
$_MCallable = $arArgs[1];
@EscApp2
EscApp2 / init.php
Last active April 19, 2024 09:04
bitrix get last viewed products
// sku_id=>element_id
function GetLastViewed($limit = false){
// \bitrix\components\bitrix\catalog.viewed.products\class.php #657
$map = array();
if (!Bitrix\Main\Loader::includeModule('catalog')){
return array();
}
if (!Bitrix\Main\Loader::includeModule('sale')){
return array();
@EscApp2
EscApp2 / ajax.php
Last active November 29, 2023 09:49
bitrix, add to delay , add_to_delay
<?php
define("NO_KEEP_STATISTIC", true); // Не собираем стату по действиям AJAX
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
$ajax_action = strval($_REQUEST['ajax_action']);
if($ajax_action == 'AddToDelay'){
$arParams = $_REQUEST['arParams'];
\Bitrix\Main\Loader::includeModule('iblock');
@EscApp2
EscApp2 / temp.php
Last active April 23, 2019 06:46
Получить STORE_ID (id склада) из заказа CSaleOrder bitrix
<?
//original http://leovy.ru/programmirovanie/cms/1s_bitriks/kak-uznat-id-sklada-iz-zapisi-zakaza-1s_bitriks
// bitrix ver < 16.0
CModule::IncludeModule('sale');
$ORDER_ID = 1;
$arOrder = CSaleOrder::GetByID($ORDER_ID);
echo $arOrder["STORE_ID"];
// bitrix ver >=16.0
@EscApp2
EscApp2 / .settings.php
Last active August 5, 2021 12:35
bitrix cache example
<?php
return array (
'utf_mode' =>
array (
'value' => true,
'readonly' => true,
),
'cache_flags' =>
array (
'value' =>