mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-11-15 04:27:14 +01:00
mirakl required fields
This commit is contained in:
parent
f479a12c84
commit
365b87f734
@ -76,7 +76,7 @@ class Shopimporter_Mirakl extends ShopimporterBase {
|
|||||||
'size' => 40,
|
'size' => 40,
|
||||||
'info' => 'optional, int64'
|
'info' => 'optional, int64'
|
||||||
],
|
],
|
||||||
'category_identifier_source' => [
|
/* 'category_identifier_source' => [
|
||||||
'typ' => 'select',
|
'typ' => 'select',
|
||||||
'bezeichnung' => '{|Kategorie-Identifizierer|}:',
|
'bezeichnung' => '{|Kategorie-Identifizierer|}:',
|
||||||
'size' => 40,
|
'size' => 40,
|
||||||
@ -89,34 +89,15 @@ class Shopimporter_Mirakl extends ShopimporterBase {
|
|||||||
'size' => 40,
|
'size' => 40,
|
||||||
'info' => 'Wenn oben Freifeld oder Eigenschaft gewählt wurde'
|
'info' => 'Wenn oben Freifeld oder Eigenschaft gewählt wurde'
|
||||||
],
|
],
|
||||||
'product_identifier_type' => [
|
|
||||||
'typ' => 'text',
|
|
||||||
'bezeichnung' => '{|Produkt-Identifizierertyp in Mirakl|}:',
|
|
||||||
'size' => 40,
|
|
||||||
'info' => 'Z.B. EAN'
|
|
||||||
],
|
|
||||||
'product_identifier_source' => [
|
|
||||||
'typ' => 'select',
|
|
||||||
'bezeichnung' => '{|Produkt-Identifizierer|}:',
|
|
||||||
'size' => 40,
|
|
||||||
'optionen' => ['Artikelnummer' => '{|Artikelnummer|}', 'Herstellernummer' => '{|Herstellernummer|}', 'EAN' => '{|EAN|}', 'Freifeld' => 'Freifeld', 'Eigenschaft' => 'Eigenschaft'],
|
|
||||||
'info' => 'Feld in OpenXE für die Zuordnung der Artikel zu den Katalogprodukten in Mirakl'
|
|
||||||
],
|
|
||||||
'product_identifier_source_field' => [
|
|
||||||
'typ' => 'text',
|
|
||||||
'bezeichnung' => '{|Produkt-Identifizierer Freifeld oder Eigenschaft|}:',
|
|
||||||
'size' => 40,
|
|
||||||
'info' => 'Wenn oben Freifeld oder Eigenschaft gewählt wurde'
|
|
||||||
],
|
|
||||||
'product_field_map' => [
|
'product_field_map' => [
|
||||||
'typ' => 'textarea',
|
'typ' => 'textarea',
|
||||||
'bezeichnung' => '{|Zuordnung Produkt-Felder je Kategorie (JSON)|}:',
|
'bezeichnung' => '{|Zuordnung Produkt-Felder je Kategorie (JSON)|}:',
|
||||||
'info' => 'Die Felder werden vom Mirakl-Betreiber vorgegeben. Mögliche Zuordnungen aus OpenXE sind: Artikelnummer, Artikelname, Einheit, Hersteller, Herstellernummer, EAN oder eine konkrete Artikeleigenschaft'
|
'info' => 'Die Felder werden vom Mirakl-Betreiber vorgegeben. Mögliche Zuordnungen aus OpenXE sind: Artikelnummer, Artikelname, Einheit, Hersteller, Herstellernummer, EAN oder eine konkrete Artikeleigenschaft'
|
||||||
],
|
],*/
|
||||||
'offer_field_map' => [
|
'offer_field_map' => [
|
||||||
'typ' => 'textarea',
|
'typ' => 'textarea',
|
||||||
'bezeichnung' => '{|Zuordnung Angebots-Felder je Kategorie (JSON)|}:',
|
'bezeichnung' => '{|Zuordnung Angebots-Felder je Kategorie (JSON)|}:',
|
||||||
'info' => 'Die Felder werden vom Mirakl-Betreiber vorgegeben. Mögliche Zuordnungen aus OpenXE sind: nummer, name_de, einheit, hersteller, herstellernummer, ean u.v.m. Freifelder: {"freifeld": "Freifeld1-40"}, Eigenschaften: {"eigenschaft": "Eigenschaftenname xyz"}, Fester Wert: {"wert": "xyz"}, Zusatzfelder zusätzlich mit der Eigenschaft "zusatzfeld": true versehen: z.B. {"freifeld": "Freifeld1", "zusatzfeld": true}'
|
'info' => 'Die Felder werden vom Mirakl-Betreiber vorgegeben. Zuordnung über "Mirakl-xyz": {"feld": "xyz"} oder kurz "Mirakl-xyz": "xyz" Mögliche Zuordnungen aus OpenXE sind: nummer, name_de, einheit, hersteller, herstellernummer, ean u.v.m. Freifelder wie im Reiter Freifelder mit Präfix \'freifeld_\', Eigenschaften: {"eigenschaft": "Eigenschaftenname xyz"}, Fester Wert: {"wert": "xyz"}, Zusatzfelder zusätzlich mit der Eigenschaft "zusatzfeld": true versehen: z.B. {"feld": "name_de", "zusatzfeld": true}'
|
||||||
],
|
],
|
||||||
/*
|
/*
|
||||||
'steuergruppen' => [
|
'steuergruppen' => [
|
||||||
@ -310,45 +291,57 @@ class Shopimporter_Mirakl extends ShopimporterBase {
|
|||||||
$additional_fields = array();
|
$additional_fields = array();
|
||||||
|
|
||||||
// Required attributes
|
// Required attributes
|
||||||
|
|
||||||
|
$required = [
|
||||||
|
'product_id_type',
|
||||||
|
'product_id',
|
||||||
|
'shop_sku',
|
||||||
|
'price'
|
||||||
|
];
|
||||||
|
|
||||||
|
$missing = null;
|
||||||
|
|
||||||
|
foreach ($required as $key) {
|
||||||
|
if (!isset($this->offer_field_map[$key])) {
|
||||||
|
$missing[] = $key;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($missing) {
|
||||||
|
return(array('status' => false, 'message' => "Missing required field: ".implode(', ',$missing)));
|
||||||
|
}
|
||||||
|
|
||||||
$offer_for_mirakl = array(
|
$offer_for_mirakl = array(
|
||||||
'product_id_type' => $this->product_identifier_type,
|
|
||||||
'product_id' => $article['nummer'], // TBD
|
|
||||||
'shop_sku' => $article['nummer'], // TBD
|
|
||||||
'price' => $article['preis'],
|
|
||||||
'state_code' => '11', // ?!?!
|
'state_code' => '11', // ?!?!
|
||||||
'update_delete' => null // Update delete flag. Could be empty (means "update"), "update" or "delete".
|
'update_delete' => null // Update delete flag. Could be empty (means "update"), "update" or "delete".
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// print_r($this->offer_field_map);
|
||||||
|
|
||||||
foreach ($this->offer_field_map as $offer_field => $offer_field_source) {
|
foreach ($this->offer_field_map as $offer_field => $offer_field_source) {
|
||||||
|
|
||||||
$offer_field_value = null;
|
|
||||||
|
|
||||||
print_r($this->offer_field_map);
|
|
||||||
|
|
||||||
if (!is_array($offer_field_source)) {
|
if (!is_array($offer_field_source)) {
|
||||||
if (!isset($article[$offer_field_source])) {
|
$offer_field_source = array('feld' => $offer_field_source);
|
||||||
throw new Exception("Artikelfeld \"".$offer_field_source."\" nicht vorhanden.");
|
}
|
||||||
}
|
|
||||||
$offer_field_value = $article[$offer_field_source];
|
|
||||||
} else {
|
|
||||||
|
|
||||||
$is_additional_field = false;
|
$offer_field_value = null;
|
||||||
|
$is_additional_field = false;
|
||||||
|
|
||||||
foreach ($offer_field_source as $key => $value) {
|
foreach ($offer_field_source as $key => $value) {
|
||||||
switch ($key) {
|
switch ($key) {
|
||||||
case 'freifeld':
|
case 'feld':
|
||||||
// TBD
|
$offer_field_value = $article[$value];
|
||||||
break;
|
break;
|
||||||
case 'eigenschaft':
|
case 'eigenschaft':
|
||||||
// TBD
|
$sql = "SELECT wert FROM artikeleigenschaften ae INNER JOIN artikeleigenschaftenwerte aew ON aew.artikeleigenschaften = ae.id WHERE aew.artikel = '".$article['artikelid']."' AND ae.name = '".$value."' LIMIT 1";
|
||||||
break;
|
$offer_field_value = $this->app->DB->Select($sql);
|
||||||
case 'wert':
|
break;
|
||||||
$offer_field_value = $value;
|
case 'wert':
|
||||||
break;
|
$offer_field_value = $value;
|
||||||
case 'zusatzfeld':
|
break;
|
||||||
$is_additional_field = $value;
|
case 'zusatzfeld':
|
||||||
break;
|
$is_additional_field = $value;
|
||||||
}
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user