beeralex / beeralex.catalog
My catalog helpers Bitrix module
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:bitrix-module
pkg:composer/beeralex/beeralex.catalog
Requires
- beeralex/beeralex.core: ~1.2
- hflabs/dadata: *
README
Расширенная система управления каталогом товаров для Bitrix с унифицированными интерфейсами для работы с товарами, предложениями (SKU), корзиной, заказами и системой продаж.
Основные возможности
- 🛍️ Работа с товарами и предложениями через репозитории
- 💰 Система цен и скидок с применением купонов
- 🛒 Расширенное управление корзиной покупателя
- 📦 Обработка заказов и свойств заказа
- 🌍 Автоматическое определение местоположения через DaData API
- 💳 Кастомные чеки и ограничения для касс/платежей
- 🔍 Быстрый поиск товаров по каталогу
Требования
- PHP 8.2+
- Bitrix Framework 25.0+ (рекомендуемая для php 8.2)
- Модули:
beeralex.core
Установка
- Разместите модуль в
/local/modules/beeralex.catalog/ - Установите через административную панель Bitrix
- Модуль автоматически зарегистрирует все сервисы в DI контейнере
Быстрый старт
use Beeralex\Catalog\Service\CatalogService; use Beeralex\Catalog\Service\Basket\BasketFactory; // Получение товаров с предложениями и скидками $catalogService = service(CatalogService::class); $products = $catalogService->getProductsWithOffers([1, 2, 3], true, true); // Работа с корзиной $basketFactory = service(BasketFactory::class); $basketService = $basketFactory->createBasketServiceForCurrentUser(); $basketService->increment($offerId = 123, $quantity = 2);
Переопределение репозиториев
Создайте свой класс-наследник:
namespace App\Repository; use Beeralex\Catalog\Repository\ProductsRepository as BaseRepository; class ProductsRepository extends BaseRepository { public function getProducts(array $productIds, bool $onlyActive = true): array { $products = parent::getProducts($productIds, $onlyActive); // Ваша дополнительная логика return $products; } }
Зарегистрируйте в /local/.settings_extra.php:
use Beeralex\Catalog\Enum\DIServiceKey; use App\Repository\ProductsRepository; return [ 'services' => [ 'value' => [ DIServiceKey::PRODUCT_REPOSITORY->value => [ 'constructor' => static function () { return new ProductsRepository(...); } ], ] ] ];
Основные компоненты
Репозитории
ProductsRepository- работа с товарамиOffersRepository- работа с предложениями (SKU)PriceRepository- работа с ценамиStoreRepository- работа со складами
Сервисы
CatalogService- основной сервис каталогаBasketService- управление корзинойOrderService- обработка заказовSearchService- поиск товаровPriceService- расчет и форматирование цен
Геолокация
BitrixLocationResolver- определение локации в BitrixDadataService- интеграция с DaData API
Расширения Sale
PrepaymentCheck- исправленный чек частичной предоплатыUserRestriction- ограничение по пользователямMyPriceExtraService- кастомная цена доставки
Документация
Полная документация доступна в папке docs/:
- Подробное описание модуля
- Репозитории
- Сервисы
- Корзина и скидки
- Система геолокации
- Расширения Sale
- Примеры использования
Поддержка
При возникновении вопросов обращайтесь к разработчикам модуля.
Лицензия
Проприетарный модуль. © beeralex