Este sitio usa cookies, propias y de terceros.
Si se continúa con nosotros entendemos que se acepta el uso de cookies.

Problemas tienda multi-idioma

Tema en 'Soporte General' iniciado por Deivid, 30 Nov 2012.

  1. Deivid

    Deivid Nuevo usuario

    21
    0
    0
    Hola Gente!!

    Estoy terminando mi último proyecto con Magento, pero me siguen surgiendo este problema, y después de investigar buscar y probar sigo sin dar con la solución, a ver si me podéis ayudar.

    El problema lo tenemos en el catálogo de productos, con la url-key.

    Os coloco el ejemplo:

    Castellano: http://www.egoimagine.com/es/test-product.html
    Frances: http://www.egoimagine.com/fr/test-product-frances.html
    Ingles: http://www.egoimagine.com/gb/test-product-ingles.html

    Cada idioma tiene su url key distinta, está pensado para el posicionamiento SEO en google.

    Bueno si empezamos a pinchar en los botones de idioma una vez dentro de la ficha, la primera vez pasa a la ficha correctamente.
    Imaginemos de castellano a frances:
    Castellano -> http://www.egoimagine.com/es/test-product.html
    Link para Frances -> http://www.egoimagine.com/fr/test-product.html?___from_store=es
    Web que aparece, la del frances -> http://www.egoimagine.com/fr/test-product-frances.html

    Ok PERFECTO HASTA AQUÍ.

    Ahora si pinchamos cualquier otro idioma, sea español o ingles

    Link para Ingles -> http://www.egoimagine.com/gb/test-product-frances.html?___from_store=fr
    Web que aparece -> http://www.egoimagine.com/test-product-ingles.html
    Web que debería aparecer -> http://www.egoimagine.com/gb/test-product-ingles.html

    Le falta los códigos de idioma.
    La verdad es que necesito solucionar esto de manera urgente, google penaliza mucho en su posicionamiento si encuentra tantos errores aparte de que queda fatal cara al cliente de la web.

    Se os ocurre alguna idea, desconozco si es problema de configuración en los productos o un bug, a ver si alguién me puede ayudar, porque se me han terminado las ideas :-(

    Gracias de antemano a todos.
     
  2.  
    Comunidad Magento orgullosamente patrocinada por www.FactoriaDigital.com, expertos en hosting y vps magento.
  3. Deivid

    Deivid Nuevo usuario

    21
    0
    0
    Me auto contesto, igual a alguién le puede interesar:

    Fuente : http://www.magentocommerce.com/boards/v/viewthread/226638/#t345612

    Hay que cambiar la función getCurrentUrl del archivo app\\code\\core\\mage\\core\\model\\store.php
    Por la función siguiente, probado y funcionando en Magento 1.6.1.0

    public function getCurrentUrl($fromStore = true)
    {
    $query = Mage::getSingleton('core/url')->escape(ltrim(Mage::app()->getRequest()->getRequestString(), '/'));

    if (Mage::app()->getStore()->isCurrentlySecure()) {
    $parsedUrl = parse_url($this->getUrl('', array('_secure' => true)));
    } else {
    $parsedUrl = parse_url($this->getUrl(''));
    }
    $parsedQuery = array();
    if (isset($parsedUrl['query'])) {
    parse_str($parsedUrl['query'], $parsedQuery);
    }

    foreach (Mage::app()->getRequest()->getQuery() as $k => $v) {
    $parsedQuery[$k] = $v;
    }

    if (!Mage::getStoreConfigFlag(Mage_Core_Model_Store::XML_PATH_STORE_IN_URL, $this->getCode())) {
    $parsedQuery['___store'] = $this->getCode();
    }
    if ($fromStore !== false) {
    $parsedQuery['___from_store'] = $fromStore === true ? Mage::app()->getStore()->getCode() : $fromStore;
    }

    $category = Mage::registry('current_category');
    $product = Mage::registry('current_product');
    $product = Mage::registry('product');

    if(isset($category))
    {
    // echo 'category present';
    $StCode = $this->getCode();
    $CurrentPId = $category->getId();
    $storesobj = Mage::getModel('core/store')->getCollection();
    $storesobj->addFieldToFilter('code',$StCode);
    foreach( $storesobj as $store )
    {
    $storeCode = $store->getCode();
    $storeID= $store->getId();
    }
    $_productCollection = Mage::getModel('catalog/category')->getCollection();
    $_productCollection->setStoreId($storeID);
    $_productCollection->addAttributeToSelect('*');
    $_productCollection->addAttributeToFilter('entity_id', $CurrentPId);
    $_productCollection->load();
    foreach($_productCollection as $products)
    {
    $query = $products->getUrlPath();
    }
    }
    if(isset($product))
    {
    $StCode = $this->getCode();
    $CurrentPId = $product->getId();
    $query = $product->getUrlKey();
    $storesobj = Mage::getModel('core/store')->getCollection();
    $storesobj->addFieldToFilter('code',$StCode);
    foreach( $storesobj as $store )
    {
    $storeCode = $store->getCode();
    $storeID= $store->getId();
    }
    $_productCollection = Mage::getResourceModel('reports/product_collection');
    $_productCollection->setStoreId($storeID);
    $_productCollection->addAttributeToSelect('*');
    $_productCollection->addAttributeToFilter('entity_id', $CurrentPId);
    $_productCollection->load();
    foreach($_productCollection as $products)
    {
    $query = $products->getUrlPath();
    }
    }

    return $parsedUrl['scheme'] . '://' . $parsedUrl['host']
    . (isset($parsedUrl['port']) ? ':' . $parsedUrl['port'] : '')
    . $parsedUrl['path'] . $query
    . ($parsedQuery ? '?'.http_build_query($parsedQuery, '', '&') : '');
    }
     
  4. ptazta

    ptazta Miembro

    269
    1
    18
    Dentro de poco voy a tener que implementar algo así, espero que me sea útil.
    Gracias.!!!
     
  5. jany

    jany Miembro

    103
    3
    18
    Hola @Deivid sigues por aqui? es que tengo un problema, a mi ni se me añade el fr nunca a la url....

    hace falta hacer algo?
     
  6. jany

    jany Miembro

    103
    3
    18
    vale, ya lo he visto :)
     
Cargando...

Compartir esta página

Conectados

  1. jcst1973
Total: 11 (miembros: 1, invitados: 8, robots: 2)

Estadísticas del foro

Temas:
6.437
Mensajes:
28.078
Miembros:
3.836
Último miembro:
Eyber cARDENAS