Tại sao sao chép url sản phẩm magento


10

Tôi đang sử dụng magento 1.7. tôi đang đối mặt với vấn đề kỳ lạ magentotạo url sản phẩm trùng lặp với số ngẫu nhiên với khóa url sai xin vui lòng ảnh chụp màn hình đính kèm của tôi

Tôi cũng để trống bảng rewrite_urlsvà reindex url nhưng tôi vẫn nhận được các url sai. làm ơn hãy giúp tôi giải quyết vấn đề này. nếu bạn không thể xem hình ảnh được đề cập thì vui lòng nhấp vào liên kết các url sản phẩm trùng lặpSản phẩm trong bảng quản trị

Các url sản phẩm trùng lặp,sản phẩm thực tế

Hãy để tôi hiểu bạn bằng ví dụ

Giống như tôi có một sản phẩm có tên "ví dụ" và khóa url là "ví dụ" Url sẽ là

www.example.com/example

và bây giờ tôi đã tạo ra sản phẩm mới "xyz và khóa url là" xyz "và url nên là

www.example.com/xyz

nhưng url tạo magento

www.example.com/example-123

Ý bạn là cái bàn core_url_rewrite?
Fabian Blechschmidt

vâng tôi có nghĩa là core_url_rewrite

Điều này xảy ra bởi vì bạn đã / có 2 sản phẩm có cùng khóa url. Hãy thử cắt bớt core_url_rewritebảng abd chạy url ghi lại chỉ mục một lần nữa.
Dmytro Zavalkin

không tôi đã kiểm tra tôi có các khóa url duy nhất và tôi đã thử tùy chọn này "Hãy thử rút ngắn core_url_rewrite bảng abd chạy lại chỉ mục url"

Câu trả lời:


6

Đây có vẻ là một lỗi trong 1.7. Nếu bạn có nhiều sản phẩm đơn giản có cùng khóa url với sản phẩm có thể định cấu hình (ví dụ: tất cả các tên đều giống nhau), thì magento luôn tạo một url viết lại mới trên mỗi quy trình chỉ mục. Thí dụ:

Chỉ số đầu tiên:

  • myproducturl (sản phẩm cấu hình)
  • myproducturl-id (sản phẩm đơn giản với id của nó được nối thêm, cho đến nay rất tốt)

Chỉ số thứ hai:

  • myproducturl (sản phẩm cấu hình)
  • myproducturl-Randomnumber (sản phẩm đơn giản với số ngẫu nhiên, BAD)
  • myproducturl-id -> myproducturl-Randomnumber (viết lại vào url mới)

Và trên mỗi quy trình chỉ mục mới, bước cuối cùng sẽ được lặp lại, do đó, luôn tạo một khóa url ngẫu nhiên mới. Nếu magento sẽ kiểm tra, rằng một khóa url có id cho sản phẩm đó đã tồn tại, điều này sẽ không có vấn đề gì.

Sau một vài tháng, bạn sẽ có một bảng url_rewrite thực sự lớn, bởi vì sẽ không có gì bị xóa và trên mỗi lần chạy, ít nhất 1 bản ghi cho mỗi sản phẩm có cùng một khóa url sẽ được tạo.


Điều này đã gây ra vấn đề lớn cho chúng tôi. Chúng tôi có 1 sản phẩm với 20 biến thể màu sắc và 8 kích cỡ của mỗi loại, do đó chúng tôi có RẤT NHIỀU sản phẩm đơn giản được nhập khẩu cùng tên. Vì khóa url là tên nếu không được chỉ định, chúng tôi sẽ có nhiều bản sao. Điều khó chịu là chúng ta thậm chí không có các mẫu đơn có thể truy cập riêng lẻ (điều này làm cho một sự nhạo báng của chúng nhận được chỉ số ngay từ đầu). Chúng tôi đã khắc phục điều này ở một mức độ nào đó bằng cách nhập các simu sku như một phần của tên của nó, vì nó không hiển thị ở mặt trước, chúng tôi tránh xa nó.
Peter O'Callaghan

Tôi cũng đang đối mặt với vấn đề này và bảng viết lại URL của tôi có hơn 80.000 mục nhập cho chỉ 4000 sản phẩm. Nếu bất cứ ai có thêm thông tin về điều này, xin vui lòng cho tôi biết.
andyjv

Có một Bản vá doanh nghiệp giải quyết vấn đề này cho CE.
brentwpeterson

@brentwpeterson Bạn có biết ID cho bản vá đó không?
Paul


7

Chúng tôi cũng đã gặp phải lỗi này. Chúng tôi lập chỉ mục lại mỗi ngày và đạt được 24.000 URL chỉ sau vài ngày cho khoảng 1000 sản phẩm.

Tôi tin rằng tôi có thể đã tìm thấy một sửa chữa cho nó. Tôi đã đặt bản sửa lỗi này trực tiếp trên trang web sản xuất của chúng tôi và sẽ xem nó diễn ra như thế nào. Nếu những người khác có thể kiểm tra nó sẽ hữu ích.

  1. Trong trường hợp có sự cố, hãy tạo bản sao lưu của bảng và dữ liệu core_url_rewrite

  2. Trong ứng dụng / mã / lõi / Mage / Catalogue / Model / Url.php, dòng 809 thay đổi

    if ($product->getUrlKey() == '' && !empty($requestPath)
            && strpos($existingRequestPath, $requestPath) === 0
        )
    

    đến

    if (!empty($requestPath)
            && strpos($existingRequestPath, $requestPath) === 0
        ) 
    
  3. Cắt bớt (trống) bảng core_url_rewrite

  4. Trong Hệ thống -> Quản lý chỉ mục lập chỉ mục lại dữ liệu URL danh mục Viết lại dữ liệu

Bây giờ bạn có thể lập chỉ mục lại mà không cần tạo hàng ngàn URL viết lại ngẫu nhiên.

Cảm ơn Jahnni và snowcountry đã khắc phục - đọc thêm về nó tại đây: http : //www.magentoc Commerce.com/boards/viewthread/416476/

Báo cáo lỗi tại đây: http : //www.magentoc Commerce.com/orms-tracking/su?su=15048


Điều này làm việc cho tôi. Được nâng cấp
sulabh

Tôi không nghĩ rằng điều này hoạt động chính xác trên 1.9.x. Xem ở đây cho một sửa chữa làm việc: gist.github.com/edannenberg/5310008
BlueC

0

Mới:

Điều này là điên. Trông giống như một vấn đề lưu trữ!? Một cái gì đó trong quá trình lập chỉ mục bị hỏng, nhưng không có ý tưởng, xin lỗi.

Cũ:

Tôi không biết tại sao chuyện này lại xảy ra, nhưng tôi viết ra kinh nghiệm và ý tưởng của mình:

  1. Khi Magento tìm thấy một bản viết lại đã tồn tại, nó sẽ thêm một số đếm.

  2. Khi bạn thay đổi viết lại, magento sẽ viết lại cho URL cũ (nếu hộp kiểm bên dưới trường nhập văn bản được chọn).

  3. Tôi nghĩ rằng việc viết lại url tùy chỉnh có thể được lưu ở một nơi khác, vì vậy việc viết lại tùy chỉnh được áp dụng trước và sau đó nó được thử để viết lại sản phẩm và nếu không thể, bộ đếm có được thêm không?


vui lòng xem câu hỏi của tôi, tôi đã cập nhật lại bài viết của bạn không hữu ích cho tôi ngay bây giờ

đã cập nhật câu trả lời, nhưng không hữu ích :(
Fabian Blechschmidt
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.