Wir sind gerade dabei einen OXID eShop auf Shopware zu migrieren. Die OXID Produkte lassen sich anscheinend nicht in 2 Sprachen migrieren.
Im Migrationsplugin in der Datei Oxid.php und Methode getProductSelect ist die Mehrsprachigkeit nicht vorgesehen:
{code}
**return ****"
SELECT
a.OXID as productID
,
a.OXPARENTID as parentID
,
a.OXARTNUM as ordernumber,
a.OXACTIVE as active,
a.OXTITLE as name,
a.OXVARSELECT as additionaltext,
COALESCE (a2.OXVARNAME, ‘’) as variant_group_names,
a.OXSHORTDESC as description,
a.OXSEARCHKEYS as keywords,
a.OXWEIGHT as weight,
a.OXDELIVERY as releasedate,
a.OXSTOCK as instock,
a.OXREMINDAMOUNT as minstock,
a.OXMPN as suppliernumber,
a.OXFREESHIPPING as shippingfree,
CONCAT(
IF(a.OXDELTIMEUNIT=‘WEEK’, a.OXMINDELTIME*7, a.OXMINDELTIME),
IF(a.OXMAXDELTIME!=0, CONCAT(’-’, IF(a.OXDELTIMEUNIT=‘WEEK’, a.OXMAXDELTIME*7, a.OXMAXDELTIME)), ‘’)
) as shippingtime,
COALESCE (a2.OXVAT, a.OXVAT) as tax,
a.OXTPRICE as pseudoprice,
a.OXBPRICE as baseprice,
a.OXPRICE as price,
– a.OXPRICEA as price_A,
– a.OXPRICEB as price_B,
– a.OXPRICEC as price_C,
s.OXTITLE as supplier,
e.OXLONGDESC as description_long,
e.OXTAGS as tags,
a.OXEXTURL as link,
a.OXURLDESC as link_description,
a.OXLENGTH as length,
a.OXWIDTH as width,
a.OXHEIGHT as height,
a.OXEAN as ean,
LOWER (REPLACE(a.OXUNITNAME, ‘_UNIT_’, ‘’)) as packunit,
a.OXUNITQUANTITY as purchaseunit
FROM {$this->quoteTable(‘articles’ , ‘a’**)}
LEFT JOIN {$this->quoteTable( ‘manufacturers’ , ‘s’ )}
**ON s.OXID=a.OXMANUFACTURERID
LEFT JOIN **
{$this->quoteTable( ‘articles’ , ‘a2’ )}
**ON a2.OXID=a.OXPARENTID
LEFT JOIN **
{$this->quoteTable( ‘artextends’ , ‘e’ )}
**ON e.OXID=a.OXID
– Make sure to no import children products before the parent was imported
ORDER BY parentID
"**
;
{/code}
Beim Import der Kategorien in der Methode getCategorySelect ist die Abfrage an OXID Mehrsprachig aufgebaut siehe:
{code}
$baseShopId = $this-\>getBaseShopId(); $keys = $this-\>getLanguageKeys(); $sql = [ **" SELECT c.OXID as categoryID, (CASE WHEN c.OXLEFT = 1 THEN '' ELSE c.OXPARENTID END) as parentID, ** {$this-\>Db()-\>quote($keys[0])} **as languageID, -- OXSHOPID as shopID, c.OXTITLE as description, c.OXDESC as cmsheadline, c.OXLONGDESC as cmstext, c.OXACTIVE as active, c.OXHIDDEN as hidetop, c.OXSORT as position, c.OXEXTLINK as external, c.OXLEFT as catLeft, s.OXKEYWORDS as metaKeywords, s.OXDESCRIPTION as metaDescription FROM** {$this-\>quoteTable( **'categories'** , **'c'** )} ** LEFT JOIN** {$this-\>quoteTable( **'object2seodata'** , **'s'** )} ** ON s.OXOBJECTID = c.OXID WHERE c.OXSHOPID='** {$baseShopId} **' " ** ]; **foreach** ($keys **as** $key =\> $languageID) { **if** ( **empty** ($key)) { **continue** ; } $sql[] = **" SELECT c.OXID as categoryID, (CASE WHEN c.OXPARENTID = 'oxrootid' THEN '' ELSE c.OXPARENTID END) as parentID, ** {$this-\>Db()-\>quote($languageID)} **as languageID, -- OXSHOPID as shopID, IF(c.OXTITLE\_**$key **='', c.OXTITLE, c.OXTITLE\_** $key**) as description, IF(c.OXDESC\_**$key **='', c.OXDESC, c.OXDESC\_** $key**) as cmsheadline, IF(c.OXLONGDESC\_**$key **='', c.OXLONGDESC, c.OXLONGDESC\_** $key**) as cmstext, IF(c.OXACTIVE\_**$key **='', c.OXACTIVE, c.OXACTIVE\_** $key**) as active, c.OXHIDDEN as hidetop, c.OXSORT as position, c.OXEXTLINK as external, c.OXLEFT as catLeft, s.OXKEYWORDS as metaKeywords, s.OXDESCRIPTION as metaDescription FROM** {$this-\>quoteTable( **'categories'** , **'c'** )} ** LEFT JOIN** {$this-\>quoteTable( **'object2seodata'** , **'s'** )} ** ON s.OXOBJECTID = OXID WHERE c.OXSHOPID='** {$baseShopId} **' "** ; } **return '('**. _implode_(**') UNION ALL ('**, $sql) . **') ORDER BY catLeft'**;
{/code}
Hat jemand eine Idee wie wir das Problem lösen können? Oder bereits schon eine Lösung hierfür?