Salut,
ma poate ajuta cineva cu un feed care poate fi acceptat de price.ro. Versiunea de OC pe care o folosesc este 1.5.5.1.
Din pacate cel pus de Florin nu returneaza link-ul complet al imaginilor si nu ma pricep sa-l modific.
Multumesc anticipat!
ma poate ajuta cineva cu un feed care poate fi acceptat de price.ro. Versiunea de OC pe care o folosesc este 1.5.5.1.
Din pacate cel pus de Florin nu returneaza link-ul complet al imaginilor si nu ma pricep sa-l modific.
Multumesc anticipat!
Sunt dispus sa si platesc pentru acest serviciu! Pentru cei care pot efectua modificarea va rog PM.GoFo wrote:Salut,
ma poate ajuta cineva cu un feed care poate fi acceptat de price.ro. Versiunea de OC pe care o folosesc este 1.5.5.1.
Din pacate cel pus de Florin nu returneaza link-ul complet al imaginilor si nu ma pricep sa-l modific.
Multumesc anticipat!
Multumesc anticipat!
Nu stiu de ce nu-l ia direct din config dar poti rezolva problema si manual. Editeaza feedul si gaseste linia:
si inlocuieste-o cu:
unde inlocuiesti site.ro cu adresa sitului tau.
Code: Select all
$image_directory = HTTP_IMAGE;
Code: Select all
$image_directory ='http://site.ro/image/';
Salutare,
am atasat fisierul, poate va fi de folos si altora. Este adevarat ca pe categoriile de cadouri, gadget-uri, bijuterii si bicicletete price.ro nu a generat foarte multe vizite catre http://www.gofo.ro dar poate pe alte categorii sta mai bine.
Oricum suntem inca in perioada de de proba, vom vedea la finalul perioadei daca merita abonametul sau nu.
Succes tuturor.
am atasat fisierul, poate va fi de folos si altora. Este adevarat ca pe categoriile de cadouri, gadget-uri, bijuterii si bicicletete price.ro nu a generat foarte multe vizite catre http://www.gofo.ro dar poate pe alte categorii sta mai bine.
Oricum suntem inca in perioada de de proba, vom vedea la finalul perioadei daca merita abonametul sau nu.
Succes tuturor.
Buna ziua ,
Am si eu o mica problema cu acest Datafeed. Cei de la compari au spus ca preturile nu se afiseaza corect. Unde pot modifica si eu in acest fisier ca preturile sa fie corecte. Folosesc versiunea 1.5.1 , merge perfect dar la preturi este o mica problema.
[*] [/b] Preturile trebuiesc expresate in RON cu TVA inclus.
Exemplu Afisare acest produs: http://www.climapro.ro/index.php?route= ... ct_id=2461
- pret in feed: 54.56 RON
- pret pe site-ul meu: 236,83 lei
Am si eu o mica problema cu acest Datafeed. Cei de la compari au spus ca preturile nu se afiseaza corect. Unde pot modifica si eu in acest fisier ca preturile sa fie corecte. Folosesc versiunea 1.5.1 , merge perfect dar la preturi este o mica problema.
[*] [/b] Preturile trebuiesc expresate in RON cu TVA inclus.
Exemplu Afisare acest produs: http://www.climapro.ro/index.php?route= ... ct_id=2461
- pret in feed: 54.56 RON
- pret pe site-ul meu: 236,83 lei
Code: Select all
<?php
if (!ini_get("safe_mode")) {
set_time_limit(0);
}
ignore_user_abort();
error_reporting(E_ALL^E_NOTICE);
$_SVR = array();
$path_config = "./";
if(!file_exists($path_config . "config.php")) {
exit('<HTML><HEAD><TITLE>404 Not Found</TITLE></HEAD><BODY><H1>Not Found</H1>Asigurate ca fisierul pricero_opencart este in acelasi folder cu fisierul config.php</BODY></HTML>');
}
else {
require($path_config . "config.php");
}
// Startup
require_once(DIR_SYSTEM . 'startup.php');
require(DIR_SYSTEM . 'library/tax.php');
// Registry
$registry = new Registry();
// Loader
$loader = new Loader($registry);
$registry->set('load', $loader);
// Config
$config = new Config();
$registry->set('config', $config);
// Database
// Database
$db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
$registry->set('db', $db);
// Request
$request = new Request();
// Datafeed specific settings
$datafeed_separator = "|"; // Possible options are \t or |
// Define VAT value
$vat_value = 1.24; // 24%
// Description options - possible values on, off
$show_description = (@$_GET['description'] == "off") ? "off" : "on";
// Image options - possible values on, off
$show_image = (@$_GET['image'] == "off") ? "off" : "on";
// Make URLs SEF
$sef = (@$_GET['sef'] == "on") ? "on" : "off";
// Add VAT to prices
$add_vat = (@$_GET['add_vat'] == "on") ? "on" : "off";
// Get currency
if(isset($_GET['currency'])) {
$add_currency = 2;
$currency_code = $_GET['currency'];
}
else {
$add_currency = 0;
}
// Get http_server and image directory
$http_server = HTTP_SERVER;
$image_directory = HTTP_IMAGE;
// Get default language
$res_language = mysql_query("SELECT language_id FROM " . DB_PREFIX . "language WHERE status='1' LIMIT 1") or die("Language: " . mysql_error());
if ($res_language) {
while ($field = mysql_fetch_assoc($res_language)) {
$language_id = $field['language_id'];
}
}
// Get shop currency
$res_currency = mysql_query("SELECT code, value FROM " . DB_PREFIX . "currency WHERE value = '1'") or die("Currency: " . mysql_error());
if ($res_currency) {
$field = mysql_fetch_assoc($res_currency);
$datafeed_currency = $field['code'] . " cu TVA";
$currency_value = $field['value'];
}
if ($add_currency == 2) {
$res_currency_2 = mysql_query("SELECT value FROM " . DB_PREFIX . "currency WHERE code LIKE '" . $_GET['currency'] . "'");
if ($res_currency_2) {
$field = mysql_fetch_assoc($res_currency_2);
$currency_value = $field['value'];
$datafeed_currency = strtoupper($_GET['currency']);
}
}
// Get product/category relations
$prod_cat_res = mysql_query("SELECT * FROM " . DB_PREFIX . "product_to_category ORDER BY category_id ASC") or die("Product to: " . mysql_error());
if ($prod_cat_res) {
while ($field = mysql_fetch_assoc($prod_cat_res)) {
$PROD_CAT_ARR[$field['product_id']] = $field['category_id'];
}
}
// Get categories
$cat_res = mysql_query("SELECT * FROM " . DB_PREFIX . "category
LEFT JOIN " . DB_PREFIX . "category_description ON (" . DB_PREFIX . "category.category_id = " . DB_PREFIX . "category_description.category_id)
WHERE language_id = '" . $language_id . "'") or die("Category: " . mysql_error());
if ($cat_res) {
while($field = mysql_fetch_assoc($cat_res)) {
$CAT_ARR[$field['category_id']] = $field;
}
}
// Set name for categories
foreach ($CAT_ARR as $i=>$v){
if ($v['parent_id']) {
$CAT_NAME[$i] = $CAT_ARR[$v['parent_id']]['name'] . " > " . $CAT_ARR[$i]['name'];
}
else {
$CAT_NAME[$i] = $CAT_ARR[$i]['name'];
}
}
// Get special prices for product
$res_special_price = mysql_query("SELECT product_id, price
FROM " . DB_PREFIX . "product_special
WHERE date_start <= NOW() and date_end >= NOW()") or die(mysql_error());
if ($res_special_price) {
while ($field = mysql_fetch_assoc($res_special_price)) {
$SPECIAL_PRICE[$field['product_id']] = $field['price'];
}
}
// Use this array to cntrol if product are not already included in datafeed
$already_sent = array();
// Get product data
$qry = "SELECT " . DB_PREFIX . "product_to_category.category_id, " . DB_PREFIX . "manufacturer.name as prod_manufacturer, " . DB_PREFIX . "product.model as prod_model, " . DB_PREFIX . "product.product_id as prod_id, " . DB_PREFIX . "product_description.name as prod_name, " . DB_PREFIX . "product_description.description as prod_desc, " . DB_PREFIX . "product.image as prod_image, " . DB_PREFIX . "product.manufacturer_id as prod_manid, " . DB_PREFIX . "product.price as prod_price, " . DB_PREFIX . "product.tax_class_id as tax
FROM " . DB_PREFIX . "product
LEFT JOIN " . DB_PREFIX . "product_description ON " . DB_PREFIX . "product.product_id = " . DB_PREFIX . "product_description.product_id
LEFT JOIN " . DB_PREFIX . "manufacturer ON " . DB_PREFIX . "product.manufacturer_id = " . DB_PREFIX . "manufacturer.manufacturer_id
LEFT JOIN " . DB_PREFIX . "product_to_category ON " . DB_PREFIX . "product.product_id = " . DB_PREFIX . "product_to_category.product_id WHERE " . DB_PREFIX . "product.status = '1' AND " . DB_PREFIX . "product.date_available <= NOW() GROUP BY " . DB_PREFIX . "product.product_id";
$res_products = mysql_query($qry);
if (!mysql_error()) {
while ($row = mysql_fetch_assoc($res_products)) {
$prod_id = $row['prod_id'];
// If we've sent this one, skip the rest - this is to ensure that we do not get duplicate products
if (@$already_sent['$prod_id'] > 0) {
continue;
}
$warranty = "2 ani";
$avstock = "Disponibil pe stoc";
// Get category name
@$category_name = html_to_text($CAT_NAME[$row['category_id']]);
// Get manufacturer
@$prod_manufacturer = $row['prod_manufacturer'];
@$prod_manufacturer_id = $row['prod_manid'];
// Get product model
$prod_model = $row['prod_model'];
// Get name and description for product
$prod_name = $row['prod_name'];
if ($show_description == "off") {
$prod_desc = "";
}
else {
$prod_desc = $row['prod_desc'];
}
// Clean product name (new lines)
$prod_name = str_replace("\n", "", strip_tags($prod_name));
$prod_name = str_replace("\r", "", strip_tags($prod_name));
$prod_name = str_replace("\t", " ", strip_tags($prod_name));
// Clean product description (Replace new line with <BR>). In order to make sure the code does not contains other HTML code it might be a good ideea to strip_tags()
$prod_desc = replace_not_in_tags("\n", "<BR />", $prod_desc);
$prod_desc = str_replace("\n", " ", $prod_desc);
$prod_desc = str_replace("\r", "", $prod_desc);
$prod_desc = str_replace("\t", " ", $prod_desc);
$prod_desc = strip_tags(html_entity_decode($prod_desc, ENT_QUOTES, 'UTF-8'));
// Clean product names and descriptions (separators)
if ($datafeed_separator == "\t") {
// Continue... tabs were already removed
}
elseif ($datafeed_separator == "|") {
$prod_name = str_replace("|", " ", strip_tags($prod_name));
$prod_desc = str_replace("|", " ", $prod_desc);
}
else {
print "Incorrect columns separator.";
exit;
}
// Get product url
if ($sef == "on") {
$prod_url = function_to_get_seo_url($prod_name, $http_server);
}
else {
$prod_url = function_to_get_product_url($prod_id, $http_server);
}
// Get product image
$prod_image = $row['prod_image'];
$prod_image = function_to_get_product_image($prod_image, $image_directory);
// Get product price
if (@$SPECIAL_PRICE[$prod_id]) {
$prod_price = $SPECIAL_PRICE[$prod_id] * $currency_value;
}
else {
$prod_price = $row['prod_price'] * $currency_value;
}
// Add tax rate
$tax_rate = $row['tax'];
if ($tax_rate) {
$prod_price = $prod_price * 1.24;
}
// Add VAT to prices
if ($add_vat == "on") {
$prod_price = $prod_price * $vat_value;
}
// Get conversion to wanted currency
if ($add_currency == 2) {
$prod_price = $prod_price * $currency_value;
}
// Output the datafeed content
// Category, Manufacturer, Model, ProdCode, ProdName, ProdDescription, ProdURL, ImageURL, Price, Currency
print
$prod_id . $datafeed_separator .
$category_name . $datafeed_separator .
$prod_manufacturer . $datafeed_separator .
$prod_name . $datafeed_separator .
$prod_model . $datafeed_separator .
$prod_price . $datafeed_separator .
$datafeed_currency . $datafeed_separator .
$warranty . $datafeed_separator .
$avstock . $datafeed_separator .
$prod_url . $datafeed_separator .
$prod_image . $datafeed_separator .
$prod_desc . "\n";
// Set prod_id in already_sent array
$already_sent[$prod_id] = $prod_id;
}
}
else {
print "<HTML><HEAD><TITLE>404 Not Found</TITLE></HEAD><BODY><H1>Not Found</H1>Query error: " . mysql_error() . "</BODY></HTML>";
}
function function_to_get_seo_url($prod_name, $http_server){
return $http_server . build_str_key($prod_name);
}
function function_to_get_product_url($prod_id, $http_server) {
return $http_server . "index.php?route=product/product&product_id=" . $prod_id;
}
function function_to_get_product_image ($prod_image, $image_directory) {
return $image_directory . $prod_image;
}
function replace_not_in_tags($find_str, $replace_str, $string) {
$find = array($find_str);
$replace = array($replace_str);
preg_match_all('#[^>]+(?=<)|[^>]+$#', $string, $matches, PREG_SET_ORDER);
foreach ($matches as $val) {
if (trim($val[0]) != "") {
$string = str_replace($val[0], str_replace($find, $replace, $val[0]), $string);
}
}
return $string;
}
function build_str_key($text){
$text = str_replace(" ", "-", trim(string_clean_search($text)));
$text = rawurlencode(strtolower($text));
$text = strtolower(clean_accents($text));
return $text;
}
function html_to_text($string){
$search = array (
"'<script[^>]*?>.*?</script>'si", // Strip out javascript
"'<[\/\!]*?[^<>]*?>'si", // Strip out html tags
"'([\r\n])[\s]+'", // Strip out white space
"'&(quot|#34);'i", // Replace html entities
"'&(amp|#38);'i",
"'&(lt|#60);'i",
"'&(gt|#62);'i",
"'&(nbsp|#160);'i",
"'&(iexcl|#161);'i",
"'&(cent|#162);'i",
"'&(pound|#163);'i",
"'&(copy|#169);'i",
"'&(reg|#174);'i",
"'™'i",
"'•'i",
"'—'i",
"'&#(\d+);'e"
); // evaluate as php
$replace = array (
" ",
" ",
"\\1",
"\"",
"&",
"<",
">",
" ",
"¡",
"¢",
"£",
"©",
"®",
"<sup><small>TM</small></sup>",
"•",
"-",
"uchr(\\1)"
);
$text = preg_replace ($search, $replace, $string);
return $text;
}
// Clean accesnts
function clean_accents($text){
$search = array (
"'%C4%99'", #e
"'%C3%A8'", #e
"'%C3%A9'", #e
"'%C3%AA'", #e
"'%C3%AB'", #e
"'%C3%89'", #e
"'%C3%88'", #E
"'%C3%8A'", #E
"'%C4%85'", #a
"'%C3%A3'", #a
"'%C3%A0'", #a
"'%C3%A4'", #a
"'%C3%A2'", #a
"'%C3%A1'", #a
"'%C3%A5'", #a
"'%C3%81'", #A
"'%C3%82'", #A
"'%C3%84'", #A
"'%C3%85'", #A
"'%C3%80'", #A
"'%C4%87'", #c
"'%C3%A7'", #c
"'%C3%87'", #C
"'%C5%9B'", #s
"'%C5%A1'", #s
"'%C5%A0'", #S
"'%C5%9A'", #S
"'%C3%B0'", #d
"'%C3%B1'", #n
"'%C3%BD'", #y
"'%C4%9F'", #g
"'%C4%B1'", #i
"'%C3%AE'", #i
"'%C3%AD'", #i
"'%C3%AF'", #i
"'%C3%AC'", #i
"'%C3%8D'", #I
"'%C3%8E'", #I
"'%C4%B0'", #I
"'%C5%82'", #l
"'%C5%84'", #n
"'%C3%BA'", #u
"'%C3%BB'", #u
"'%C3%B9'", #u
"'%C3%BC'", #u
"'%C5%B1'", #u
"'%C3%9C'", #U
"'%C3%B4'", #o
"'%C3%B3'", #o
"'%C3%91'", #o
"'%C3%B6'", #o
"'%C5%91'", #o
"'%C3%B2'", #o
"'%C3%B5'", #o
"'%C3%93'", #O
"'%C3%96'", #O
"'%C3%9F'", #ss
"'%C5%BC'", #z
"'%C5%BA'", #z
"'%C5%BB'", #Z
"'%C3%A6'", #ae
"'%C3%B8'", #oe
"'%C2%AE'",
"'%C2%B4'",
"'%E2%84%A2'",
);
$replace = array (
"e",
"e",
"e",
"e",
"e",
"e",
"E",
"E",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"A",
"A",
"A",
"A",
"A",
"c",
"c",
"C",
"s",
"s",
"S",
"S",
"d",
"n",
"y",
"g",
"i",
"i",
"i",
"i",
"i",
"I",
"I",
"I",
"l",
"n",
"u",
"u",
"u",
"u",
"u",
"U",
"o",
"o",
"o",
"o",
"o",
"o",
"o",
"O",
"O",
"ss",
"z",
"z",
"Z",
"ae",
"oe",
"",
"",
"",
);
$text = preg_replace($search, $replace, $text);
return $text;
}
// Clean strings
function string_clean_search($string){
$trans = get_html_translation_table(HTML_ENTITIES);
$trans = array_flip ($trans);
$string = strtr($string, $trans);
$search = array (
"'"'",
"'<'",
"'>'",
"'%£'",
"'%€'",
"'-'",
"'~'",
"'!'",
"'\?'",
"'@'",
"'#'",
"'\\$'",
"'%'",
"'\^'",
"'&'",
"'\*'",
"'\('",
"'\)'",
"'_'",
"'\+'",
"'='",
"'\.'",
"','",
"'\''",
"'\['",
"'\]'",
"'{'",
"'}'",
"'\|'",
"'\"'",
"':'",
"';'",
"'/'",
"'\\\'",
"'>'",
"'<'",
"'[\r]+'",
"'[\n]+'",
"'[\t]+'",
"'[\s]+'",
);
$replace = array (
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
);
$string = preg_replace($search, $replace, $string);
return $string;
}
function print_array($_ARR) {
print "<pre>";
print_r($_ARR);
print "</pre>";
}
exit;
?>
Pai si cum setez din datafeed moneda principala Lei ? Pe site este setat lei ...titusel wrote:Ai setat ca moneda principala Eur, de aceea iti afiseaza 54.56 RON, ai grija la conversii
Preţ: 52,80€
Fără TVA: 44,00€
Preţ: 238,62 Lei
Fără TVA: 198,85 Lei
E mult prea complicat ... e greu, e .... no comment
Variabila "datafeed_currency" - din // Get shop currency (RON e pe 1 sau pe ce id?) - daca afli id-ul afli si currency-ul corect.
'Palarie intr-un picior, ghici ciuperca ce'i'
Success!
Variabila "datafeed_currency" - din // Get shop currency (RON e pe 1 sau pe ce id?) - daca afli id-ul afli si currency-ul corect.
'Palarie intr-un picior, ghici ciuperca ce'i'
Success!
Am setat este id-ul 4 , dar acum imi apare |0| cu TVA la toate prdusele..opencartromania wrote:E mult prea complicat ... e greu, e .... no comment
Variabila "datafeed_currency" - din // Get shop currency (RON e pe 1 sau pe ce id?) - daca afli id-ul afli si currency-ul corect.
'Palarie intr-un picior, ghici ciuperca ce'i'
Success!
Attachments
Untitled-9.png (38.68 KiB) Viewed 3296 times
Nu prea am inteles ce vrei sa spui .. Eu am facut urmatoarea schimbaretitusel wrote:adauga la url-ul tau din feed si ¤cy=RON si o sa iti afiseze preturile in Ron
daca postai linkul catre feed era mai simplu sa iti zic.
Code: Select all
// Get shop currency
$res_currency = mysql_query("SELECT code, value FROM " . DB_PREFIX . "currency WHERE value = '4'") or die("Currency: " . mysql_error());
Link catre feed: http://www.climapro.ro/tester.php
http://www.climapro.ro/tester.php?currency=RON
La asta s-a referit titusel. elimina modificarea facuta, trebuie sa selecteze si valuta cu valoare 1 pentru ca aceea e implicita.
La asta s-a referit titusel. elimina modificarea facuta, trebuie sa selecteze si valuta cu valoare 1 pentru ca aceea e implicita.
Pana la urma e un fel de "vorba lunga, saracia omului", trei dezvoltatori se chinuie de o saptamana sa explice ceva ce ar fi rezolvat in cateva minute daca intrau prin FTP. Situatia ar fi similara cu niste instalatori care ar explica prin telefon cum se lipeste o teava. Mai bine trage unul o fuga sa schimbe teava, desigur la final s-ar plati manopera.
Salutare!
Bine punctat @atufa, numai ca in astfel de sitatii trebuie sa te cheme clientul, nu sa dai tu buzna, sa te apuci sa-i repari casa
Success maxim!
Bine punctat @atufa, numai ca in astfel de sitatii trebuie sa te cheme clientul, nu sa dai tu buzna, sa te apuci sa-i repari casa
Success maxim!
Who is online
Users browsing this forum: No registered users and 94 guests