Skip to content

Instantly share code, notes, and snippets.

@EscApp2
EscApp2 / SaleOrderSavedHelp.php
Last active February 29, 2024 10:34
оплата заказа по ссылке pay link
<?
class SaleOrderSavedHelp{
static $ORDER_PROP_GROUPS = array();
static $ORDER_PROP = array();
public static function getOrder($ORDER_ID){
\Bitrix\Main\Loader::includeModule('sale');
$obOrder = false;
if(is_numeric($ORDER_ID)){
$obOrder = \Bitrix\Sale\Order::load($ORDER_ID);
@EscApp2
EscApp2 / init.txt
Last active February 20, 2024 08:51
shipment logic
Ошибка DDCT_DEDUCTION_QUANTITY_ERROR при отключенном резервировании
"Недостаточное количество товара #PRODUCT_NAME# (##PRODUCT_ID#) для отгрузки"
Проверить 'PRODUCT_PROVIDER_CLASS'
'PRODUCT_PROVIDER_CLASS' => '\CCatalogProductProvider', // неверно
'PRODUCT_PROVIDER_CLASS' => '\Bitrix\Catalog\Product\CatalogProvider', // верно
CModule::IncludeModule("sale");
@EscApp2
EscApp2 / init.php
Created February 16, 2024 10:59
basket_help 2
// при нажатии галочки отключить акцию для использования промокода или дисконтной карты
AddEventHandler("main", "OnProlog", "isBasketAction");
function isBasketAction(){
global $APPLICATION;
if(defined('ADMIN_SECTION')){
return true;
}
$page = $APPLICATION->GetCurPage(true);
if(strpos($page, 'sale.basket.basket/ajax.php') === false){
@EscApp2
EscApp2 / update-force.php
Created February 15, 2024 09:20 — forked from MrWhiteD/update-force.php
[Принудительное повторное обновление ядра Bitrix]
Обновить ядро, перезагрузить только файлы PHP битрикса возможно повторно.
Для этого необходимо перейти на страницу обновления и в адресную строку добавить ключ:
/bitrix/admin/update_system.php?BX_SUPPORT_MODE=Y
Начиная где-то с 18 версии параметр запроса немного изменился, теперь он выглядит BX_SUPPORT_PROTOCOL + порядковый номер дня без ведущего нуля, генерируется из даты на сервере
date('j', time());
К примеру на 10 января запрос будет следующий
@EscApp2
EscApp2 / script.js
Created February 14, 2024 15:31
catalog.smart.filter работа с дробями делителями, округлением, default catalog smart filter
JCSmartFilter.prototype.gatherInputsValues = function (values, elements)
{
if(elements)
{
for(var i = 0; i < elements.length; i++)
{
var el = elements[i];
if (el.disabled || !el.type)
continue;
@EscApp2
EscApp2 / event.php
Last active January 17, 2024 16:12
find delect location in sale order ajax
<?
//установить начальное местоположение в заказе из местоположения в блоке в хедере
\Bitrix\Main\EventManager::getInstance()->addEventHandlerCompatible(
'sale',
'OnSaleComponentOrderProperties',
'fillLocationFromHeaderLocation_mwi_31513'
);
function fillLocationFromHeaderLocation_mwi_31513(&$arUserResult, $request, &$arParams, &$arResult)
{
//https://estrin.pw/bitrix-d7-snippets/s/sale-order-ajax-default-location/
https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=42&LESSON_ID=20558&LESSON_PATH=3912.4580.4828.3069.20558
https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=42&LESSON_ID=3458#:~:text=%D0%A1%D1%82%D0%B0%D0%B2%D0%BA%D0%B0%20%D0%9D%D0%94%D0%A1%20%D0%B4%D0%BB%D1%8F%20%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0,%3E%20%D0%9D%D0%B0%D0%BB%D0%BE%D0%B3%D0%B8%20%3E%20%D0%A1%D1%82%D0%B0%D0%B2%D0%BA%D0%B8%20%D0%9D%D0%94%D0%A1).
1)Создал новую ставку 20%; /bitrix/admin/cat_vat_admin.php?lang=ru
2)Поставить НДС для всего каталога (товар и ТП) /bitrix/admin/settings.php?lang=ru&mid=catalog&mid_menu=1
2.1)Или вручную установить у каждого товара
2.2)Или написать код, который будет устанавливать ндс из 1с
3)Установить галочку у всех доставок
@EscApp2
EscApp2 / event.php
Created December 18, 2023 14:29
Закрыть доступ на сайт для всех кроме
<?
function isUserInOneOfGroups($ar_groups){
global $USER;
$arGroups = $USER->GetUserGroupArray();
$ar_diff = array_diff($ar_groups, $arGroups);
if(count($ar_diff) != count($ar_groups)){
return true;
}
return false;
}
@EscApp2
EscApp2 / calc_coupon_discount.php
Created December 18, 2023 14:25
добавить промокод в total блок для оформления заказа
<? class calcCouponDiscount{
public static function getValueForBasket($coupon){
if(!$coupon){
return false;
}
\Bitrix\Main\Loader::includeModule('sale');
\Bitrix\Main\Loader::includeModule('catalog');
@EscApp2
EscApp2 / event.php
Last active December 18, 2023 14:23
bitrix sale order ajax sale.order.ajax обязательные required поля при разной доставке или платежной системе | стирать адрес
<?
function getDeliveryWithPVZ(){
return array('boxberry:PVZ_COD','boxberry:PVZ', 'sdek:pickup', 'sdek:postamat');
}
// Дом обязательно для заполнения
Bitrix\Main\EventManager::getInstance()->addEventHandler(
'sale',
'OnSaleComponentOrderProperties',