mtom75 Posted September 19, 2014 Share Posted September 19, 2014 Sziasztok! Árukereső, árgép, olcsó mely táblákból kell adatokat ki exportálni? Hogy kell összefűzni a táblákat? Link to comment Share on other sites More sharing options...
pattila01 Posted September 19, 2014 Share Posted September 19, 2014 Miért akarsz táblákat összefűzni? Magad akarod megírni az sql query-t? Link to comment Share on other sites More sharing options...
mtom75 Posted September 20, 2014 Author Share Posted September 20, 2014 Mivel más megoldást nem tudok ezért magam kell megcsináljam. Vagy van kész script? Árukeresőhöz? Link to comment Share on other sites More sharing options...
pattila01 Posted September 21, 2014 Share Posted September 21, 2014 Rákerestél már erre a témára? Link to comment Share on other sites More sharing options...
slates Posted November 22, 2014 Share Posted November 22, 2014 (edited) Árukereső PS feedje: <?php /* ** Arukereso.hu ** CSV exportáló PrestaShop webáruházhoz ** ** Ezt a fájlt a webshop főkönyvtárába kell elhelyezni, és már működik is. ** */ define ('AK_VERSION', '2.1.7'); define ('AK_CHECK_STOCK', 1); define ('ENGINE_NAME', 'PrestaShop'); define ('MANUFACTURER_FIELD','manufacturer'); // define('_USER_ID_LANG_',1); set_time_limit(0); if (!file_exists('init.php') || !file_exists('config/config.inc.php')) { ak_error('An include file not found. Check the path.'); } include('config/config.inc.php'); require_once('init.php'); if (isset($_GET['ak_check_stock']) && ($_GET['ak_check_stock'] == 0 || $_GET['ak_check_stock'] == 'true')) { define ('AK_CHECK_STOCK_CONST', 0); } else { define ('AK_CHECK_STOCK_CONST', AK_CHECK_STOCK); } try { $query = Db::getInstance()->ExecuteS('SELECT p.id_product FROM ' . _DB_PREFIX_ . 'product p WHERE p.active = 1 '); // "AND quantity > 0" if (!$query) { ak_error('SQL error: ' . mysql_error()); } $lang = (int)Configuration::get('PS_LANG_DEFAULT'); $data = array(); $curreny = Currency::getCurrent(); $cat = new Category(); $root = $cat->getRootCategory(); $categories = array(); $defaultCountry = new Country(Configuration::get('PS_COUNTRY_DEFAULT'), Configuration::get('PS_LANG_DEFAULT')); $id_zone = (int)$defaultCountry->id_zone; $id_carrier = (int)(Configuration::get('PS_CARRIER_DEFAULT')); $carrierTax = Tax::getCarrierTaxRate((int)$id_carrier); $carrier = new Carrier((int)($id_carrier), Configuration::get('PS_LANG_DEFAULT')); foreach ($query as $i => $v) { $product = new Product(intval($v['id_product']),true, $lang); $productCategories = $product->getCategories(); $parents = ""; $category = ""; foreach ($productCategories as $productCategory) { $temp = ak_get_category($productCategory); if ($temp['parents'] > $parents) { $category = $temp['name']; $parents = $temp['parents']; } } $url = $product->getLink(); $img = $product->getCover($product->id); if ($img['id_image'] > 0) { $image = $link->getImageLink($product->link_rewrite,$product->id . '-' . $img['id_image'],'large'); } else { $image = ""; } $price = Product::getPriceStatic($product->id, true, NULL, 6); if (isset(Product::$_taxCalculationMethod) && Product::$_taxCalculationMethod == PS_TAX_INC) { $price = Tools::ps_round($price,2); } else { $price = round($price,2); } $line['manufacturer'] = ak_clean($product->manufacturer_name); $line['name'] = ak_clean($product->name); $line['category'] = ak_clean($category); $line['product_url'] = ak_clean($url); $line['price'] = $price; $line['image_url'] = ak_clean($image); $line['description'] = ak_clean($product->description,false); $line['ean13'] = ak_clean($product->ean13,false); $line['upc'] = ak_clean($product->upc,false); $line['reference'] = ak_clean($product->reference,false); $line['supplier_reference'] = ak_clean($product->supplier_reference,false); $line['currency'] = $currency->iso_code; $line['stock'] = $product->quantity; $line['delivery_price'] = ak_get_delivery_price($price, $product->weight, $id_zone, $id_carrier, $carrierTax, $carrier); $line['weight'] = $product->weight; if (!AK_CHECK_STOCK_CONST || ((Configuration::get('PS_STOCK_MANAGEMENT') || $product->quantity > 0) && $product->available_for_order)) { $data[] = $line; } } ak_csv_export($data); } catch (Exception $e) { ak_error("Caught exception: " . $e->getMessage()); } function ak_get_delivery_price($price, $weight, $id_zone, $id_carrier, $carrierTax, $carrier) { $shipping_cost = 984.25; $configuration = Configuration::getMultiple(array('PS_SHIPPING_FREE_PRICE', 'PS_SHIPPING_HANDLING', 'PS_SHIPPING_METHOD', 'PS_SHIPPING_FREE_WEIGHT')); if (isset($configuration['PS_SHIPPING_FREE_PRICE']) && $price >= $configuration['PS_SHIPPING_FREE_PRICE']) { return "FREE"; } if (isset($configuration['PS_SHIPPING_FREE_WEIGHT']) && $weight >= (float)($configuration['PS_SHIPPING_FREE_WEIGHT']) && (float)($configuration['PS_SHIPPING_FREE_WEIGHT']) > 0) { return "FREE"; } if ($carrier->getShippingMethod() == Carrier::SHIPPING_METHOD_WEIGHT) { if ($weight > 0) { $shipping_cost += $carrier->getDeliveryPriceByWeight($weight, $id_zone); } else { return ""; } } else {// by price $shipping_cost += $carrier->getDeliveryPriceByPrice($price, $id_zone); } if (isset($configuration['PS_SHIPPING_HANDLING']) AND $carrier->shipping_handling) $shipping_cost += (float)($configuration['PS_SHIPPING_HANDLING']); if (isset($carrierTax)) $shipping_cost *= 1 + ($carrierTax / 100); return (float)(Tools::ps_round((float)($shipping_cost), 2)); } function ak_get_category($categoryId) { global $categories, $root, $lang; if (!isset($categories[$categoryId])) { $name = ""; $cntParents = 0; if ($categoryId != $root->id_category) { $cat = new Category($categoryId, $lang); $parents = $cat->getParentsCategories(); $cntParents = count($parents); if ($cntParents > 0) { $category = array(); foreach ($parents as $p) { $category[] = $p['name']; } $name = implode(' > ',array_reverse($category)); } } $categories[$categoryId] = array('parents' => $cntParents, 'name' => $name); } return $categories[$categoryId]; } function ak_clean($field,$filter_html = true) { if ($filter_html) { $pattern = array(); $replacement = array(); $pattern[] = "/<[^>]+>/"; $replacement[] = " "; $pattern[] = "/ +/"; $replacement[] = " "; $field = preg_replace($pattern,$replacement,$field); } $from = array('"',"\r","\n","\\"); $to = array('""',""," ",""); return str_replace($from,$to,$field); } function ak_csv_export($data) { ob_start(); $header = '"' . ENGINE_NAME . ' ' . _PS_VERSION_ . ' (v' . AK_VERSION . ') manufacturer";"name";"category";"product_url";"price";"image_url";"description";"ean13";"upc";"reference";"supplier_reference";"currency";"stock";"delivery_price";"weight"'; echo "$header\n"; foreach ($data as $line) { foreach ($line as $k => $field) { if (!empty($field)) { echo '"'; echo $field; echo '"'; } if ($k == 'weight') { echo "\n"; } else { echo ';'; } } } $filename = basename($_SERVER['SCRIPT_NAME'],'.php'); $length = ob_get_length(); header('HTTP/1.0 200 OK'); header('Cache-Control: no-cache'); header('Content-Type: text/csv'); header("Content-Disposition: attachment; filename={$filename}.csv"); header('Content-Encoding: identity'); header("Content-Length: $length"); ob_end_flush(); exit; } function ak_error($msg) { header('Cache-Control: no-cache'); header('Content-Type: text/html; charset=utf-8'); echo "<html><head><title>Export error (" . VERSION . ")</title></head><body>"; echo "<p style=\"padding:0;margin:50px;text-align:center;font-weight:bold;\">$msg</p>"; echo "</body></html>"; flush(); exit; } ?> Edited November 22, 2014 by slates (see edit history) 1 Link to comment Share on other sites More sharing options...
mtom75 Posted November 25, 2014 Author Share Posted November 25, 2014 ez nagyon jó lenne, de a kép elérhetőség valamiért nem jó. Link to comment Share on other sites More sharing options...
BIstvan Posted November 27, 2014 Share Posted November 27, 2014 Az arukereso.hu honlapnak minek kell adat a termék raktárkészlet mennyiségéről? Én kitöröltem a darabra vonatkozó lekérdezést. Link to comment Share on other sites More sharing options...
slates Posted December 5, 2014 Share Posted December 5, 2014 Az arukereso.hu honlapnak minek kell adat a termék raktárkészlet mennyiségéről? Én kitöröltem a darabra vonatkozó lekérdezést. Azért mondjuk, hogy olyan termékedre ne érkezzen kattintás, amelyik nincs raktáron, nincs belőle készleted. 1 Link to comment Share on other sites More sharing options...
pattila01 Posted December 6, 2014 Share Posted December 6, 2014 Most megnéztem, mert úgy gondoltam át lehet adni azt "is", hogy raktáron van-e vagy sem (elkerülvén ezzel a fenti problémát a darabszám privát körben való megtartása mellett) de nem látok most hirtelen ilyen változót. Link to comment Share on other sites More sharing options...
KLaci88 Posted May 25, 2017 Share Posted May 25, 2017 Sziasztok! Rég nem frissült ez a téma. Én az 1.5 ös árukereső php kódot próbáltam 1.6 hoz , de csak egy terméket dob ki. Valaki tud bármelyik árösszehasonlító oldalhoz scriptet? Fizetnék is érte ha jó. Jelenleg csak a shopmania-t tudom használni. Az SQL lekérdezéssel próbálkoztam adminban, de valamiért üres sorokkal telerakja. Köszi Link to comment Share on other sites More sharing options...
pattila01 Posted June 13, 2017 Share Posted June 13, 2017 Van sok. Írj rám messengeren és adok. 1 Link to comment Share on other sites More sharing options...
Fecka Posted February 18, 2018 Share Posted February 18, 2018 (edited) Az arukereső modult használja valaki? Kérdés az lenne mennyire jó? Működik szépen? Edited February 18, 2018 by Fecka (see edit history) Link to comment Share on other sites More sharing options...
pattila01 Posted March 6, 2018 Share Posted March 6, 2018 Az is tökéletes, ha érdekel a pontos működése kérdezz a Facebook csoportunkban: https://www.facebook.com/groups/prestashophu/ Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now