чому копіювання URL-адреси продукту magento


10

Я використовую magento 1.7. я стикаюся з дивною проблемою. magentoзробити копію URL-адреси продукту з випадковим номером з неправильним ключем URL, будь ласка, додайте скріншот

Я також порожній rewrite_urlsURL-адрес таблиці та повторного встановлення, але я все-таки отримую неправильні URL-адреси. будь ласка, допоможіть мені вирішити цю проблему. якщо ви не можете переглянути переглянуті зображення, будь ласка, натисніть на посилання, що копіюють URL-адреси продукту та продукт на панелі адміністратора

Дублікати URL-адрес продукту,фактичний продукт

Дозвольте мені зрозуміти, і на прикладі

Як у мене є один продукт з назвою "example", а URL-адресом є "example" Url буде

www.example.com/example

і тепер я створив новий продукт "xyz та url ключ" xyz ", і URL повинен бути

www.example.com/xyz

але генеруючий magento URL

www.example.com/example-123

Ви маєте на увазі стіл core_url_rewrite?
Фабіан Блешшмідт

так я маю на увазі core_url_rewrite

Це трапляється тому, що у вас / було 2 продукти з тим самим ключем URL. Спробуйте обрізати core_url_rewriteтаблицю abd run url переписує індексатор знову.
Дмитро Завалкін

ні, я перевірив, що у мене є унікальні ключі URL, і я вже спробував цю опцію "Спробуйте усіти таблицю core_url_rewrite abd run url переписує індексатор знову"

Відповіді:


6

Це здається помилкою в 1.7. Якщо у вас є кілька простих продуктів з тим самим ключем URL, що і налаштований продукт (наприклад, всі імена однакові), тоді magento завжди створює нове перезапис URL-адреси для кожного процесу індексу. Приклад:

Перший індекс:

  • myproducturl (конфігураційний продукт)
  • myproducturl-id (простий продукт із доданим ідентифікатором, поки що хороший)

Другий індекс:

  • myproducturl (конфігураційний продукт)
  • myproducturl-randomnumber (простий продукт з випадковим числом, BAD)
  • myproducturl-id -> myproducturl-randomnumber (переписати на новий URL)

І при кожному новому процесі індексації останній крок буде повторюватися, тому завжди генерується новий випадковий ключ URL. Якщо magento перевірить, що URL-адреса з ідентифікатором для цього продукту вже існує, це не повинно бути проблемою.

Через кілька місяців у вас з’явиться дійсно велика таблиця url_rewrite, оскільки нічого не буде видалено, і при кожному запуску буде створено принаймні 1 запис для кожного продукту з тим самим ключем URL.


Це спричинило великі проблеми для нас. У нас є 1 продукт з 20 варіантами кольорів та 8 розмірами кожного, тому ми маємо багато простих товарів, які імпортуються з такою ж назвою. Оскільки ключ URL - це ім'я, якщо його не вказано, ми отримуємо багато дублікатів. Прикра це те, що ми навіть не маємо доступних одноособових симплів (що змушує насмішок отримувати індекс в першу чергу). Ми це зробили певною мірою, імпортуючи симплексну скуру як частину свого імені, оскільки це не видно на передньому кінці, ми відходимо від нього.
Пітер О'Каллаган

Я також стикаюся з цією проблемою, і моя таблиця перезапису URL-адрес містить понад 80 000 записів для всього 4000 продуктів. Якщо хтось має додаткову інформацію з цього приводу, будь ласка, дайте мені знати.
andyjv

Існує Enterprise Patch, який вирішує цю проблему для CE.
brentwpeterson

@brentwpeterson Чи знаєте ви ідентифікатор цього виправлення?
Павло


7

Ми також потрапили в цю помилку. Ми щодня реіндексуємо і лише за кілька днів отримали 24 000 URL-адрес для близько 1000 продуктів.

Я вважаю, що, можливо, я знайшов виправлення. Я виклав це виправлення в прямому ефірі на нашому виробничому майданчику і побачу, як воно йде. Якщо інші можуть перевірити, було б корисно.

  1. У випадку, якщо все піде не так, зробіть резервну копію таблиці та даних core_url_rewrite

  2. У додатку / код / ​​core / Mage / Каталог / Модель / Url.php рядок 809 змінити

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

    до

    if (!empty($requestPath)
            && strpos($existingRequestPath, $requestPath) === 0
        ) 
  3. Обрізати (порожню) таблицю core_url_rewrite

  4. У розділі Система -> Управління індексом переіндексуйте URL-адресу каталогу Переписуйте дані

Тепер ви зможете повторно індексувати, не створюючи тисячі випадкових переписувань URL-адрес.

Дякую Джанні та сніговій країні за виправлення - детальніше про це читайте тут: http://www.magentocommerce.com/boards/viewthread/416476/

Звіт про помилки тут: http://www.magentocommerce.com/bug-tracking/issue?issue=15048


Це працювало для мене. Upvoted
sulabh

Я не думаю, що це працює правильно 1.9.x. Ознайомтесь із робочим виправленням: gist.github.com/edannenberg/5310008
BlueC

0

Нове:

Це божевілля. Схоже, проблема кешування!? Щось у процесі індексації порушено, але ідеї, вибачте.

Старий:

Я поняття не маю, чому це трапляється, але я записую свій досвід та свої ідеї:

  1. Коли Magento знайде вже існуючий перезапис, він додає підрахункове число.

  2. Коли ви змінюєте переписати, magento створює переписати для старої URL-адреси (якщо прапорець під полем для введення тексту встановлений).

  3. Я думаю, що користувацькі перезаписи URL-адреси можуть бути збережені десь в іншому місці, тому користувацькі переписування застосовуються спочатку, а потім намагаються додати продукт переписує, а якщо це неможливо, додається лічильник?


будь ласка, подивіться на моє запитання, я оновив його ще раз. Ваша публікація для мене зараз не корисна

оновив відповідь, але не корисно :(
Fabian Blechschmidt
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.