Shopping Cart Plugin
სწრაფი ნავიგაცია 1 Route map 2 main.tpl ინტეგრაცია 3 AJAX + DLEPush 4 Stock + Coupons 5 Product tags 6 Header tags 7 Cart tags 8 Checkout tags 9 Order / Invoice tags 10 Component tags 11 Payment templates 1 Rou...
Shopping Cart Plugin
1 Route map და არქიტექტურა
პლაგინი მუშაობს DLE index.php?do=... route-ებით. ქვემოთ არის ძირითადი გვერდები და მათი მოდულები.
| Route | მოდული | როლი |
|---|---|---|
index.php?do=cart |
engine/modules/ticcix/cart.php |
კალათა, რაოდენობის განახლება, coupon apply/remove, AJAX payload |
index.php?do=checkout |
engine/modules/ticcix/checkout.php |
checkout ფორმა, billing, order create |
index.php?do=order&id=... |
engine/modules/ticcix/order.php |
ორდერის დეტალები, payment actions, shipping/digital ბლოკები |
index.php?do=invoice&id=... |
engine/modules/ticcix/invoice.php |
ინვოისი |
index.php?do=userorders |
engine/modules/ticcix/userorders.php |
მომხმარებლის შეკვეთების სია |
index.php?do=paypal_pay&id=... |
engine/modules/paypal_pay.php |
PayPal session/redirect |
index.php?do=bog_pay&id=... |
engine/modules/bog_pay.php |
BOG session/redirect |
შენიშვნა: checkout/order/invoice/userorders route-ები plugin hook-იდან იტვირთება, ამიტომ ქეში/plugin ფაილებში include ჩანაწერების არსებობა ნორმალურია.
2 main.tpl ინტეგრაცია (სავალდებულო)
რომ header კალათა ცოცხლად განახლდეს, აქტიური თემის main.tpl-ში ჩასვი {cart_header}. (მაგ: templates/Default/main.tpl ან შენი სხვა theme)
<!-- Header / Navigation -->
<div class="site-nav">
<a href="/">Home</a>
<a href="/index.php?do=cart">Cart</a>
{cart_header}
</div>
Product view-ში: shortstory.tpl და fullstory.tpl უნდა იყენებდეს {product-button} და საჭირო [product]...[/product] ბლოკებს.
3 AJAX + DLEPush (გვერდის reload-ის გარეშე)
პლაგინი frontend assets-ით აბამს submit event-ს და fetch-ით აგზავნის მოთხოვნას ajax=1 პარამეტრით. წარმატებაზე აჩვენებს DLEPush.info, შეცდომაზე DLEPush.error.
სავალდებულო CSS class-ები
{product-button}შიგნით ფორმები:tx-add-to-cart-form,tx-cart-control-form- კალათის ფორმები (
cart.tpl,cart_items.tpl) ასევეtx-cart-control-form
DOM hooks
- Header root:
data-cart-header-root - Counter:
data-cart-count - Total:
data-cart-total - Cart page wrapper:
data-tx-cart-page - Product actions wrapper:
data-tx-product-actions="{item_id}"
| AJAX response key | დანიშნულება |
|---|---|
success, message |
DLEPush/toast შეტყობინება |
count, count_text, total_text |
header counter/total update |
header_html |
header cart სრული block-ის ჩანაცვლება |
cart_page_html |
კალათის გვერდის სრული HTML-ის ჩანაცვლება |
item_id, item_qty, product_actions_html |
კონკრეტული პროდუქტის action ბლოკის განახლება |
4 Stock limit + Coupon წესები
Stock კონტროლი
- ფიზიკური პროდუქტი: რაოდენობა იზღუდება
stock-ით. - ციფრული/ვირტუალური: stock არ იზღუდება.
- თუ მარაგი 3-ია, კალათაში 3-ზე მეტს ვერ დაამატებ.
- შეტყობინება მოდის key-ებით:
stock_limit_reached,out_of_stock.
Coupon სისტემა
- Admin:
/admin.php?mod=orders&tab=coupons - ტიპები: percent, fixed cart, fixed product.
- ვადები: მინ. თანხა, მაქს. დისკაუნტი, product targeting, free shipping.
- იგივე კოდის შენახვა — არსებული კუპონის განახლებაა.
{label_applied_coupon} რომ ყოველთვის ჩანდეს სწორად: გამოიყენე მხოლოდ [discountuse]...[/discountuse] ბლოკში (cart/checkout/order/invoice).
[discountuse]
<div class="coupon-pill">{label_applied_coupon} ({discount})</div>
[/discountuse]
12 ყველაზე მნიშვნელოვანი პრაქტიკული წესები
- აქტიური თემის
main.tpl-ში აუცილებლად გქონდეს{cart_header}. {product-button}-ის ფორმების class-ები არ შეცვალო:tx-add-to-cart-form/tx-cart-control-form.cart.tplდაempty.tpl-ში დატოვეdata-tx-cart-page, თორემ AJAX replace აღარ იმუშავებს.{label_applied_coupon}გამოიყენე[discountuse]ბლოკში (cart/checkout/order/invoice).- stock limit სწორად მუშაობს მხოლოდ ფიზიკურ პროდუქტებზე; digital/virtual პროდუქტებზე ლიმიტი არ იჭრება.
- თუ theme-ს ცვლი,
templates/Default/cart/*შესაბამისად გადაიტანე შენს აქტიურ theme folder-ში.
გჭირდებათ დახმარება?
პასუხები ყველაზე ხშირად დასმულ კითხვებზე.