perché duplicare l'URL del prodotto Magento


10

Sto usando magento 1.7. sto affrontando uno strano problema. magentocreare un URL prodotto duplicato con un numero casuale con chiave url errata, per favore il mio screenshot allegato

rewrite_urlsSvuoto anche gli URL di tabella e reindicizzazione, ma sto ancora ricevendo URL errati. per favore aiutami a risolvere questo problema. se non riesci a visualizzare le immagini in questione, fai clic sui link URL dei prodotti duplicati e Prodotto nel pannello di amministrazione

URL di prodotto duplicati,prodotto reale

Lascia che ti faccia capire con l'esempio

Come se avessi un prodotto chiamato "esempio" e la chiave url è "esempio" sarà Url

www.example.com/example

e ora ho creato il nuovo prodotto "chiave xyz e url è" xyz "e url dovrebbe essere

www.example.com/xyz

ma magento genera url

www.example.com/example-123

Intendi il tavolo core_url_rewrite?
Fabian Blechschmidt,

si intendo core_url_rewrite

Succede perché hai / hai avuto 2 prodotti con la stessa chiave url. Prova a troncare la core_url_rewritetabella e esegui url riscrive nuovamente l'indicizzatore.
Dmytro Zavalkin,

no ho controllato ho chiavi URL univoche e ho già provato questa opzione "Prova a troncare la tabella core_url_rewrite e esegui url riscrive nuovamente l'indicizzatore"

Risposte:


6

Questo sembra essere un bug in 1.7. Se hai più prodotti semplici con la stessa chiave dell'URL del prodotto configurabile (ad es. Tutti i nomi sono uguali), Magento crea sempre una nuova riscrittura dell'URL su ogni processo di indice. Esempio:

Primo indice:

  • myproducturl (prodotto di configurazione)
  • myproducturl-id (prodotto semplice con ID aggiunto, finora tutto bene)

Secondo indice:

  • myproducturl (prodotto di configurazione)
  • myproducturl-randomnumber (prodotto semplice con numero casuale, BAD)
  • myproducturl-id -> myproducturl-randomnumber (riscrivi nel nuovo url)

E su ogni nuovo processo di indice verrà ripetuto l'ultimo passaggio, quindi viene sempre generata una nuova chiave url casuale. Se magento verificasse che esiste già una chiave url con l'id per quel prodotto, questo non dovrebbe essere un problema.

Dopo alcuni mesi, avrai una tabella url_rewrite davvero grande, perché nulla verrà eliminato e ad ogni esecuzione, verrà creato almeno 1 record per ogni prodotto con la stessa chiave url.


Questo ha causato grossi problemi per noi. Abbiamo 1 prodotto con 20 variazioni di colore e 8 dimensioni di ciascuno, quindi abbiamo MOLTI prodotti semplici che vengono importati con lo stesso nome. Poiché la chiave url è il nome se non ne viene specificato uno, si finisce con molti duplicati. La cosa fastidiosa è che non abbiamo nemmeno i singoli accessibili individualmente (il che rende una presa in giro il fatto di ottenere l'indice in primo luogo). Abbiamo risolto questo problema importando lo sku simples come parte del suo nome, poiché non è visibile sul front-end, ma lo evitiamo.
Peter O'Callaghan,

Sto anche affrontando questo problema e la mia tabella di riscrittura degli URL è a oltre 80.000 voci per soli 4000 prodotti. Se qualcuno ha ulteriori informazioni su questo, per favore fatemelo sapere.
Andyjv

Esiste una patch aziendale che risolve questo problema per CE.
brentwpeterson

@brentwpeterson Conosci l'ID per quella patch?
Paul,


7

Anche noi siamo stati colpiti da questo errore. Indicizziamo nuovamente ogni giorno e abbiamo guadagnato 24.000 URL in pochi giorni per circa 1000 prodotti.

Credo di aver trovato una soluzione per questo. Ho messo questa correzione in diretta sul nostro sito di produzione e vedrò come va. Se gli altri possono testarlo sarebbe utile.

  1. In caso di problemi, eseguire un backup della tabella e dei dati core_url_rewrite

  2. In app / code / core / Mage / Catalog / Model / Url.php cambia la riga 809

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

    per

    if (!empty($requestPath)
            && strpos($existingRequestPath, $requestPath) === 0
        ) 
  3. Troncare (vuoto) la tabella core_url_rewrite

  4. In Sistema -> Gestione indice reindicizza l'URL del catalogo riscrive i dati

Ora dovresti essere in grado di reindicizzare nuovamente senza creare migliaia di riscritture di URL casuali.

Grazie a Jahnni e snowcountry per la correzione - leggi di più qui: http://www.magentocommerce.com/boards/viewthread/416476/

Segnalazione di bug qui: http://www.magentocommerce.com/bug-tracking/issue?issue=15048


Questo ha funzionato per me. Votato
sulabh

Non penso che funzioni correttamente su 1.9.x. Vedi qui per una correzione funzionante: gist.github.com/edannenberg/5310008
BlueC

0

Nuovo:

Questo è pazzesco. Sembra un problema di memorizzazione nella cache !? Qualcosa nel processo di indicizzazione è rotto, ma non ne ho idea, scusa.

Vecchio:

Non ho idea del perché questo accada, ma scrivo la mia esperienza e le mie idee:

  1. Quando Magento trova una riscrittura già esistente, aggiunge un numero di conteggio.

  2. Quando modifichi la riscrittura, magento crea una riscrittura per il vecchio URL (se la casella di controllo nel campo di immissione del testo è selezionata).

  3. Penso che le riscritture dell'URL personalizzato possano essere salvate da qualche altra parte, quindi le riscritture personalizzate vengono applicate prima e dopo si tenta di aggiungere le riscritture del prodotto e se non è possibile, viene aggiunto il contatore?


per favore vedi la mia domanda l'ho aggiornato di nuovo il tuo post non è utile per me in questo momento

aggiornata la risposta, ma non utile :(
Fabian Blechschmidt il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.