- shares
- Facebook Messenger
- Gmail
- Viber
- Skype
Trong bài viết hướng dẫn này, chúng ta sẽ học cách tùy biến shipping trong prestashop giúp tăng doanh số bán hàng bằng cách cho khách hàng biết về chính sách vân chuyển hàng hóa miễn phí (free shipping). Bài viêt này mình sử dụng Prestashop 1.6
Cấu hình Free shipping
Để cho mọi thứ đơn giản, chúng ta sẽ chỉ thay đổi giá trị thuộc tính Free shipping starts at, bạn có thể cấu hình trong trang quản lý Prestashop, thay vì sửa từng giá trị với 0-fee weight hoặc sủ dụng khoảng giá, nó có thể cài đặt cho từng loại shipping.
Bởi vậy, trước khi bắt đầu chúng ta sẽ thiết lập mọi giá trị cho tùy chọn “Free shipping starts at” bạn có thể làm điều này bằng cách truy cập vào menu Shipping -> Preferences. Chú ý: cài đặt này áp dụng cho đơn vị tiền tệ mặc định, và nó không thể sửa cho các đơn vị tiền tệ khác, nếu bạn sử dụng để thanh toán thêm ở các quốc gia khác.
Nhận giá trị Free shipping
Với 2 cách tiếp cận, khi bạn làm việc với mô hình MVC, cách tiếp cận tốt nhất là dữ được cấu trúc và hiển thị code không chồng chéo.
Template trong Prestashop cũng cho phép chúng ta thiết lập cấu hình, tiết kiệm thời gian mỗi khi phát triển tính năng bạn không phải gặp những lỗi hoặc những cản trở với thói quen code cứng nhắc không linh hoạt. Để tạo lớp control kế thừa lớp sử lý đặt hàng mặc định của Prestashop OrderController
, là nơi bạn thiết lập giá trị cần thiết.
Do đó, cách tốt nhất sẽ tạo một phương thức chèn đè và lấy các giá trị cấu hình (configuration) sau đó đưa nó vào template. Để cho đơn giản mình sẽ làm trực tiếp trong template.
Sửa đổi shopping-cart.tpl
Mở thư mục chứa theme, chọn và sửa file shopping-cart.tpl. Chúng ta sẽ thêm một dòng quản cáo nhỏ hiển thị bên dưới thông tin giỏ hàng. Đó là nguyên lý cơ bản về cross-selling bạn muốn bán được nhiều hàng phải có trương trình khuyến mại. Vì vậy, nếu bạn sử dụng module cross-selling trong trang giỏ hàng, hãy đặt maximize your cross-selling rate bên trên trước shopping cart hook.
Tìm dòng sau:
<div id="HOOK_SHOPPING_CART">{$HOOK_SHOPPING_CART}</div>
Chèn trước dòng trên bởi dòng sau:
{assign var='freeshipping_price' value=Configuration::get('PS_SHIPPING_FREE_PRICE')}
Giải thích: như tôi đề cập ở trước, tôi lấy giá trị free shipping trực tiếp trên file .tpl và gán nó vào biến mà có thể sử dụng trong mọi Prestashop template khác.
Sau đó, chúng ta sẽ kiểm tra hoạt động của biến trong một template.
{assign var='freeshipping_price' value=Configuration::get('PS_SHIPPING_FREE_PRICE')} {if $freeshipping_price} {assign var='freeshipping_price_converted' value={toolsConvertPrice price=$freeshipping_price}} {/if}
Giải thích: nếu giá trị tồn tại, chúng ta cần chuyển đổi sang đơn vị tiền tệ hiện tại bằng cách sử dụng phương thức quen thuộc toolsConvertPrice
trước khi hiển thị đến khách hàng.
Bước tiếp theo, chúng ta cần so sánh tổng giá trị có trong giỏ hàng có tính phí vận chuyển và đưa ra thông báo tới người mua.
{assign var='freeshipping_price' value=Configuration::get('PS_SHIPPING_FREE_PRICE')} {if $freeshipping_price} {assign var='freeshipping_price_converted' value={toolsConvertPrice price=$freeshipping_price}} {math equation='a-b' a=$total_price b=$total_shipping assign='total_without_shipping'} {math equation='a-b' a=$freeshipping_price_converted b=$total_without_shipping assign='remaining_to_spend'} {if $remaining_to_spend > 0} <p>{l s='Your total (without shipping) is'} {convertPrice price=$total_without_shipping}</p> <p><strong>{l s='You will be eligible for free shipping if you spend another'} {convertPrice price=$remaining_to_spend}</strong></p> {/if} {/if}
GIải thích một chút: đầu tiên bạn lấy tổng cộng giá trị đơn hàng trừ đi các phí vận chuyển và lấy giá đã được chuyển đổi với free shipping trừ đi kết quả trước chính là con số cần tiêu tốn. Nếu kết quả lớn hơn 0, chúng ta thông báo với khách hàng đó là số còn lại cho phí vận chuyển mà họ sẽ phải trả cuối cùng.
Nếu bạn thích bài viết này, hãy ủng hộ chúng tôi bằng cách đăng ký nhận bài viết mới ở bên dưới và đừng quên chia sẻ kiến thức này với bạn bè của bạn nhé. Bạn cũng có thể theo dõi blog này trên Twitter và Facebook
- shares
- Facebook Messenger
- Gmail
- Viber
- Skype
Nguyên says
Có update cho Prestashop 1.7.3 mới nhất không nhỉ? Phần shipping theo kiểu nước ngoài ko phù hợp với VN lắm.