PHP Magento/Google导入脚本


PHP Magento/Google import script

我从另一个Stack Overflow答案中获取了以下脚本。

<?php
define('SAVE_FEED_LOCATION','google_base_feed.txt');
set_time_limit(1800);
require_once '../app/Mage.php';
Mage::app('default');
try{
    $handle = fopen(SAVE_FEED_LOCATION, 'w');
    $heading = array('id','mpn', 'upc','title','description','link','image_link','price','brand','product_type','condition', 'google_product_category', 'manufacturer', 'availability');
    $feed_line=implode("'t", $heading)."'r'n";
    fwrite($handle, $feed_line);
    $products = Mage::getModel('catalog/product')->getCollection();
    $products->addAttributeToFilter('status', 1);
    $products->addAttributeToFilter('visibility', 4);
    $products->addAttributeToSelect('*');
    $prodIds=$products->getAllIds();
    $product = Mage::getModel('catalog/product');
    $counter_test = 0;
    foreach($prodIds as $productId) {
        if (++$counter_test < 30000){
            $product->load($productId);
            $product_data = array();
            $product_data['sku'] = $product->getSku();
            $product_data['mpn'] = $product->getData('upc');
            $product_data['upc'] = $product->getData('upc');
            $title_temp = $product->getName();
            if (strlen($title_temp) > 70){
                $title_temp = str_replace("Supply", "", $title_temp);
                $title_temp = str_replace("  ", " ", $title_temp);
            }
            $product_data['title'] = $title_temp;

            $product_data['description'] = substr(iconv("UTF-8","UTF-8//IGNORE",$product->getDescription()), 0, 900);
            $product_data['Deeplink'] = "http://www.myshop.co.uk/store/".$product->getUrlPath(); 
            $product_data['image_link'] = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA).'catalog/product'.$product->getImage();
            $price_temp = round($product->getPrice(),2);
            $product_data['price'] = round($product->getPrice(),2) + 5;
            $product_data['brand'] = $product->getData('brand');
            $product_data['product_type'] = 'Pet Products and Accessories';
            $product_data['condition'] = "new";
            $product_data['category'] = $product_data['brand'];
            $product_data['manufacturer'] = $product_data['brand'];
            $product_data['availability'] = "in stock";
            foreach($product_data as $k=>$val){
                $bad=array('"',"'r'n","'n","'r","'t");
                $good=array(""," "," "," ","");
                $product_data[$k] = '"'.str_replace($bad,$good,$val).'"';
            }
            echo $counter_test  . " ";
            $feed_line = implode("'t", $product_data)."'r'n";
            fwrite($handle, $feed_line);
            fflush($handle);
        }
    }
    fclose($handle);
}
catch(Exception $e){
    die($e->getMessage());
}

如果你看一下查找产品价格的部分:

$product_data['price'] = round($product->getPrice(),2) + 5;
我不明白这一行发生了什么。由于某种原因,脚本正在修改我们的价格。

示例的成本价为£52.80,零售价为£56.54。该剧本的成交价格为61.54英镑。

脚本应该取价格(£56.54)并添加增值税(20%)。因此,一旦脚本运行,在结果文本文件中的价格应该是£67.85。

A)价格线实际上在做什么?B)我怎样才能在价格上加20%呢?

价格行是将$product->getPrice()的值四舍五入到小数点后两位,加上5,然后将值赋给$product_data['price']

要增加一个数字本身的百分比,比如20%,你用这个数字本身加上你想要的百分比(作为1的分数):

$with_vat_number = $no_vat_number * 1.20;
所以要得到最后的四舍五入的数字,使用round:
$rounded_with_vat_number = round(($no_vat_number * 1.20), 2);

另一种在Google Feed中显示包含增值税的价格的方法是:

$price_temp = round($product->getPrice(),2);
$product_data['price'] = round($product->getPrice(),2) + 5;

与下面的代码:

//VAT Stuff
$vat = 20; //percent
$pvat = $vat / 100;
$product_data['price']= round( ($product->getPrice() + $product->getPrice() * $pvat),2);

这样,当增值税金额发生变化时,而不是必须计算分数等,只需更改"$ VAT = 20;不管新的增值税税率是多少因此,当它减少到17.5时,将代码更改为"$vat = 17.5;"