1. Este sitio usa cookies. Si continuas usando este sitio, estás aceptando el uso de nuestras cookies. Learn More.

Problemas tienda multi-idioma

Tema en 'Soporte General' comenzado por Deivid, 30 de Noviembre de 2012.

  1. Deivid

    Deivid Nuevo usuario

    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

    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

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

    jany Miembro

    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

    vale, ya lo he visto :)
     
Cargando...

Comparte esta página

Usuarios en línea

Total: 19 (miembros: 0, invitados: 14, robots: 5)

Estadísticas del foro

Temas:
6.381
Mensajes:
27.975
Miembros:
3.655
Miembro más reciente:
luisinc