コード例 #1
0
ファイル: EbaySynchronizer.php プロジェクト: poonc/ebay
 private static function _loadVariations($product, $ebay_profile, $context, $ebay_category)
 {
     $variations = array();
     if (version_compare(_PS_VERSION_, '1.5', '>')) {
         $combinations = $product->getAttributeCombinations($context->cookie->id_lang);
     } else {
         $combinations = $product->getAttributeCombinaisons($context->cookie->id_lang);
     }
     foreach ($combinations as $combinaison) {
         $price = Product::getPriceStatic((int) $combinaison['id_product'], true, (int) $combinaison['id_product_attribute']);
         $price_original = Product::getPriceStatic((int) $combinaison['id_product'], true, (int) $combinaison['id_product_attribute'], 6, null, false, false);
         // convert price to destination currency
         $currency = new Currency((int) $ebay_profile->getConfiguration('EBAY_CURRENCY'));
         $price *= $currency->conversion_rate;
         $price_original *= $currency->conversion_rate;
         $variation = array('id_attribute' => $combinaison['id_product_attribute'], 'reference' => $combinaison['reference'], 'ean13' => $combinaison['ean13'], 'quantity' => $combinaison['quantity'], 'price_static' => $price, 'variation_specifics' => EbaySynchronizer::_getVariationSpecifics($combinaison['id_product'], $combinaison['id_product_attribute'], $context->cookie->id_lang, $ebay_profile->ebay_site_id, $ebay_category), 'variations' => array(array('name' => $combinaison['group_name'], 'value' => $combinaison['attribute_name'])));
         if (preg_match('#[-]{0,1}[0-9]{1,2}%$#is', $ebay_category->getPercent())) {
             $price *= 1 + $ebay_category->getPercent() / 100;
         } else {
             $price += $ebay_category->getPercent();
         }
         $variation['price'] = round($price, 2);
         if ($ebay_category->getPercent() < 0) {
             $variation['price_original'] = round($price_original, 2);
         } else {
             if ($price_original > $price) {
                 $variation['price_original'] = round($price_original, 2);
             }
         }
         if (isset($variation['price_original'])) {
             $variation['price_percent'] = round(($price_original - $price) / $price_original * 100.0);
         }
         $variation_key = $combinaison['id_product'] . '-' . $combinaison['id_product_attribute'] . '_' . $ebay_profile->id;
         $variations[$variation_key] = $variation;
     }
     // Load Variations Pictures
     $combination_images = $product->getCombinationImages($context->cookie->id_lang);
     $large = new ImageType((int) $ebay_profile->getConfiguration('EBAY_PICTURE_SIZE_BIG'));
     if (!empty($combination_images)) {
         foreach ($combination_images as $combination_image) {
             foreach ($combination_image as $image) {
                 // If issue, it's because of https/http in the url
                 $link = EbaySynchronizer::_getPictureLink($product->id, $image['id_image'], $context->link, $large->name);
                 $variations[$product->id . '-' . $image['id_product_attribute'] . '_' . $ebay_profile->id]['pictures'][] = $link;
             }
         }
     }
     return $variations;
 }
コード例 #2
0
 private static function _loadVariations($product, $context, $ebay_category)
 {
     $variations = array();
     if (version_compare(_PS_VERSION_, '1.5', '>')) {
         $combinations = $product->getAttributeCombinations($context->cookie->id_lang);
     } else {
         $combinations = $product->getAttributeCombinaisons($context->cookie->id_lang);
     }
     foreach ($combinations as $combinaison) {
         $price = Product::getPriceStatic((int) $combinaison['id_product'], true, (int) $combinaison['id_product_attribute']);
         $variation = array('id_attribute' => $combinaison['id_product_attribute'], 'reference' => $combinaison['reference'], 'quantity' => $combinaison['quantity'], 'price_static' => $price, 'variation_specifics' => EbaySynchronizer::_getVariationSpecifics($combinaison['id_product'], $combinaison['id_product_attribute'], $context->cookie->id_lang), 'variations' => array(array('name' => $combinaison['group_name'], 'value' => $combinaison['attribute_name'])));
         $price_original = $price;
         if (preg_match('#[-]{0,1}[0-9]{1,2}%$#is', $ebay_category->getPercent())) {
             $price *= 1 + $ebay_category->getPercent() / 100;
         } else {
             $price += $ebay_category->getPercent();
         }
         $variation['price'] = round($price, 2);
         if ($ebay_category->getPercent() < 0) {
             $variation['price_original'] = round($price_original, 2);
             $variation['price_percent'] = round($ebay_category->getPercent());
         }
         $variation_key = $combinaison['id_product'] . '-' . $combinaison['id_product_attribute'];
         $variations[$variation_key] = $variation;
     }
     // Load Variations Pictures
     $combination_images = $product->getCombinationImages($context->cookie->id_lang);
     if (!empty($combination_images)) {
         foreach ($combination_images as $combination_image) {
             foreach ($combination_image as $image) {
                 // If issue, it's because of https/http in the url
                 $link = EbaySynchronizer::_getPictureLink($product->id, $image['id_image'], $context->link, 'large');
                 $variations[$product->id . '-' . $image['id_product_attribute']]['pictures'][] = $link;
             }
         }
     }
     return $variations;
 }