Телеграм: @camouf_ru Почта: mihail@bazarow.ru

Ограничение служб доставки по наличию товара на складе

Внимание! все сообщения проходят премодерацию. Ваше сообщение появится после проверки
Ответить
RSS
Ограничение служб доставки по наличию товара на складе, Ограничение служб доставки по наличию товара на складе для расчета стоимости и отображения вариантов в карточке товара
 
Всем привет.
Предыстория: В карточке товара вывел варианты "доставки и самовывоза",
с 00:01 до 23:00 у меня выводится: Самовывоз сегодня - бесплатно , а с 23:00 до 00:01: Самовывоз сегодня - бесплатно
Также ограничил вывод по дням недели, так как в выходные работаем с 9:00 до 18:00. Все казалось бы прекрасно, но некоторых товаров естественно нет в наличии и мне не нужно, чтобы в карточке таких товаров отображался вариант самовывоза. Хочу там выводить только: Доставка на следующий день.

Так вот, пытаюсь ограничить службу доставки по наличию товара на складе, то есть у товаров с нулевым остатком, я не буду выводить службу доставки "Самовывоз".

Пробую сделать так:
Код
//ограничение по наличию товара на складах (если 0, то отправит false).
$arQuantity = CCatalogProduct::GetByID($arResult['ID']);
$quantityAll = $arQuantity['QUANTITY'];

if ($quantityAll > 0) {
    return true;
} else {
    return false;
}
Но, количество не передается в файл php с ограничением службы доставки. Как можно решить проблему?
Изменено: Максим Морозов - 14.07.2020 19:54:00
 
Цитата
Максим Морозов написал:
Всем привет.
Пробую сделать так:  
Код
 //ограничение по наличию товара на складах (если 0, то отправит false).
$arQuantity = CCatalogProduct::GetByID($arResult['ID']);
$quantityAll = $arQuantity['QUANTITY'];

if ($quantityAll > 0) {
    return true;
} else {
    return false;
}
 
Но, количество не передается в файл php с ограничением службы доставки. Как можно решить проблему?


Как-то сложно понять до конца устройсво решения. Но, если что, количество уже есть в массиве элемента, его можно не получать через API
Код
<?=$arResult['CATALOG_QUANTITY'] ?>
для предложения, соответсвенно
Код
<?= $arOffer['CATALOG_QUANTITY'] ?>

Но с самой задачкой до конца не понятно
Изменено: Михаил Базаров - 15.07.2020 10:19:51
 
У меня есть компонент отображения и модуля ограничения служб доставок:
Компонент edost.catalogdelivery выводит службы доставки в карточку товара.
Модуль alkodesign.restrictions добавляет ограничение служб доставки и оплаты по php строке вида return (true/false) или имя функции.

С помощью ограничения по php строке я сделал в разных службах доставки вот такие ограничения по дням недели и времени:

Код
<?php
//ограничение по времени работы (с "время открытия" до "время закрытия"), использую для "Самовывоз сегодня".
$now = new \DateTimeImmutable();
$startWork = new \DateTimeImmutable("08:00");
$endWork = new \DateTimeImmutable("23:00");

if ($startWork <= $now && $now <= $endWork) {
    return true;
} else {
    return false;
}

//ограничение по времени работы (с "время открытия" до "время закрытия"), использую для "Самовывоз завтра".
$now = new \DateTimeImmutable();
$startWork = new \DateTimeImmutable("23:00");
$endWork = new \DateTimeImmutable("+1 day 08:00");

if ($startWork <= $now && $now <= $endWork) {
    return true;
} else {
    return false;
}

//ограничение по дням работы (суббота и воскресенье).
$now = (new \DateTimeImmutable())->format('w');

if ($now === '6'|| $now === '0') {
    return true;
} else {
    return false;
}

//ограничение по дням работы (искулючаем субботу и воскресенье).
$now = (new \DateTimeImmutable())->format('w');

if ($now !== '6'|| $now !== '0') {
    return true;
} else {
    return false;
}
?>
Таким же образом хотел бы ограничить и по наличию товара. Штатно можно ограничить по наличию какого-то товара в корзине. Но как правильно передать значения наличия товара в мой php код я не знаю, Ваш способ тоже не помог. Думаю проблема в том, что он почему-то не определяет ID товара и не может подгрузить количество.
Думаю я добавил ясности в эту тему)
Спасибо, что пытаетесь помочь, если вдруг знаете, как такое решить и поможете, буду весьма благодарен!
 
 
Стандартное ограничение Битрикс "по категории" для доставок работает если в корзине только товары из выбранной категории, если в корзине есть товар не из выбранной категории, то ограничение не работает.

Как можно это поправить, чтобы такое ограничение работало, если в корзине хотя бы 1 товар с ограничением, то работало доставка именно для ограничений?  
Ответить
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Загрузить картинки
 
Заметки разработчика

Примерно с 2013-го года пишу, короткие и не очень, заметки по разработке сайтов на Битрикс. Возможно, будут полезны кому-то еще. Во всех заметках есть возможность комментирования и обсуждения. Вы можете задавать уточняющие вопросы прямо там- отвечаю или дополняю заметки по возможности.

Заказaть разработку attention