so weit so klar - nur in welchem Datenbankfeld ist die Produktkategorie hinterlegt (bzw. wo wird diese dem Produkt zugewiesen)?
$query=âselect oxcatnid
from oxobject2category
where oxobjectid = 'â.$oxid.ââ
order by oxtime
limit 1;â;
aus getMainCategoryId() (sortiert nach Zeit und auf 1 limitiert, um nur die Hauptkategorie zu erhalten). Daraus geht denn die SEO-Url hervor.
- ist denn in irgendeinem SQL-Datenbank-Feld die Google-Produktkategorie hinterlegt (bzw. wo wird diese dem Produkt zugewiesen)?
- z.B. erwartet das Google-Merchant-Center eine Kategorie wie z.B. âElektronik > Netzwerktechnik > Hubs & SchalterââŠ
- woher holt der marmGoogleExporter.php die Daten fĂŒr das Feld âGoogle Produktkategorie/google_categoryPathâ? Bei mir bleibt nach AusfĂŒhrung der PHP-Datei diese Spalte leider leerâŠ
Wie oben geschrieben, kenne ich das Modul eigentlich nicht. OK, jetzt schon
Die Klasse âmarmGoogleExporterâ hat eine eigene Methode âgetSeoUrlâ und hĂ€ngt damit fĂŒr Google Parameter an.
Ausgegeben wird es in der Parent:
$sLink = $this->sShopURL.$this->_config[âproductLinkPrefixâ].$oxid;
return $sLink;
Dann lass Dir den o.g. Query von der Kategorie beim Export ausgeben
echo $query;
, um die Abfrage manuell in phpMyAdmin o.À. testen zu können.
welche SQL-Befehle soll ich denn konkret im phpMyAdmin eingeben?
- wo wird denn die Google-Produktkategorie dem jeweiligen Produkt im Shop zugewiesen?
- hier finden sich Infos zur Google-Produktkategorie: https://support.google.com/merchants/answer/6324436?hl=de
public function getMainCategoryId($oxid)
{
if (isset($this->tempMainCategoryId[$oxid]))
{
return $this->tempMainCategoryId[$oxid];
}
$query="select oxcatnid
from oxobject2category
where oxobjectid = '".$oxid."'
order by oxtime
limit 1;";
echo $query;
$rs = mysql_query($query);
if ($rs)
{
while($row = mysql_fetch_array($rs))
{
// caching query
$this->tempMainCategoryId[$oxid] = $row['oxcatnid'];
return $row['oxcatnid'];
}
}
// caching query
$this->tempMainCategoryId[$oxid] = '';
return '';
}
-
Die Hauptkategorie wird fĂŒr Google exportiert und Informationen angehangen.
-
Ob die noch up-to-date sind, weiĂ ich nicht.
das kommt im phpMyAdmin zurĂŒck:
Statische Analyse:
13 Fehler wurden wÀhrend der Analyse gefunden.
- Unerwartetes Zeichen. (near â$â at position 34)
- Unerwartetes Zeichen. (near â{â at position 42)
- Unerwartetes Zeichen. (near â$â at position 55)
- Unerwartetes Zeichen. (near â[â at position 80)
- Unerwartetes Zeichen. (near â$â at position 81)
- Unerwartetes Zeichen. (near â]â at position 86)
- Unerwartetes Zeichen. (near â{â at position 91)
- Unerwartetes Zeichen. (near â$â at position 101)
- Unerwartetes Zeichen. (near â[â at position 126)
- Unerwartetes Zeichen. (near â$â at position 127)
- Unerwartetes Zeichen. (near â]â at position 132)
- Unerwarteter Statement-Anfang. (near âpublicâ at position 0)
- Unerkannte Statement-Typ. (near âfunctionâ at position 7)
SQL-Befehl:
public function getMainCategoryId($oxid) { if (isset($this->tempMainCategoryId[$oxid])) { return $this->tempMainCategoryId[$oxid]
#1064 - Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen bei 'public function getMainCategoryId($oxid){if (isset($this->tempMainCategoryId' in Zeile 1
Ich hoffe, Du hast das obige nicht ganz kopiert und nur echo $query; ergÀnzt. Alles andere ist tödlich, weil beim Kopieren Zeichen verÀndert wieder ausgegeben werden. Sonst poste doch mal die Abfrage, die ausgegeben wird.
doch ich hatte alles in phpMyAdmin eingegeben und dann nur die bereits geposteten Fehlermeldungen bekommen
welche SQL-Befehle soll ich denn konkret im phpMyAdmin eingeben?
Ooooh, ok
Also Du kannst echo $query; unterhalb von
$query=âselect oxcatnid
from oxobject2category
where oxobjectid = 'â.$oxid.ââ
order by oxtime
limit 1;â;
eintragen. Dies bewirkt die Ausgabe der Abfrage, wenn das Skript ausgefĂŒhrt wird. Diese Abfrage kannst Du dann kopieren und in phpMyAdmin einfĂŒgen. Wenn Du nicht klar kommst und ich Zeit habe, werde ich das Modul mal installieren. Welche Shopversion nutzt Du?
Ich habe nun in phpMyAdmin eingegeben:
$query=âselect oxcatnid
from oxobject2category
where oxobjectid = 'â.$oxid."â
order by oxtime
limit 1;";
echo $query;
eine Ausgabe auf der Konsole erfolgt danach nicht
Meine Shopversion ist 6.1.4 / PHP 7.1
das Script versucht das Feld JXGOOGLETAXONOMY aus der Tabelle oxcategories zu lesen:
-> $query = âSELECT OXID, JXGOOGLETAXONOMY FROM oxcategoriesâ;
Wenn dieses Feld nicht existiert oder leer ist wird auch in der csv-Datei nichts ausgegeben
Stimmt, wie oben bereits erwÀhnt: Attribute aus Oxid per marmcsvexporter in eine CSV - #40 by rubbercut
Das fehlt natĂŒrlich dann. Jedenfalls kann ich dazu nichts finden.
scheinbar wird um die Datenbank zu fĂŒllen ein weiters Modul benötigt:
ist aber fĂŒr Ă€ltere Versionen
Das macht Sinn. Naja, vielleicht hat jemand Zeit.
Vielleicht âŠ
Aber man kann das Feld ja auch zu Fuss ĂŒber phpMyAdmin fĂŒllen da dies ja mehr oder weniger eine Einmal-Aktion ist
( zumindest habe ich es mal so vor Jahren gemacht - mittlerweile ist es in unserem WaWi eingebaut )
Sinn macht das mit job963/jxTaxo - allerdings lÀuft das nicht mit meiner Shopversion (6.1.4 / PHP 7.1).
Ich habe also nun das Datenbank-Feld JXGOOGLETAXONOMY in oxcategories erstmal von Hand befĂŒlltâŠ
Danke allerseits!
OK, wenn es damit lÀuft, wÀre das Folgende die Schlussinfo: Feld anlegen und Werte (Google-Produktkategorie [google_product_category] - Google Merchant Center-Hilfe) manuell eintragen:
ALTER TABLE oxcategories ADD COLUMN
JXGOOGLETAXONOMY
VARCHAR(255) NULL;
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.