8 заметок с тегом
Магазин
Получить минимальную цену товара в разделе
7 ноября 2016, 15:04
function getMinPriceBySectionID($sectionID){ $CATALOG_ID = 4; $rsProducts = CIBlockElement::GetList( Array('CATALOG_GROUP_1' => 'ASC'), Array('IBLOCK_ID' => $CATALOG_ID, 'SECTION_ID' => $sectionID), false, Array('nTopCount' => 1), Array('IBLOCK_ID', 'ID', 'NAME', 'CATALOG_GROUP_1') ); $arProducts = $rsProducts->Fetch(); $price = $arProducts["CATALOG_PRICE_1"]; if (!empty( $price)) return App::priceFormat($price); else return false; }
Интернет магазин: склонения
22 июня 2016, 11:21
Склонения числительных
/** * Функция склонения числительных в русском языке * * @param int $number Число которое нужно просклонять * @param array $titles Массив слов для склонения * @return string * @example: echo 'Я знаю '.declOfNum(5, array('язык', 'языка', 'языков')); */ function declOfNum($number, $titles) { $cases = array (2, 0, 1, 1, 1, 2); return $titles[ ($number%100 > 4 && $number %100 < 20) ? 2 : $cases[min($number%10, 5)] ]; }
Склонения существительных
я использовал библиотеку phpMorphy
Интернет магазин: формат цены
20 июня 2016, 22:57
$formattedPrice = number_format($price, 0, '.', ' ').' р.';
Интернет Магазин: Каталог
10 февраля 2016, 19:15
Получить базовую цену товара по его ID
$productID = $arResult["ID"]; $arBasePrice = CPrice::GetBasePrice($productID); dump($arBasePrice["PRICE"]);
Получить список торговых предложений по ID товара из основного каталога
$arOffers = CIBlockPriceTools::GetOffersArray();
Вызов метода с параметрами
$arOffersFilter =array( "IBLOCK_ID"=>$arParams["IBLOCK_ID"], // ID торгового каталога "HIDE_NOT_AVAILABLE"=>"Y", "SHOW_PRICE_COUNT"=>true); $arOffersOrder = array("sort"=>"asc","id"=>"desc"); $arSelectFields = array("NAME"); $arSelectProps = array( "CML2_ARTICLE", "CML2_COLOR", "CML2_SIZE", "PREVIEW_PICTURE", "DETAIL_PICTURE" ); $arOffersLimit = 0; $arOffersPrices = array( "Розница"=> array( "ID"=>1, "TITLE"=>"Цена", "SELECT"=>"CATALOG_GROUP_1", "CAN_VIEW"=>true, "CAN_BUY"=>true) ); $arVat = false; $arOffers = CIBlockPriceTools::GetOffersArray( $arOffersFilter, array($productID), // ID товара из основного каталога $arOffersOrder, $arSelectFields, $arSelectProps, $arOffersLimit, $arOffersPrices, $arVat,array() ); dump($arOffers);
Интернет магазин: Фильтры
9 февраля 2016, 16:54
Фильтр по количеству товара в магазине
$arFilter[">CATALOG_QUANTITY"]=0; // кол-во товаров больше 0
Фильтр по цене товара
$arFilter["=CATALOG_PRICE_1"]=135; // цена = 135 р
Интернет Магазин: Оглавление
6 февраля 2016, 14:58
Оглавление
- Каталог товаров
- Список Разделов
- Деталка или Карточка товара
- Рекомендуемые товары
- Акции
- С эти товаром покупают
- Фильтры
- Интеграция с 1С
- Корзина
- Заказы
- Формат цены
- Склонения
- Работа с файлами
Bitrix: Акции
27 июля 2015, 11:09
Общая архитектура Акций в e-commerce
Контентщики готовят анонс акции с описанием акции в инфоблоках
- Название акции
- Условия её проведения
- Дата и время начала акции
- Дата и время окончания акции
и у нас появляется ID акции ~/promo/12345/
Реализация Акций на Битрикс
в e-commerce используется термин promotions
нам понадобиться таблица Акции (b_promotions)
create table IF NOT EXISTS b_promotions( ID INT(18) AUTO_INCREMENT, NAME VARCHAR(255) COMMENT "Название акции", ACTIVE CHAR(1) COMMENT " Активность акции" NOT NULL DEFAULT 'N' , DESCRIPTION TEXT COMMENT "Описание акции" NULL, DATE_START DATETIME COMMENT "Дата начала акции" NULL, DATE_END DATETIME COMMENT "Дата окончания акции" NULL, DURATION INT COMMENT "unixtime длительность акции" NULL , PRIMARY KEY(ID) ) ENGINE=InnoDB ;
=== а) Дано: интернет магазин на "1с-битрикс: Бизнес", каталог, корзина и оформление заказа реализованы нативными компонентами (catalog, sale.basket.basker, sale.order.full). Задача: реализовать акцию "Каждый N товар за X рублей". У акции должны быть настройки, где выставляется период активности акции, параметры N и X ===
Cookie: Удалить
29 июня 2015, 16:01
Удаляем куку
/** * удаляем куку с именем $cookieName * @example * $this->clearCookie("DISCOUNT_NO"); * */ protected function clearCookie($cookieName) { $negativeTime = 3600*24*10; setcookie($cookieName, '', time() - $negativeTime,"/"); }