Import der Produkte aus dem OXID eShop

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?

Guten Morgen,

hatte bisher keiner das Problem des Importes mit zwei Sprachen? Die Kategorien werden importiert aber die Artikel nicht den Sprachen zugeordnet.

Wäre schön, wenn mir jemand weiterhelfen kann.

Danke!