From adeacbc11b6ae7ca5f1296135d59b48d9ed63ca8 Mon Sep 17 00:00:00 2001 From: Jacek Pyziak Date: Sun, 30 Mar 2025 18:42:49 +0200 Subject: [PATCH] =?UTF-8?q?Dodanie=20obs=C5=82ugi=20rodzica=20w=20metodach?= =?UTF-8?q?=20get=5Fproduct=5Fsku=20i=20get=5Fproduct=5Fean=20w=20klasie?= =?UTF-8?q?=20ShopProduct?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- autoload/front/factory/class.ShopProduct.php | 34 +++++++++++++++++--- cron.php | 4 +-- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/autoload/front/factory/class.ShopProduct.php b/autoload/front/factory/class.ShopProduct.php index 3453a3d..25bd2bd 100644 --- a/autoload/front/factory/class.ShopProduct.php +++ b/autoload/front/factory/class.ShopProduct.php @@ -15,17 +15,43 @@ class ShopProduct } // get_product_sku - static public function get_product_sku( $product_id ) + static public function get_product_sku( $product_id, $parent = false ) { global $mdb; - return $mdb -> get( 'pp_shop_products', 'sku', [ 'id' => $product_id ] ); + + $sku = $mdb -> get( 'pp_shop_products', 'sku', [ 'id' => $product_id ] ); + if ( !$sku and $parent ) + { + $parent_id = $mdb -> get( 'pp_shop_products', 'parent_id', [ 'id' => $product_id ] ); + if ( $parent_id ) + return \front\factory\ShopProduct::get_product_sku( $parent_id, true ); + else + return false; + } + else + { + return $sku; + } } // get_product_ean - static public function get_product_ean( $product_id ) + static public function get_product_ean( $product_id, $parent = false ) { global $mdb; - return $mdb -> get( 'pp_shop_products', 'ean', [ 'id' => $product_id ] ); + + $ean = $mdb -> get( 'pp_shop_products', 'ean', [ 'id' => $product_id ] ); + if ( !$ean and $parent ) + { + $parent_id = $mdb -> get( 'pp_shop_products', 'parent_id', [ 'id' => $product_id ] ); + if ( $parent_id ) + return \front\factory\ShopProduct::get_product_ean( $parent_id, true ); + else + return false; + } + else + { + return $ean; + } } static public function is_product_active( int $product_id ) diff --git a/cron.php b/cron.php index 7d4ce43..82d6056 100644 --- a/cron.php +++ b/cron.php @@ -449,11 +449,11 @@ if ( $apilo_settings['enabled'] and $apilo_settings['sync_orders'] and $apilo_se $products_array = []; foreach ( $products as $product ) { - $sku = \front\factory\ShopProduct::get_product_sku( $product['product_id'] ); + $sku = \front\factory\ShopProduct::get_product_sku( $product['product_id'], true ); $products_array[] = [ 'idExternal' => $product['product_id'], - 'ean' => \front\factory\ShopProduct::get_product_ean( $product['product_id'] ), + 'ean' => \front\factory\ShopProduct::get_product_ean( $product['product_id'], true ), 'sku' => $sku ? $sku : md5( $product['product_id'] ), 'originalName' => $product['name'], 'originalPriceWithTax' => $product['price_brutto_promo'] ? str_replace( ',', '.', $product['price_brutto_promo'] ) : str_replace( ',', '.', $product['price_brutto'] ),