diff --git a/classes/Modules/Shopware6/Client/Shopware6Client.php b/classes/Modules/Shopware6/Client/Shopware6Client.php index 8ea75f4a..a7b3eed3 100644 --- a/classes/Modules/Shopware6/Client/Shopware6Client.php +++ b/classes/Modules/Shopware6/Client/Shopware6Client.php @@ -73,7 +73,7 @@ final class Shopware6Client $request = new ClientRequest( $method, - $this->url . 'v2/' . $endpoint, + $this->url . $endpoint, $headerInformation, empty($body) ? null : json_encode($body) ); diff --git a/classes/Modules/SubscriptionCycle/SubscriptionModule.php b/classes/Modules/SubscriptionCycle/SubscriptionModule.php index ef31098a..d672c6a3 100644 --- a/classes/Modules/SubscriptionCycle/SubscriptionModule.php +++ b/classes/Modules/SubscriptionCycle/SubscriptionModule.php @@ -31,14 +31,14 @@ class SubscriptionModule implements SubscriptionModuleInterface aa.id, @start := GREATEST(aa.startdatum, aa.abgerechnetbis) as start, @end := IF(aa.enddatum = '0000-00-00' OR aa.enddatum > :calcdate, :calcdate, aa.enddatum) as end, - @cycles := CASE + @cycles := GREATEST(aa.zahlzyklus, CASE WHEN aa.preisart = 'monat' THEN TIMESTAMPDIFF(MONTH, @start, @end) WHEN aa.preisart = 'jahr' THEN TIMESTAMPDIFF(YEAR, @start, @end) WHEN aa.preisart = '30tage' THEN FLOOR(TIMESTAMPDIFF(DAY, @start, @end) / 30) - END+1 as cycles, + END+1) as cycles, CASE WHEN aa.preisart = 'monat' THEN DATE_ADD(@start, INTERVAL @cycles MONTH) diff --git a/www/lib/class.erpapi.php b/www/lib/class.erpapi.php index c77cc6ca..87e71fc0 100644 --- a/www/lib/class.erpapi.php +++ b/www/lib/class.erpapi.php @@ -21095,7 +21095,7 @@ function ChargenMHDAuslagern($artikel, $menge, $lagerplatztyp, $lpid,$typ,$wert, $pseudolager = !empty($shopAricleArr['pseudolager'])?(float)$shopAricleArr['pseudolager']:0; } else { - $pseudolager = ''; + $pseudolager = 0; } $this->app->erp->RunHook('remote_send_article_list_pseudostorage', 3, $shop, $artikelid, $pseudolager); if(is_numeric($pseudolager) && $pseudolager < 0) { diff --git a/www/pages/rechnungslauf.php b/www/pages/rechnungslauf.php index dcb0313a..e09e1f89 100644 --- a/www/pages/rechnungslauf.php +++ b/www/pages/rechnungslauf.php @@ -94,7 +94,7 @@ class Rechnungslauf { DATE_ADD(@start, INTERVAL (FLOOR(TIMESTAMPDIFF(DAY, @start, IF(aa.enddatum = '0000-00-00' OR aa.enddatum > '$scalcdate', '$scalcdate', aa.enddatum)) / 30)+1)*30 DAY ) END, '%d.%m.%Y') SEPARATOR '
') as end, SUM((100-aa.rabatt)/100 * aa.preis * aa.menge * - (CASE + (GREATEST(aa.zahlzyklus, CASE WHEN aa.preisart = 'monat' THEN TIMESTAMPDIFF(MONTH, @start, @end) WHEN aa.preisart = 'jahr' THEN @@ -102,7 +102,7 @@ class Rechnungslauf { WHEN aa.preisart = '30tage' THEN FLOOR(TIMESTAMPDIFF(DAY, @start, @end) / 30) END - ) + )) ) as amount, adr.id FROM abrechnungsartikel aa diff --git a/www/pages/shopimporter_presta.php b/www/pages/shopimporter_presta.php index cce154a8..c669f07c 100644 --- a/www/pages/shopimporter_presta.php +++ b/www/pages/shopimporter_presta.php @@ -23,6 +23,7 @@ class Shopimporter_Presta extends ShopimporterBase // TODO private $langidToIso = [3 => 'de', 1 => 'en']; private $taxationByDestinationCountry; + private $orderSearchLimit; public function __construct($app, $intern = false) @@ -284,17 +285,20 @@ class Shopimporter_Presta extends ShopimporterBase $cart['articlelist'] = []; foreach ($order->associations->order_rows->order_row as $order_row) { - - $steuersatz = (strval($order_row->unit_price_tax_incl) / strval($order_row->unit_price_tax_excl)) - 1; - $steuersatz = round($steuersatz, 1); - - $cart['articlelist'][] = [ + $article = [ 'articleid' => strval($order_row->product_reference), 'name' => strval($order_row->product_name), 'quantity' => strval($order_row->product_quantity), 'price_netto' => strval($order_row->unit_price_tax_excl), - 'steuersatz' => $steuersatz ]; + + if ($order_row->unit_price_tax_excl > 0) { + $steuersatz = (strval($order_row->unit_price_tax_incl) / strval($order_row->unit_price_tax_excl)) - 1; + $steuersatz = round($steuersatz, 1); + $article['steuersatz'] = $steuersatz; + } + + $cart['articlelist'][] = $article; } $fetchedOrders[] = [ @@ -381,13 +385,26 @@ class Shopimporter_Presta extends ShopimporterBase $res['kurztext_de'] = strip_tags($shortdescriptions['de']); $res['kurztext_en'] = strip_tags($shortdescriptions['en']); $res['hersteller'] = strval($product->product->manufacturer_name); - $res['metakeywords_de'] = $metakeywords['de']; - $res['metakeywords_en'] = $metakeywords['en']; $res['metatitle_de'] = $metatitles['de']; $res['metatitle_en'] = $metatitles['en']; $res['metadescription_de'] = $metadescriptions['de']; $res['metadescription_en'] = $metadescriptions['en']; + $tags = $product->product->associations->tags->tag; + $keywords = []; + foreach ($tags as $tag) { + $tagid = intval($tag->id); + $endpoint = "tags/{$tagid}"; + $tagdata = $this->prestaRequest('GET', $endpoint); + $tagiso = $this->langidToIso[intval($tagdata->tag->id_lang)]; + $tagvalue = strval($tagdata->tag->name); + if (!array_key_exists($tagiso, $keywords)) + $keywords[$tagiso] = []; + $keywords[$tagiso][] = $tagvalue; + } + $res['metakeywords_de'] = join(',', $keywords['de'] ?? []); + $res['metakeywords_en'] = join(',', $keywords['en'] ?? []); + $images = []; foreach ($product->product->associations->images->image as $img) { $endpoint = "images/products/$productId/$img->id";