Ergebnis 1 bis 30 von 30

Thema: isotope_feeds

  1. #1
    Contao-Nutzer
    Registriert seit
    29.08.2010.
    Beiträge
    218

    Standard isotope_feeds

    Hi ich habe mal die Beta von isotope_feeds ausprobiert. Was mir aber nicht einleuchtet ist die "Feed Reader Page". Was soll ich da angeben und vor allem: warum? Ich habe bereits ein paar Seiten ausprobiert. Der Feed wird mir aber nicht angezeigt.

    Alex

  2. #2
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.613
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich vermute du hast das aus dem SVN geladen? Du müsstest dich (auf Englisch) im offiziellen Projekttool melden, ich bezweifle dass jemabd aus Deutschland das Modul kennt (= ich nicht).
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  3. #3
    Contao-Nutzer
    Registriert seit
    29.08.2010.
    Beiträge
    218

    Standard

    Ok. Ich hatte das sowieso mal vor

  4. #4
    Contao-Nutzer
    Registriert seit
    29.08.2010.
    Beiträge
    218

    Standard

    Ok. Die Erweiterung funktioniert soweit. Man muss unter Isotope -> Shop-Konfiguration -> Allgemeine Einstellungen -> Konfigurationen in der jeweiligen Konfiguration unter Feeds entsprechend eintragen. Feed Reader Page ist die Detailansichtsseite. Dann muss das ganze noch im Seitenlayout unter RSS-/ Atom-Feeds aktiviert werden.

  5. #5
    Contao-Fan Avatar von Hauge
    Registriert seit
    31.01.2010.
    Beiträge
    643

    Frage isotope_feeds fit für merchant-center-update?

    Hallo zusammen,

    weiß jemand, ob die aktuelle Version der Erweiterung isotope_feeds den neuen Richtlinien für das google-merchant-center entspricht?

    Gruß
    Hauge

  6. #6
    Contao-Nutzer
    Registriert seit
    29.08.2010.
    Beiträge
    218

    Standard

    Also ich habe das vor einiger Zeit mal nachgesehen und bin mir recht sicher, dass die Richtlinien erfüllt wurden.

  7. #7
    Contao-Fan Avatar von Hauge
    Registriert seit
    31.01.2010.
    Beiträge
    643

    Standard Neue Richtlinien für merchant center

    Hallo Ale, danke für Deine Info.

    Ich habe vor kurzem ne Meldung von google bekommen, dass die Richtlinien geändert wurden und diese Änderung bis September 2011 durchgeführt wird. Es sollen künftig etwa Attribute für Zustand (neu, gebraucht etc.) oder auch die "google-produktlinie" angegeben werden.

    Siehe: http://www.google.com/support/mercha...&answer=188494


    Gruß
    Hauge

  8. #8
    Contao-Nutzer
    Registriert seit
    19.05.2011.
    Ort
    Jena/Thüringen/DE
    Beiträge
    20

    Frage isotope_feeds mit Varianten

    Wie kann ich mit isotope_feeds die Varianten unserer Produkte berücksichtigen?

  9. #9
    Contao-Fan Avatar von Hauge
    Registriert seit
    31.01.2010.
    Beiträge
    643

    Frage Contao isotope & google merchant center

    Ich habe eine konkrete Frage:

    Die Integration von Google Merchant Center ist bedingt durch Kundenwünsche ein mittlerweile nahezu unabdingbarer Bestandteil eines Shops.
    (ist ja auch verständlich, da es eine einfache Möglichkeit ist Verkaufsziele zu erreichen).

    Wird es nach heutigem Stand der Dinge in diesem Bereich eine Entwicklung geben, welche verlässlich in das System integriert wird oder eher nicht?
    (Egal ob Erweiterung oder feste Integration)

    Anhand der milestones ist hier leider nichts erkennbar:
    Info: http://projects.winanscreative.com/p...245/milestones

    Und anhand der Entwicklung von Erweiterungen kann ich da nicht viel herauslesen:
    Info: http://projects.winanscreative.com/p...1#comment11620

    Wenn ich das alles richtig interpretiere und auch sehe, dass isotope_feeds seit 2.9.2 nicht mehr upgedatet wurde, so wird es da für contao 2.10 in nächster Zukunft KEINE Anbindung von isotope an das google merchant center geben?

    Auf eine Antwort freut sich
    Hauge

  10. #10
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.613
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Bisher habe ich (persönlich) nichts entsprechendes geplant. Die Aussage "ein zwingendes Kriterium" kann ich nicht unterschreiben, denn die Funktion ist wohl sehr Region- und Brachenspezifisch. Es wäre etwa dasselbe wie wenn du eine Integration von eBay als Standardfunktion siehst. eBay wird aber z.B. in der Schweiz kaum verwendet, und das Google Merchant Center hab ich noch nie gesehen/benutzt. Immer bedenken dass Isotope eCommerce nicht explizit auf den Deutschen Markt zugeschnitten ist, sondern absichtlich global.
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  11. #11
    Contao-Fan Avatar von Hauge
    Registriert seit
    31.01.2010.
    Beiträge
    643

    Standard

    Hallo Andreas,

    danke für die Info.

    "Zwingendes Kriterium"? - für besagte Kunden: JA

    Die Frage dient nur zur Orientierung für diejenigen welche das Merchant Center verwenden (müssen).

    Somit ist dies nun geklärt - finde ich zwar schade, da ich isotope als Klasse Erweiterung sehe und gerne damit arbeite.

    Dennoch ist es für viele (wenn auch vielleicht "nur" deutsche) Nutzer ein in der Tat "zwingendes Kriterium".

    Da ich selbst nicht ausreichend Know How für die Entwicklung eines eigenen Moduls besitze ist es aber doch eine berechtigte Frage - zumindest für die Nutzer aus Deutschland

    Gruß
    Hauge

  12. #12
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.613
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Es besteht natürlich immer die Möglichkeit einen Entwickler damit zu beauftragen ;-)
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  13. #13
    Contao-Fan Avatar von Hauge
    Registriert seit
    31.01.2010.
    Beiträge
    643

    Standard

    schick ne pm...

  14. #14
    Contao-Fan Avatar von Hauge
    Registriert seit
    31.01.2010.
    Beiträge
    643

    Standard Google Merchant Center und Isotope - neues Modul

    Hallo Zusammen,

    ich möchte diesen Thread nun wieder mal nach vorne holen.

    Ich habe nun einige Shops mit isotope aufgesetzt - stets in der Hoffnung, dass die Merchant-Center-Anbindung irgendwann zum Laufen kommt.

    Derzeit befindet sich auf github eine version von isotope-googlemerchant. Leider bringe ich nun auch diese Version nicht wirklich zum laufen.

    Gibt es hier schon eine ungefähre Zeitangabe (wäre schon hilfreich wenn man wüsste ob das ganze überhaupt noch weiter verfolgt wird)

    Ich versuche jedenfalls vergeblich seit etwa August letzten Jahres die Anbindung herzustellen - mit verschiedensten Versionen von isotope, von contao und dem damaligen modul isotope_feeds und jetzt isotope_googlemerchant.

    Da ich ja ein kleiner Fan von Isotope bin, möchte ich nach heutigem Stand der Dinge empfehlen, die auf:
    http://de.contaowiki.org/Online-Shops eingetragene Exportschnittstelle zum Merchant-Center mal zu entfernen.

    Dies wird einigen die daran interessiert sind sicher helfen das Ganze mal etwas besser einzuordnen.


    Gruß
    Hauge

  15. #15
    Contao-Fan Avatar von Hauge
    Registriert seit
    31.01.2010.
    Beiträge
    643

    Standard Möglichkeit zur Umsetzung gefunden / Zwischenlösung

    Hab da ne Zwischenlösung mit dem älteren Modul zur Anbindung bis die Version auf github läuft.

    Etwas kompliziert - aber es funktioniert (zumindest bei mir )

    Lösung läuft über die Attribute:
    1. isotope_feeds installieren
    2. folgende Codes im Modul abändern:
    Datei GoogleFeed.php:
    PHP-Code:
    <?php if (!defined('TL_ROOT')) die('You can not access this file directly!');

    /**
     * TYPOlight Open Source CMS
     * Copyright (C) 2005-2010 Leo Feyer
     *
     * This program is free software: you can redistribute it and/or
     * modify it under the terms of the GNU Lesser General Public
     * License as published by the Free Software Foundation, either
     * version 3 of the License, or (at your option) any later version.
     * 
     * This program is distributed in the hope that it will be useful,
     * but WITHOUT ANY WARRANTY; without even the implied warranty of
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
     * Lesser General Public License for more details.
     * 
     * You should have received a copy of the GNU Lesser General Public
     * License along with this program. If not, please visit the Free
     * Software Foundation website at <http://www.gnu.org/licenses/>.
     *
     * PHP version 5
     * @copyright  Winans Creative 2009, Intelligent Spark 2010, iserv.ch GmbH 2010
     * @author     Fred Bliss <fred.bliss@intelligentspark.com>
     * @author     Andreas Schempp <andreas@schempp.ch>
     * @license    http://opensource.org/licenses/lgpl-3.0.html
     */

    class GoogleFeed extends Feed
    {


        
    /**
         * Generate an Google RSS 2.0 feed and return it as XML string
         * @return string
         */
        
    public function generateGoogle()
        {

            
    $xml  '<?xml version="1.0"?>' "\n";
            
    $xml .= '<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0" version="2.0">' "\n";
            
    $xml .= '  <channel>' "\n";
            
    $xml .= '    <title>' specialchars($this->title) . '</title>' "\n";
            
    $xml .= '    <description>' specialchars($this->description) . '</description>' "\n";
            
    $xml .= '    <link>' specialchars($this->link) . '</link>' "\n";


            foreach (
    $this->arrItems as $objItem)
            {
                
    $xml .= '    <item>' "\n";
                
    $xml .= '      <title><![CDATA[' specialchars($objItem->title) . ']]></title>' "\n";
                
    $xml .= '      <link>' specialchars($objItem->link) . '</link>' "\n";
                
    $xml .= '      <description><![CDATA[' preg_replace('/[\n\r]+/'' '$objItem->description) . ']]></description>' "\n";
                
    $xml .= '      <g:image_link><![CDATA[' specialchars($objItem->image) . ']]></g:image_link>' "\n";
                
    $xml .= '      <g:id>' specialchars($objItem->sku) . '</g:id>' "\n";
                
    $xml .= '      <g:google_product_category>' specialchars($objItem->google_category) . '</g:google_product_category>' "\n";
                
    $xml .= '      <g:product_type>' specialchars($objItem->product_type) . '</g:product_type>' "\n";
                
    $xml .= '      <g:price>' specialchars($objItem->price) . '</g:price>' "\n";
                
    $xml .= '      <g:condition>' specialchars($objItem->google_condition) . '</g:condition>' "\n";
                
    $xml .= '      <g:availability>' specialchars($objItem->availability) . '</g:availability>' "\n";
                
    $xml .= '      <g:brand>' specialchars($objItem->brand) . '</g:brand>' "\n";
                
    $xml .= '      <g:gtin>' specialchars($objItem->gtin) . '</g:gtin>' "\n";
                
    $xml .= '    </item>' "\n";
            }

            
    $xml .= '  </channel>' "\n";
            
    $xml .= '</rss>';

            return 
    $xml;
        }
        
    }
    Datei isotopeFeeds.php:
    PHP-Code:
    <?php if (!defined('TL_ROOT')) die('You can not access this file directly!');

    /**
     * TYPOlight Open Source CMS
     * Copyright (C) 2005-2010 Leo Feyer
     *
     * This program is free software: you can redistribute it and/or
     * modify it under the terms of the GNU Lesser General Public
     * License as published by the Free Software Foundation, either
     * version 3 of the License, or (at your option) any later version.
     * 
     * This program is distributed in the hope that it will be useful,
     * but WITHOUT ANY WARRANTY; without even the implied warranty of
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
     * Lesser General Public License for more details.
     * 
     * You should have received a copy of the GNU Lesser General Public
     * License along with this program. If not, please visit the Free
     * Software Foundation website at <http://www.gnu.org/licenses/>.
     *
     * PHP version 5
     * @copyright  Winans Creative 2009, Intelligent Spark 2010, iserv.ch GmbH 2010
     * @author     Fred Bliss <fred.bliss@intelligentspark.com>
     * @author     Andreas Schempp <andreas@schempp.ch>
     * @license    http://opensource.org/licenses/lgpl-3.0.html
     */

    class IsotopeFeeds extends Controller
    {

        
    /**
         * Import some default libraries
         */
        
    protected function __construct()
        {
            
    parent::__construct();
            
    $this->import('Database');
        }

        
    /**
         * Update a particular store config's RSS feed
         * @param integer
         */
        
    public function generateFeed($intId)
        {
            
    $objConfig $this->Database->prepare("SELECT * FROM tl_iso_config WHERE id=? AND addFeed=?")
                                         ->
    limit(1)
                                         ->
    execute($intId1);

            if (
    $objConfig->numRows 1)
            {
                return;
            }

            
    $objConfig->feedName strlen($objConfig->feedName) ? $objConfig->feedName 'products' $objConfig->id;
            
    $arrTypes deserialize($objConfig->feedTypes);
            
            
    // Delete XML file
            
    if ($this->Input->get('act') == 'delete')
            {
                
    $this->import('Files');
                foreach(
    $arrTypes as $feedType)
                {
                    
    $this->Files->delete($objConfig->feedName '-' $feedType '.xml');
                }
            }

            
    // Update XML file
            
    else
            {
                foreach(
    $arrTypes as $feedType)
                {
                    
    $this->generateFiles($objConfig->row(), $feedType);
                    
    $this->log('Generated products feed ' $objConfig->feedName '-'$feedType '.xml"''IsotopeFeeds generateFeed()'TL_CRON);
                }
            }
        }


        
    /**
         * Delete old files and generate all product feeds
         */
        
    public function generateFeeds()
        {
            
    $this->removeOldFeeds();
            
    $objConfig $this->Database->execute("SELECT * FROM tl_iso_config WHERE addFeed=1");

            while (
    $objConfig->next())
            {
                
    $objConfig->feedName strlen($objConfig->feedName) ? $objConfig->feedName 'products' $objConfig->id;
                
    $arrFeedTypes deserialize($objConfig->feedTypes);
                
                foreach( 
    $arrFeedTypes as $feedType )
                {
                    
    $this->generateFiles($objConfig->row(), $feedType);
                    
    $this->log('Generated product feed ' $objConfig->feedName '-'$feedType '.xml"''IsotopeFeeds generateFeeds()'TL_CRON);
                }
            }
        }
        
        
    /**
         * remove feeds hook to preserve files
         */
        
    public function preserveFeeds()
        {
            
    $objConfig $this->Database->execute("SELECT * FROM tl_iso_config WHERE addFeed=1");
            
    $arrFeeds = array();
            
    $objConfig->feedName strlen($objConfig->feedName) ? $objConfig->feedName 'products' $objConfig->id;
            
    $arrFeedTypes deserialize($objConfig->feedTypes);
            if(
    is_array($arrFeedTypes) && count($arrFeedTypes)>0)
            {
                foreach( 
    $arrFeedTypes as $feedType )
                {
                    
    $arrFeeds[] = $objConfig->feedName '-'$feedType;
                }
            }
            return 
    $arrFeeds;
            
        }
        
        
    /**
         * hook to add feed to head
         */
        
    public function addFeedToLayout(Database_Result $objPageDatabase_Result $objLayoutPageRegular $objPageRegular)
        {
            
    $arrFeeds deserialize($objLayout->productfeeds);
            if(
    is_array($arrFeeds) && count($arrFeeds) > 0)
            {
                foreach(
    $arrFeeds as $feed)
                {
                    
    $arrConfig explode('|'$feed);
                    if(
    is_array($arrConfig) && count($arrConfig) > 0)
                    {
                        
    $objConfig $this->Database->prepare("SELECT * FROM tl_iso_config WHERE addFeed=1 AND id=?")->limit(1)->execute($arrConfig[0], $arrConfig[1]);
                
                        
    $arrTypes deserialize($objConfig->feedTypes);
                        foreach(
    $arrTypes as $type)
                        {
                            if(
    $arrConfig[1]==$type)
                            {
                                
    $strFeedname strlen($objConfig->feedName) ? $objConfig->feedName 'products' $objConfig->id;
                                
    $strName $strFeedname '-'$type;
                                
    $base strlen($objConfig->feedBase) ? $objConfig->feedBase $this->Environment->base;
                                
    $GLOBALS['TL_HEAD'][] = '<link rel="alternate" href="' $base $strName '.xml" type="application/rss+xml" title="' $objConfig->feedTitle '" />' "\n";
                            }
                        
                        }
                        
                        
                    }
                }
            }
        }


        
    /**
         * Generate an XML files and save them to the root directory
         * @param array
         * @param string
         */
        
    protected function generateFiles($arrConfig$strType)
        {
            
    $this->import('Isotope');
        
            
    $arrType $GLOBALS['ISO_FEEDS'][$strType];
            
    $time time();
            
    $strLink strlen($arrConfig['feedBase']) ? $arrConfig['feedBase'] : $this->Environment->base;
            
    $strFile $arrConfig['feedName'] . '-' $strType;
            
            try
            {
                
    $objFeed = new $arrType[0]($strFile);
            }
            catch (
    Exception $e)
            {
                
    $objFeed = new GoogleFeed($strFile);
            }

            
    $objFeed->link $strLink;
            
    $objFeed->title $arrConfig['feedTitle'];
            
    $objFeed->description $arrConfig['feedDesc'];
            
    $objFeed->language $arrConfig['language'];
            
    $objFeed->published time();

            
    // Get root pages that belong to this store config.
            
    $objRoot $this->Database->prepare("SELECT * FROM tl_page p WHERE type='root' AND iso_config=?")->execute($arrConfig['id']);
            if(
    $objRoot->numRows)
            {
                
    //Get an array of all pages under the root so that we can compare to product categories
                
    $objPages $this->Database->execute("SELECT id FROM tl_page");
                while(
    $objPages->next())
                {
                    
    $objDetails $this->getPageDetails($objPages->id);
                    if(
    $objDetails->rootId == $objRoot->id)
                    {
                        
    $arrPages[] = $objPages->id;
                    }
                }
            }
            
    $objProducts $this->Database->execute("SELECT *, (SELECT class FROM tl_iso_producttypes WHERE tl_iso_products.type=tl_iso_producttypes.id) AS product_class FROM tl_iso_products WHERE pid=0 AND (start='' OR start<$time) AND (stop='' OR stop>$time) AND published=1 ORDER BY tstamp DESC");
            while(
    $objProducts->next())
            {
                
    $strClass $GLOBALS['ISO_PRODUCT'][$objProducts->product_class]['class'];
                
                if(
    count($arrPages))
                {
                    
    $arrProductPages deserialize($objProducts->pagestrue);
                    if( 
    count(array_intersect($arrPages$arrProductPages)) )
                    {
                        
    $arrProducts[] = $objProducts->row();
                    }
                }
                else
                {
                    
    $arrProducts[] = $objProducts->row();
                }
            }
            
            
    // Get default URL
            
    $objParent $this->Database->prepare("SELECT id, alias FROM tl_page WHERE id=?")
                                        ->
    limit(1)
                                        ->
    execute($arrConfig['feedJumpTo']);
            if(!
    $objParent->numRows)
            {
                
    //Get the first reader page we can find 
                //@todo: restrict it to store config root
                
    $objModules $this->Database->prepare("SELECT iso_reader_jumpTo FROM tl_module WHERE iso_reader_jumpTo!=''")->limit(1)->execute();

                
    $objParent $this->Database->prepare("SELECT id, alias FROM tl_page WHERE id=?")
                                        ->
    limit(1)
                                        ->
    execute($objModules->iso_reader_jumpTo);
            }

            
    $strUrl $this->generateFrontendUrl($objParent->fetchAssoc(), '/product/%s');

            
    // Parse items
            
    foreach($arrProducts as $product)
            {
            
                
    $objItem = new FeedItem();

                
    $objItem->title $product['name'];
                
    $objItem->link $this->getLink($product$strLink $strUrl);
                
    $objItem->published time();

                
    // Prepare the description
                
    $strDescription $product['description'];
                
    $strDescription $this->replaceInsertTags($strDescription);
                
    $objItem->description $this->convertRelativeUrls($strDescription$strLink);
                
                
    // Prepare the new googlefeed data
                
    $objItem->google_category strlen($product['google_category']) ? $product['google_category'] : $product['alias'];
                
    $objItem->product_type strlen($product['product_type']) ? $product['product_type'] : $product['alias'];
                
    $objItem->google_condition strlen($product['google_condition']) ? $product['google_condition'] : $product['alias'];
                
    $objItem->availability strlen($product['availability']) ? $product['availability'] : $product['alias'];
                
    $objItem->brand strlen($product['brand']) ? $product['brand'] : $product['alias'];
                
    $objItem->gtin strlen($product['gtin']) ? $product['gtin'] : $product['alias'];
                
                
    //Sku, price, etc
                
    $objItem->sku strlen($product['sku']) ? $product['sku'] : $product['alias'];
                
    $objItem->price $product['price'] .' '$this->Isotope->Config->currency;
                
                
    //Prepare the images
                
    $arrImages $this->getProductImages($product);
                if(
    is_array($arrImages) && count($arrImages)>0)
                {
                    
    $objItem->image $this->Environment->base $arrImages[0]['medium'];
                    
    $objItem->addEnclosure($arrImages[0]['medium']);
                }
                
    $objFeed->addItem($objItem);
                
            }
                    
            
    // Create file
            
    $objRss = new File($strFile '.xml');
            
    $objRss->write($this->replaceInsertTags($objFeed->$arrType[1]()));
            
    $objRss->close();
        }


        
    /**
         * Return the link of a product
         * @param object
         * @param string
         * @return string
         */
        
    protected function getLink($arrProduct$strUrl)
        {
            
    // Link to the default page
            
    return sprintf($strUrl, ((strlen($arrProduct['alias']) && !$GLOBALS['TL_CONFIG']['disableAlias']) ? $arrProduct['alias'] : $arrProduct['id']));
        }
        
        protected function 
    getProductImages($arrProduct)
        {
            
    $this->import('Isotope');
            
            
    $varValue deserialize($arrProduct['images']);

            if(
    is_array($varValue) && count($varValue))
            {
                foreach( 
    $varValue as $k => $file )
                {
                    
    $strFile 'isotope/' substr($file['src'], 01) . '/' $file['src'];

                    if (
    is_file(TL_ROOT '/' $strFile))
                    {
                        
    $objFile = new File($strFile);

                        if (
    $objFile->isGdImage)
                        {
                            
    $strImage $this->getImage($strFile250250'proportional');
                            if (
    $strImage != $strFile && $size['watermark'] != '')
                            {
                                
    $this->import('IsotopeFrontend');
                                
    $strImage $this->IsotopeFrontend->watermarkImage($strImage$size['watermark'], $size['position']);
                            }

                            
    $arrSize = @getimagesize(TL_ROOT '/' $strImage);
                            if (
    is_array($arrSize) && strlen($arrSize[3]))
                            {
                                
    $file['medium_size'] = $arrSize[3];
                            }
                            
                            
    $file['medium'] = $strImage;

                            
    $arrReturn[] = $file;
                        }
                    }
                }
            }
            
            
    // No image available, add default image
            
    if (!count($arrReturn) && is_file(TL_ROOT '/' $this->Isotope->Config->missing_image_placeholder))
            {
                
    $strImage $this->getImage($this->Isotope->Config->missing_image_placeholder250250'proportional');
                
                
    $arrSize = @getimagesize(TL_ROOT '/' $strImage);
                if (
    is_array($arrSize) && strlen($arrSize[3]))
                {
                    
    $file['medium_size'] = $arrSize[3];
                }
                
                
    $file['medium'] = $strImage;

                
    $arrReturn[] = $file;
            }
            
            return 
    $arrReturn;
        }
        
    }

    ?>
    3. Neue Attribute anlegen welche vom Merchant Center benötigt werden
    be-attribute.JPG
    be-bearbeitung-attribute.JPG
    4. Feed sollte dann in etwa so aussehen:
    feed.JPG

    ANGABEN WIE IMMER OHNE GEWÄHR!

  16. #16
    Contao-Urgestein Avatar von ways2web
    Registriert seit
    23.03.2010.
    Ort
    Berlin
    Beiträge
    1.698
    User beschenken
    Wunschliste

    Standard

    wäre toll, wenn man die feedextension um csv erweitern könnte...
    damit man auch dienste wie preisroboter usw nutzen kann..

    leider fehlt mir da ein ausreichendes php-knowhow

    gruss
    ways

  17. #17
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.714
    User beschenken
    Wunschliste

    Standard

    Hallo Hauge,

    habe das aktuelle "Paket" von Github gezogen und in der Shopconfig die Sachen eingerichtet - habe nicht ganz verstanden, warum die Detailseite angewählt werden soll...

    aber - mein XML wird nicht erzeugt..??

    im sys-log steht

    PHP-Code:
    Details:     Generated product feed share/my-products-googlebase.xml
    Funktion
    :     Rhyme\IsotopeFeeds::generateFeeds 
    aber da ist keine Datei zu sehen

    hmmm - noch irgend was einzustellen?

    XML ist im Seitenlayout auch nicht als Feed zu finden..??

  18. #18
    Contao-Fan Avatar von Hauge
    Registriert seit
    31.01.2010.
    Beiträge
    643

    Standard

    Hey zonky,
    ich weiß leider nicht, ob das in den aktuellen Versionen von isotope noch funktioniert.
    Die damals angewandte Methode sollte damals nur eine Zwischenlösung gewesen sein, bis die feeds wieder funktionieren.
    Hier hat sich allerdings nun 3 Jahre nichts mehr getan, daher mussten wir leider schlussendlich auf Alternativen umsteigen.
    Wir hatten es glaub ich noch mit 1.4.0beta im Test, haben dann aber abgebrochen.
    Adhoc würde ich sagen, dass es für isotope > 2 vermutlich gar nicht mehr funktioniert. Wegen der Bilder wird u.U. auch Contao 3.x da Probleme machen.

    Gruß
    Hauge

  19. #19
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.714
    User beschenken
    Wunschliste

    Standard

    lt. https://github.com/RhymeDigital/isotope_feeds scheint das Paket relativ aktuell zu sein... jut, muss ich selber forschen oder Ticket schreiben...

    Gruss

  20. #20
    Contao-Fan Avatar von Hauge
    Registriert seit
    31.01.2010.
    Beiträge
    643

    Standard

    oups, das ist ja toll.
    Da wird Isotope wieder interessant für mich.
    Das hatte ich schon gar nicht mehr auf dem Schirm...

  21. #21
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.714
    User beschenken
    Wunschliste

    Standard

    ich habe versucht, mich durch die Dateien durchzuwurschteln... soweit ich das verstanden habe, wir per Ajax auf der Detailseite ein Script angeworfen, welches eine XML in einem Cache-Verzeichnis schreibt und alle die Daten werden per Cronjob zur RSS bzw. XML zusammen gefasst und in share gepackt...

    Ich kann nicht nachvollziehen, warum hier der Weg über Ajax gegangen wird und das ganze Caching-gedöns...

    In xt:C habe ich auch eine Google.xml und das ist ein recht simples Script, welches die DB-Abfragt und eine XML erzeugt - die Datei wird aufgerufen, wenn Google die XML abholen will und gut is.

  22. #22
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.714
    User beschenken
    Wunschliste

    Standard

    ahh... nochwas entdeckt: in der Shopkonfig > Produkttyp gibt es eine Auflistung mit Feed-Eigenschaften inkl. GTIN, Google-Taxonometrie usw. - wird aber nicht angezeigt bei Produkt...


    will man ein Produkt speichern, kommt

    PHP-Code:
    Fatal errorCall to undefined method Rhyme\Backend\IsotopeProduct\FeedCallbacks::cacheProduct() in /htdocs/contao/system/modules/isotope/drivers/DC_ProductData.php on line 769 

  23. #23
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.714
    User beschenken
    Wunschliste

    Standard

    @Hauge,

    ich habe nun was Handgestricktes eingebaut per Modul Produktlisting sowie einem angepasstem mod+iso-Template.

    Das Modul habe ich auf eine Seite gepackt und die Ausführung wird über einen Get-Parameter gesteuert (Aufruf per Cronjob).

    Der erste Check im Google MC sieht gut aus :-)

  24. #24
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.714
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von ways2web Beitrag anzeigen
    wäre toll, wenn man die feedextension um csv erweitern könnte...
    damit man auch dienste wie preisroboter usw nutzen kann..

    leider fehlt mir da ein ausreichendes php-knowhow

    gruss
    ways
    im Prinzip würde die Erweiterung von Rhyme das hergeben - wenn sie den läufen würde...

  25. #25
    AG CMS-Garden Avatar von felixpfeiffer
    Registriert seit
    05.06.2009.
    Ort
    Hannover
    Beiträge
    346
    Partner-ID
    372

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    @Hauge,

    ich habe nun was Handgestricktes eingebaut per Modul Produktlisting sowie einem angepasstem mod+iso-Template.

    Das Modul habe ich auf eine Seite gepackt und die Ausführung wird über einen Get-Parameter gesteuert (Aufruf per Cronjob).

    Der erste Check im Google MC sieht gut aus :-)
    Hallo, funktioniert deine Lösung noch und hättest du ein paar Ansätze, wie du genau vorgegangen bist?
    Felix Pfeiffer : Neue Medien
    Offizieller Contao Partner für den Raum Hannover

    Infos: http://www.felixpfeiffer.com

  26. #26
    Contao-Fan
    Registriert seit
    28.11.2011.
    Ort
    Nürnberg
    Beiträge
    691

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    ich habe versucht, mich durch die Dateien durchzuwurschteln... soweit ich das verstanden habe, wir per Ajax auf der Detailseite ein Script angeworfen, welches eine XML in einem Cache-Verzeichnis schreibt und alle die Daten werden per Cronjob zur RSS bzw. XML zusammen gefasst und in share gepackt...

    Ich kann nicht nachvollziehen, warum hier der Weg über Ajax gegangen wird und das ganze Caching-gedöns...

    In xt:C habe ich auch eine Google.xml und das ist ein recht simples Script, welches die DB-Abfragt und eine XML erzeugt - die Datei wird aufgerufen, wenn Google die XML abholen will und gut is.
    Hallo,

    ich habe auch die isotope_feeds bei mir installiert. Ich habe auch diese Konfiguration in isotope angegeben... etc. vorgenommen. Er hat mir dann auch einen Zähler hochgezählt beim Feeds-Button. Aber ich finde jetzt die xml Datei mit den Feeds nicht. Kannst du mir da auf die Sprünge helfen? Danke schon im Voraus dafür!

    Diese Erweiterung ist jetzt sehr wichtig für Shop-Betreiber, da Google jetzt die ganze Linke Spalte mit Google-Shopping Anzeigen bei der Suche ausspielt. Wer keine feeds hat, kann keine Anzeigen schalten. Ein Muss für ein Shopping-System wie isotope.

  27. #27
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.714
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von my-om Beitrag anzeigen
    Aber ich finde jetzt die xml Datei mit den Feeds nicht. Kannst du mir da auf die Sprünge helfen? Danke schon im Voraus dafür!
    müsste da landen, wo alle Contao-XMLs landen: /share

  28. #28
    Contao-Fan
    Registriert seit
    28.11.2011.
    Ort
    Nürnberg
    Beiträge
    691

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    müsste da landen, wo alle Contao-XMLs landen: /share
    Hi,

    Danke erst einmal für deine Antwort.

    sorry das ich mich jetzt erst melde, habe diese Mail-Adresse nicht im Fokus.

    Unter Share ist kein xml File

    Ich habe mir mal alle xml Dateien im Stack ausgeben lassen.
    aber da ist nichts drunter, was Sinn macht.

    Welchen Namen hat die Datei denn?

    Gruß

  29. #29
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.714
    User beschenken
    Wunschliste

    Standard

    ich habe das Modul nicht mehr im Einsatz

  30. #30
    Contao-Fan
    Registriert seit
    28.11.2011.
    Ort
    Nürnberg
    Beiträge
    691

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    ich habe das Modul nicht mehr im Einsatz
    Danke!

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •