1. An Nguyen

    An Nguyen bụi Ban quản trị

    14/10/14
    #1
    Đây chỉ là giải pháp tạm thời :).

    Về cơ bản, nó được xây dựng trên mô hình related products (sản phẩm liên quan).

    Ý tưởng ở đây là lấy các sản phẩm chưa public để hiển thị nhóm sản phẩm lên trang chủ, và mỗi nhóm có các sản phẩm liên quan.

    Vì vậy, bạn sẽ có nhiều nhóm giống như các trang category sản phẩm riêng biệt trên homepage.

    Tóm tắt gồm các bước sau:

    - Bước 1: Tạo một setting để lưu thông tin về bao nhiêu sản phẩm và sản phẩm nào sẽ hiện thị trên homepage.
    - Bước 2: Tạo một partial view sẽ tạo ra các danh mục riêng biệt trên homepage
    - Bước 3: Thêm partial view này ra homepage view.
    - Bước 4: Re-style (sửa lại) giao diện khu vực sản phẩm liên quan
    - Bước 5: Tạo một vài dữ liệu để kiểm tra :)

    Nguồn: ima9ines
     
    Sửa lần cuối: 12/1/16
    Đang tải...
    • ngày tạo

      An Nguyen 14/10/14
    • trả lời cuối

      KenMT 14/1/16
    • 1,059

      lượt xem

    • 14

      trả lời

    • 0

      lượt thích

  2. An Nguyen

    An Nguyen bụi Ban quản trị

    14/10/14
    #2
    Bước 1 Tạo setting

    - Vào Admin > Configuration > Settings > All Settings (Advanced)
    - Nhấn vào nút "+ Add new record"
    - Nhập các giá trị sau:
    + Setting name: "homepagesettings.groupids"
    + Value: nhập một vài id sản phẩm chưa publish (vd.: 55, 56) - cách bởi dấu phẩy
    + Store: chọn store ưa thích
     
    Sửa lần cuối: 12/1/16
  3. An Nguyen

    An Nguyen bụi Ban quản trị

    14/10/14
    #3
    Bước 2 Tạo partial view cho các nhóm danh mục tách riêng biệt

    - Tạo partial view "_SeparatedProductGroup.cshtml" đặt trong thư mục "Themes/DefaultClean/Views/Home"
    - Nhập đoạn mã bên dưới vào:

    PHP:
    1. @using Nop.Core.Domain.Catalog
    2. @using Nop.Core.Infrastructure
    3. @using Nop.Services.Catalog
    4. @using Nop.Services.Configuration
    5. @{
    6. var engineContext = EngineContext.Current;
    7. var settingService = engineContext.Resolve<ISettingService>();
    8. var productService = engineContext.Resolve<IProductService>();
    9.  
    10. var homepageGroups = Enumerable.Empty<Product>();
    11. var idsValue = settingService.GetSettingByKey<string>("homepagesettings.groupids");
    12. if (!string.IsNullOrEmpty(idsValue))
    13. {
    14. var idList = idsValue.Split(',');
    15. if (idList.Any())
    16. {
    17. homepageGroups = idList.Select(i => productService.GetProductById(Int32.Parse(i)));
    18. }
    19. }
    20. }
    21. @if (homepageGroups.Any())
    22. {
    23. <div class="homepage-product-categories">
    24. @foreach (var homepageGroup in homepageGroups)
    25. {
    26. <section class="homepage-product-category">
    27. <header>@homepageGroup.Name</header>
    28. @Html.Action("RelatedProducts", "Product", new { productId = homepageGroup.Id })
    29. </section>
    30. }
    31. </div>
    32. }
     
    Sửa lần cuối: 17/2/16
  4. An Nguyen

    An Nguyen bụi Ban quản trị

    14/10/14
    #4
    Bước 3 Thêm partial view nhóm danh mục tách biệt tới homepage view

    - Copy view "Home/Index.cshtml" vào thư mục "Themes/DefaultClean/Views/Home"
    - Thêm partial view vừa tạo vào:
    TRƯỚC

    PHP:
    1.  
    2. @{
    3.     Layout = "~/Views/Shared/_ColumnsThree.cshtml";
    4. }
    5. <div class="page home-page">
    6.     <div class="page-body">
    7.         @Html.Widget("home_page_top")
    8.         @Html.Action("TopicBlock", "Topic", new { systemName = "HomePageText" })
    9.         @Html.Action("HomepageCategories", "Catalog")
    10.         @Html.Action("HomepageProducts", "Product")
    11.         @Html.Action("HomepageBestSellers", "Product")
    12.         @Html.Action("HomePageNews", "News")
    13.         @Html.Action("HomePagePolls", "Poll")
    14.         @Html.Widget("home_page_bottom")
    15.     </div>
    16. </div>
    17.  
    SAU

    PHP:
    1. @{
    2.     Layout = "~/Views/Shared/_ColumnsThree.cshtml";
    3. }
    4. <div class="page home-page">
    5.     <div class="page-body">
    6.         @Html.Widget("home_page_top")
    7.         @Html.Action("TopicBlock", "Topic", new { systemName = "HomePageText" })
    8.         @Html.Action("HomepageCategories", "Catalog")
    9.         @Html.Action("HomepageProducts", "Product")
    10.         @Html.Action("HomepageBestSellers", "Product")
    11.         @Html.Action("HomePageNews", "News")
    12.         @Html.Action("HomePagePolls", "Poll")
    13.         @Html.Partial("_SeparatedProductGroup")
    14.         @Html.Widget("home_page_bottom")
    15.     </div>
    16. </div>
     
    Sửa lần cuối: 17/2/16
  5. An Nguyen

    An Nguyen bụi Ban quản trị

    14/10/14
    #5
    STEP 4 Sửa lại giao diện khu vực sản phẩm liên quan

    - Mở file "Themes/DefaultClean/Content/styles.css"
    - Thêm những dòng này vào cuối cùng.
    Mã (Text):
    1.  
    2. .homepage-product-category .related-products-grid.product-grid .title{
    3. display: none;
    4. }
     
    Sửa lần cuối: 12/1/16
  6. An Nguyen

    An Nguyen bụi Ban quản trị

    14/10/14
    #6
    STEP 5 Tạo dữ liệu mẫu

    - Vào Admin > Catalog > Products > Manage Products
    - Thêm 2 sản phẩm mới bỏ chọn thuộc tính "Published" (ex.: 2 sản phẩm mới có id: 55, 56)
    - Truy cập tab "Related products" trong mỗi sản phẩm(đã tạo ở trên), thêm vai sản phẩm liên quan
    - Vào Admin > Configuration > Settings > All Settings (Advanced)
    - cập nhật id sản phẩm vừa tạo "55, 56" vào ô value của "homepagesettings.groupids"
    - Cuối cùng, khởi động lại ứng dụng hoặc reset IIS có có hiệu lực

    Chúc mọi người thành công :)
     
    Sửa lần cuối: 12/1/16
  7. An Nguyen

    An Nguyen bụi Ban quản trị

    12/1/16
    #7
    update thêm hình
     
  8. KenMT

    KenMT NopActive

    13/1/16
    #8
    Em là em sộc thẳng vào controller viết hàm luôn :D
     
    1
    An Nguyen thích bài này.
    An Nguyen thích bài này
  9. An Nguyen

    An Nguyen bụi Ban quản trị

    13/1/16
    #9
    bạn chỉ mình làm được không, cái này áp dụng cho 3.4 đưa lên 3.7 k chạy
    bạn chắc chuyên về nop à
     
  10. KenMT

    KenMT NopActive

    13/1/16
    #10
    Có phải mục đích ở đây là tạo thêm 1 nhóm sản phẩm nữa hiển thị trên trang chủ như cái HomepageProducts ko ạ hay như thế nào ạ?
     
  11. KenMT

    KenMT NopActive

    13/1/16
    #11
    Hì dạ ko, em phọt phẹt thôi customize từ những cái đã có thôi :D
     
  12. An Nguyen

    An Nguyen bụi Ban quản trị

    13/1/16
    #12
    đúng rồi, giống như homepage product vậy, nhưng làm nhiều nhóm danh mục sản phẩm trên trang chủ
     
  13. KenMT

    KenMT NopActive

    13/1/16
    #13
  14. An Nguyen

    An Nguyen bụi Ban quản trị

    13/1/16
    #14
    cũng gần giốn như vậy, nhưng mỗi category gồm nhiều sản phẩm, giống như trang này nè
    https://www.lindadress.com/
     
  15. KenMT

    KenMT NopActive

    14/1/16
    #15
    1
    An Nguyen thích bài này.
    An Nguyen thích bài này
Đã lưu nháp Draft deleted
Đang tải...