Сніпет 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+])