Сніпет Shopkeeper

    Опис

    Сніпет виводить кошик замовлень двох типіп (розширений і простий).

    Сніпет можна викликати на сторінці декілька разів, але кошик виводиться тільки в місці першого виклика. Другий і наступні виклики ігноруються.

    Приклад: Якщо кошик на сторінках каталогу товарів знаходиться в правій колонці шаблона, а на сторінці оформлення заказу виклик сніпета вставлений в контент сторінки, то на цій сторінці кошик буде виведений тільки в центральній колонці (в правій виклик сніпета можна не прибирати).

    Параметри сніпета

    Параметр Опис і значення Значення за замовчуванням Примітка
    &lang мова Мова системи керування В данний час доступні мови:
    `russian`, `english`, `german`, `francais`
    &style стиль кошика default
    (assets/snippets/shopkeeper/style/default/)
    &style=`0` - якщо не потрібен окремий стильовий файл для кошика
    &cartType тип кошика
    full - розширений,
    small - простий,
    empty - тільки очистка кошика без виведення на сторінці
    full  
    ¤cy валюта руб.  
    &priceTV ім'я TV-параметру, який використовується для ціни. price Якщо ваш TV для ціни має назву не "price", обов'язково вкажіть це ім'я в даному параметрі.
    &orderFormPage ID сторінки з формою замовлення 1 обов'язковий параметр
    &noJQuery=`1` якщо на сайті вже використовується бібліотека JQuery 0  
    &noConflict=`1` если на сайті використовується інша JS-бібліотека (не JQuery), наприклад Mootools, Prototype. 0  
    &noCounter приховувати (значення `1`) або ні (значення `0`) лічильник товарів при додаванні в кошик 0  
    &linkAllow=`0` Виводить назви товарів в кошику без посилань. 1 Якщо цей параметр вказаний (=`0`) на сторінці оформлення заказу, лист з складом замовлення і список товарів в модулі будуть без посилань.
    &stuffCont CSS-селектор елемента, всередині якого знаходиться інформація про товар. div.shk-item Приклад чанка: chunk_shopStuff.tpl
    &debug=`1` запустити отладку JavaScript-функцій (виведення інформації) 0  
    &tplPath шлях до папки з чанками `assets/snippets/shopkeeper/chunks/ru/`
    &cartTpl чанк з шаблоном кошика @FILE:chunk_shopCart.tpl Чанк вміщає одразу 3 шаблони - для порожнього, заповненого розширеного і простого кошика.
    якщо чанки зберігаються в файлах, можно дізнатись шлях з командою "@FILE:". Якщо чанки створенні в системі управління, то вказується тільки ім'я чанка (наприклад &cartTpl=`shopCart`)
    &cartRowTpl чанк шаблону рядка з інформацією товару в розширеному кошику @FILE:chunk_shopCartRow.tpl  
    &cartHelperTpl чанк шаблону "хелпера" - блок, який з'являється для підтвердження дій -  
    &additDataTpl чанк для додаткових параметрів товарів в кошику ([+addit_data+]) -  
    &orderDataTpl чанк списку товарів в звіті про замовлення ([+orderData+]) - Використовується в листі з звітом про замовлення (eForm &report) і в модулі.
    &flyToCart дія при додаванні товару в кошик.
    helper - з'являється блок з лічильником кількості товарів і летить в кошик,
    image - в кошик летить картинка товару
    nofly - в кошик нічого не летить;
    `helper` При &flyToCart=`image` тег <img> повинен мати CSS-клас "shk-image"
    &noLoader=`1` не показувати прелоадер (анімаційна картинка) 0  
    &excepDigitGroup=`1` розділяти числа цін в кошику на розряди 1  
    &changePrice=`1` при зміні параметрів з ціною - змінюється цвна товару, а індекс з плюсом не з'являється 0  
    &counterField=`1` додати до всіх полів <input name="shk-count"> (кількість товару) стрілки більше/менше 0  
    &noJavaScript=`1` Робота без JavaScript. 0 Зверніть увагу, що в чанку "shopCart" кнопка "Пересчитать" знаходиться всередині тега "noscript". Якщо використовується режим &noJavaScript=`1`, рекомендується тег "noscript" видалити.
    &hideOn Вимкнути кошик на сторінці 0 Зазвичай використовується в вивлику сніпета короткого виду кошику. Вказується ID сторніки з докладним видом кошика (оформление заказа). На этой странице краткий вид корзины будет отключен.

    Приклади

    Простий виклик:

    [!Shopkeeper? &priceTV=`price` &orderFormPage=`10`!]

    Розширений виклик:

    [!Shopkeeper? 
    &cartType=`small`
    &priceTV=`price`
    &orderFormPage=`10`
    &changePrice=`1` 
    &counterField=`1` 
    &flyToCart=`nofly`
    !]

    Шаблони (чанки) і плейсхолдери

    Параметр сніпета Опис Плейсхолдери в шаблоні Примітка
    &cartTpl (&cartType=`full`) шаблон розширеного кошика [+inner+] - рядок з інформацією про товар (cartRowTpl);
    [+price_total+] - Загальна сума;
    [+this_page_url+] - URL поточної сторінки;
    [+empty_url+] - URL для очистки кошика;
    [+order_page_url+] - URL сторінки оформлення замовлення;
    [+currency+] - валюта;
    Приклад: chunk_shopCart.tpl
    (містить 3 шаблони кошика)

    <!--tpl_separator--> - роздільник шаблонів (видаляти неможна)
    &cartTpl (&cartType=`small`) шаблон спрощеного кошика [+price_total+] - загальна сума;
    [+total_items+] - Число обраних товарів;
    [+plural+] - слово "товар" в множині залежно від числа выбранних товарів;
    [+this_page_url+] - URL поточної сторінки;
    [+empty_url+] - URL для очистки кошика;
    [+order_page_url+] - URL сторінки оформлення замовлення;
    [+currency+] - валюта
    &cartRowTpl шаблон рядка з інформацією про товар в розширеному кошику [+id+] - ID товару (документа);
    [+name+] - назва товару;
    [+link+] - посилання на сторінку товару;
    [+addit_data+] - рядок з інформацією про додаткові параметри товару;
    [+price+] - ціна;
    [+price_total+] - ціна товару + додаткові параметри;
    [+price_count+] - ціна товару * кількість;
    [+currency+] - валюта;
    [+count+] - кількість;
    [+this_page_url+] - URL поточної сторінки;
    [+index+] - номер товару в кошику (від нуля);
    [+будь-який TV+] - будь-який TV-параметр, наприклад [+image+];
    [+shk_будь-який TV+] - будь-який додатковий параметр, обраний при додаванні товарк в кошик (із [+addit_data+]), наприклад [+shk_param1+].
    Приклад: chunk_shopCartRow.tpl і chunk_shopCartRow2.tpl
    &additDataTpl шаблон для додаткових параметрів товарів в кошику ([+addit_data+]) [+param+] - ім'я і ціна параметру. Ціна вказується в дужках. Якщо ціна = 0, то пишеться тільки назва параметру (без дужок);
    [+name+] - ім'я параметру;
    [+price+] - ціна параметру;
    Приклад: chunk_additDataTpl.tpl
    &orderDataTpl шаблон списку товарів в звіті про замовлення ([+orderData+]) Все плейсхолдери чанку &cartRowTpl

    [+loop+], [+end_loop+] - початок і кінець рядка даних товарів (цикл).
    Приклад: chunk_orderDataTpl.tpl
    &report (eForm) шаблон тексту листа з складу замовлення [+orderData+] - склад замовлення (список покупок);
    [+orderID+] - номер замовлення;
    Приклад: chunk_shopOrderReport.tpl і chunk_shopOrderReportWebUser.tpl
    Сторінка, на якій викликається сніпет Shopkeeper [+totalItems+] - кількість товару в кошику;
    [+totalPrice+] - загальна ціна товару в кошику;

    Необхідні CSS-класи, Id і імена полів

    Для повноцінної работи Shopkeeper необхідні наступні css-класи, id і імена полів:

    Шаблон CSS-класи id HTML-елементів Імена полів s кнопок Примітка
    Шаблон виведення інформації товару shk-item - клас "обертаючого" елементу блока з інформацією про товар;
    shk-image - картинка товару (якщо використовується &flyToCart=`image`);
    shk-price -клас элементу з ціною товару.
    shk-id - ім'я прихованого поля з id товару;
    shk-count - ім'я прихованого поля з кількістю товару.
    Приклад chunk_shopStuff.tpl
    Шаблон кошика shopCart - id "огортаючого" елемента блоку кошика;
    butEmptyCart - id кнопки-силки очистки кошика;
    butOrder - id посилання на сторінку оформлення товару.
    shk_recount - кнопка "Перерахувати".
    Приклад chunk_shopCart.tpl
    Шаблон рядка інформації про товар в кошику shk-del - кнопка-посилання видалення товару.
    count[] - ім'я полей з кількістью товару.
    Приклад chunk_shopCartRow.tpl
    Шаблон форми замовлення email - поле "E-mail";
    phone - поле "Телефон"
    Приклад chunk_shopOrderForm.tpl і chunk_shopOrderFormWebUser.tpl

    CSS-класи (і id) використовуються в JS-функціях Shopkeeper'а.

    Поради

    Дві і більше ціни для одного товару

    Для цього потрібно створити дві або більше форми (form) і в полі name="shk-id" після ID написати ім'я TV з ціною.

    Приклад:

    <input type="hidden" name="shk-id" value="[+id+]__price2">

    При submit форми в корзині додасться ціна з TV-параметру з іменем "price2".

    Додавання в кошик даних, не створюючи TV-параметри

    Приклад:

    <input type="text" name="test__[*id*]__add" value="додаткові дані" />

    В кошик додасться параметр, який можна виводити в месці вставки плейсхолдера [+test+] (виведетсья "додаткові дані").

    Події для плагінів

    • OnSHKFrontendInit - ініціалізація сніпета Shopkeeper в зовнішній частині.
    • OnSHKChangeStatus - зміна статусу замовлення.
    • OnSHKOrderDescRender - виведення докладної информації про замовлення в модулі.
    • OnSHKMailApprovedForPayment - відправка листа при статусі "Прийнятий до оплати". Плагін може додавати в лист додаткову інформацію ([+plugin+]).
    • OnSHKcartLoad - завантаження кошика (вивід інформації в чанку &cartTpl - [+plugin+]).
    • OnSHKstatusSendMail - відправка листа про зміну статусу.
    • OnSHKmodRenderTopLinks - вивід силок у верхній частині в модуля Shopkeeper.
    • OnSHKmodPagePrint - вивід сторінки модуля. Можна використовувати для створення своєї сторінки(див. приклад OnSHKmodPagePrint_plugin_example.txt).
    • OnSHKbeforeSendOrder - перед відправленням замовлення. Можна використовувати для зміни полів ($fields).
    • OnSHKsaveOrder - збереження замовлення.
    • OnSHKcalcTotalPrice - розрахунок загальної вартості.

    В папці shopkeeper/docs/ є приклади плагінів.

    "Сallback-функції" на JavaScript

    • setCartActionsCallback - перезавантаження кошика,
    • fillCartCallback - додавання товару в кошик,
    • emptyCartCallback - очищення кошику.

    Просто створіть функції з такими іменами і вони будуть викликатися при відповідних діях.

    Приклади чанків в папці install/examples/

    • chunk_shopCart.tpl - чанк кошика. Може бути використаний як значення параметру & cartTpl при виклику Shopkeeper. Чанк містить відразу 3 шаблони - для порожнього, заполненого расширеного і заполненого простого кошика.
    • chunk_shopCartRow.tpl - чанк шаблону рядки з інформацією товару в розширеній кошику.
    • chunk_shopCartRow2.tpl - приклад з картинкою (TV - image) и умовою PHx.
    • chunk_shopStuff.tpl - чанк короткої інформації про товар. Може бути використаний як значення параметру & tpl при виклику Ditto.
    • chunk_shopStuff_2.tpl - приклад з двома цінами для одного товару (продаж і прокат).
    • chunk_shopToCart.tpl - може бути використаний в шаблоні сторінки докладного опису товару або можна вставляти виклик чанку {{shopToCart}} в візуальний редактор.
    • chunk_shopCartHelper.tpl - чанк шаблону "хелпера" - блока, який з'являється для підтвердження дій.
    • chunk_additDataTpl.tpl - шаблон для додаткових параметрів товарів в кошику.
    • chunk_shopOrderForm.tpl - чанк форма оформлення замовлення. Може бути використаний як значення параметру &tpl при виклику eForm.
    • chunk_shopOrderFormWebUser.tpl - чанк форма оформлення замовлення для зареєстрованих користувачів.
    • chunk_shopOrderReport.tpl - чанк листа з інформацією про замовлення. Може бути використаний як значення параметра &report при виклику eForm.
    • chunk_shopOrderReportWebUser.tpl - чанк листа з інформацією про замовлення для зареєстрованих користувачів.
    • chunk_FormSignup.tpl - приклад чанка з шаблоном форми реєстрації для сніпета WebSignup.
    • chunk_weblogin.tpl - приклад чанка з шаблоном форми авторизації сніпета WebLogin.
    • chunk_orderDataTpl.tpl - шаблон списку товарів в звіті про замовлення ([+orderData+])