poukamisas Posted October 25, 2017 Share Posted October 25, 2017 Καλημέρα, Δουλεύω σε presta 1.6.1. και έχω το παρακάτω ερώτημα σε MySQL με το οποίο το έχω βάλει σε μια μεταβλητή string σε αρχείο PHP και σε συνδυασμό με PHP προσπαθώ να ολοκληρώσω ένα XML για το skroutz σε γενικές γραμμές δουλεύουν όλα καλά, το πρόβλημά μου είναι πως θα μπορέσω να βγάλω σε χωριστά πεδία το χρώμα και το μέγεθος των προιόντων, καθώς το μόνο που κατάφερα είναι να το κάνω να βγαίνουν σαν συνδιασμός π.χ combination 32,κόκκινο ενώ θα ήθελα να είναι Size 32 και color κόκκινο. Στην ουσία το μόνο που θέλω είναι αν γνωρίζει να μου πει κάποιος τον κώδικα σε MySQL για να αντικαταστήσω το πεδίο που αναπαράγεται με το κώδικα "GROUP_CONCAT(DISTINCT(pal.name) SEPARATOR ', ') as combination, " (το οποίο το έχω με κόκκινο χρώμα παρακάτω για να είναι εύκολα εντοπίσιμο) με το νέο κώδικα που θα μου δωθεί έτσι ώστε να έχω το επιθυμητό αποτέλεσμα. Ακολουθεί το ερώτημα Sql, ώστε να δείξω τι ακριβώς έχω κάνει (όσον αφορά το Sql κομμάτι). Ευχαριστώ εκ των προτέρων. SELECT p.id_product as Unique_ID, p.reference as MPN, pl.name as Name, concat('https://','loly.gr','/',pl.link_rewrite,'/',p.id_product,'-',REPLACE(pl.name,' ','-'),'.html') as Product_Link, concat( 'https://loly.gr/img/p/',mid(im.id_image,1,1),'/', if (length(im.id_image)>1,concat(mid(im.id_image,2,1),'/'),''),if (length(im.id_image)>2,concat(mid(im.id_image,3,1),'/'),''),if (length(im.id_image)>3,concat(mid(im.id_image,4,1),'/'),''),if (length(im.id_image)>4,concat(mid(im.id_image,5,1),'/'),''), im.id_image, '.jpg' ) AS Image_Link, GROUP_CONCAT(DISTINCT (cl.name) SEPARATOR ',') as Category_Name, ROUND(p.price,2) as Price, if(pq.quantity>=1,REPLACE(pq.quantity,pq.quantity,'Άμεση παραλαβή / Παράδοση 1 έως 3 ημέρες'),'Κατόπιν Παραγγελίας' ) as Availability, if(ISNULL(m.name),'OEM',m.name) as manufacturer, GROUP_CONCAT(DISTINCT(pal.name) SEPARATOR ', ') as combination, if(ascii(LEFT(MID(pl.description_short,INSTR(MID( pl.description_short ,5),'>')+5),INSTR(MID(pl.description_short,INSTR(MID( pl.description_short ,5),'>')+5),'>')-7))=60,'',if(ascii(LEFT(MID(pl.description_short,INSTR(MID( pl.description_short ,5),'>')+5),INSTR(MID(pl.description_short,INSTR(MID( pl.description_short ,5),'>')+5),'>')-7))=13,'',if(ascii(LEFT(MID(pl.description_short,INSTR(MID( pl.description_short ,5),'>')+5),INSTR(MID(pl.description_short,INSTR(MID( pl.description_short ,5),'>')+5),'>')-7))=10,'',LEFT(MID(pl.description_short,INSTR(MID( pl.description_short ,5),'>')+5),INSTR(MID(pl.description_short,INSTR(MID( pl.description_short ,5),'>')+5),'>')-7)))) as Short_Description, pq.quantity as Quantity, if(pq.quantity>=1,'Y','N') as InStock FROM ps_product p LEFT JOIN ps_image im ON p.id_product = im.id_product LEFT JOIN ps_product_attribute pa ON (p.id_product = pa.id_product) LEFT JOIN ps_stock_available pq ON (p.id_product = pq.id_product ) LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product) LEFT JOIN ps_product_attribute_combination pac ON (pa.id_product_attribute = pac.id_product_attribute) LEFT JOIN ps_category_product cp ON (p.id_product = cp.id_product) LEFT JOIN ps_category_lang cl ON (cp.id_category = cl.id_category) LEFT JOIN ps_category c ON (cp.id_category = c.id_category) LEFT JOIN ps_attribute_lang pal ON (pac.id_attribute = pal.id_attribute ) LEFT JOIN ps_manufacturer m ON (p.id_manufacturer = m.id_manufacturer) WHERE p.active = 1 AND pl.id_lang = (SELECT id_lang FROM ps_lang WHERE active = '1' ORDER BY id_lang ASC LIMIT 1) AND p.id_shop_default = (SELECT id_shop FROM ps_shop WHERE active = '1' ORDER BY id_shop ASC LIMIT 1) AND cl.id_lang = 1 AND c.id_shop_default = 1 GROUP BY pac.id_product_attribute Link to comment Share on other sites More sharing options...
Site-View Posted November 19, 2017 Share Posted November 19, 2017 Κλασικό πρόβλημα όταν πας να συνδεθεις με το skroutz ,πιθανότατο να μην σε συνδέουν και να το βρεις ,και στο τέλος να αναγκάσεις να κάνεις ξεχωριστώ προϊών ανά χρώμα. Αντί να φας τόσες ώρες συν της ώρες που είδη έχεις φάει, πάρε το module που υπάρχει και δουλεύει μια χαρά. 1 Link to comment Share on other sites More sharing options...
poukamisas Posted December 16, 2017 Author Share Posted December 16, 2017 Καλημέρα, μπορείς να μου πεις ποιο είναι αυτό το module;, Ρωτάω γιατί αγόρασα ένα, το οποίο ώσπου να το φέρουμε εκεί που θέλουμε σε συνεργασία με τον κατασκευαστή είδαμε και πάθαμε και επιπλέον στην τελική ανάλυση δεν μου εμφανίζει προιόντα που ανήκουν σε παραπάνω απο μία κατηγορίες και αυτό όπως καταλαβαίνεις είναι πρόβλημα. Link to comment Share on other sites More sharing options...
sanctusmob Posted December 17, 2017 Share Posted December 17, 2017 Για αρχή το query κάνει "μία μέρα" να τρέξει. Θα πρέπει να αφαιρέσεις υπολογισμούς άχρηστους που βάζεις να κάνει η βάση και να τους κάνεις στην php. Αυτά πρέπει να φύγουν από το query if(pq.quantity>=1,REPLACE(pq.quantity,pq.quantity,'Άμεση παραλαβή / Παράδοση 1 έως 3 ημέρες'),'Κατόπιν Παραγγελίας' ) as Availability, if(ISNULL(m.name),'OEM',m.name) as manufacturer, if(pq.quantity>=1,'Y','N') as InStock Από την βάση θα ζητάς quantity και manufacturer. To short description δεν χρειάζεται στο skroutz. Οπότε μπορείς να το αφαιρέσεις. Αν κάνεις τις παραπάνω αλλαγές ο χρόνος που χρειάζεται να τρέξει το query θα πέσει στα μισά. Στις κατηγορίες το separator πρέπει να είναι ' > ' αλλά έχει λάθος το query και δεν βγάζει τις κατηγορίες με την σωστή σειρά. To mpn κανονικά στην βάση είναι το suplier_reference ... όχι το reference. Ακόμη το unique id δεν είναι unique όπως είναι τώρα το query. Θα πρέπει να είναι συνδυασμός του product id με το combination ίσως? Τώρα σε αυτό που ζητάς ... Είναι δύσκολο έτσι όπως είναι το query. Το μόνο που βλέπω εύκολο είναι να βάλεις και το attribute name πριν από την τιμή του attribute και στην php να κάνεις αυτό που θέλεις. Δηλαδή αν ένα προϊόν είναι μέγεθος 50 και χρώμα πράσινο να το βγάζει έτσι "Size:50 , Color:Green" Θα το κοιτάξω γιατί με ενδιαφέρει και εμένα το συγκεκριμένο. Απλά θα χρειαστώ λίγο χρόνο να δω πως είναι η βάση. Υ.Γ. Θα πρέπει να μας δώσεις και το php public όταν ολοκληρωθεί. Link to comment Share on other sites More sharing options...
Site-View Posted December 20, 2017 Share Posted December 20, 2017 Εμείς στους πελάτες μας βάζουμε αυτό. https://addons.prestashop.com/en/marketplaces/19652-skroutz-bestprice-greece-marketplace-data-feed-xml.html 1 Link to comment Share on other sites More sharing options...
panoskou Posted December 26, 2017 Share Posted December 26, 2017 On 20/12/2017 at 7:58 PM, Site-View said: Εμείς στους πελάτες μας βάζουμε αυτό. https://addons.prestashop.com/en/marketplaces/19652-skroutz-bestprice-greece-marketplace-data-feed-xml.html Δουλεύει σωστά για προϊόντα με χρώμα,μέγεθος? Link to comment Share on other sites More sharing options...
sanctusmob Posted January 9, 2018 Share Posted January 9, 2018 (edited) Μέχρι τώρα με σωστές κατηγορίες. Χωρίς combination. Είναι πολύ γρήγορο. Τα product link παίζουν αλλά δεν είναι 100% σωστά (και πριν δεν ήταν). Όταν μπει και τα combination θα είναι σωστά. select p.id_product, pl.name, p.quantity, round(p.price,2) as Price, p.reference as MPN, m.name as manufacturer, concat('https://','example.gr','/el/',cl.link_rewrite,'/',p.id_product,'-',pl.link_rewrite,'.html') as Product_Link, concat( 'https://example.gr/img/p/',mid(im.id_image,1,1),'/', if (length(im.id_image)>1,concat(mid(im.id_image,2,1),'/'),''),if (length(im.id_image)>2,concat(mid(im.id_image,3,1),'/'),''),if (length(im.id_image)>3,concat(mid(im.id_image,4,1),'/'),''),if (length(im.id_image)>4,concat(mid(im.id_image,5,1),'/'),''), im.id_image, '.jpg' ) AS Image_Link, (select group_concat(cl.name order by c2.level_depth asc separator ' > ') from ps_category_lang as cl join ps_category as c2 on c2.id_category = cl.id_category where c2.nleft <= c.nleft and c2.nright >= c.nright and cl.id_lang= '2' and c2.id_category > '2') as category_path from ps_product as p left join ps_category_lang as cl on cl.id_category = p.id_category_default and cl.id_lang = '2' left join ps_product_lang as pl on pl.id_product = p.id_product left join ps_category as c on c.id_category = p.id_category_default left join ps_manufacturer m on p.id_manufacturer = m.id_manufacturer left join ps_image im on im.id_product = p.id_product and im.position = '1' where pl.id_lang = '2' and p.active = '1' Edited January 9, 2018 by sanctusmob (see edit history) Link to comment Share on other sites More sharing options...
sanctusmob Posted January 16, 2018 Share Posted January 16, 2018 Αυτό είναι το query για όποιον ενδιαφέρετε χωρίς να έχει combination select p.id_product, pl.name, sa.quantity, round(p.price,2) as Price, p.reference as MPN, m.name as manufacturer, concat('https://','example.gr','/el/',cl.link_rewrite,'/',p.id_product,'-',pl.link_rewrite,'.html') as Product_Link, concat( 'https://example.gr/img/p/',mid(im.id_image,1,1),'/', if (length(im.id_image)>1,concat(mid(im.id_image,2,1),'/'),''),if (length(im.id_image)>2,concat(mid(im.id_image,3,1),'/'),''),if (length(im.id_image)>3,concat(mid(im.id_image,4,1),'/'),''),if (length(im.id_image)>4,concat(mid(im.id_image,5,1),'/'),''), im.id_image, '.jpg' ) AS Image_Link, (select group_concat(cl.name order by c2.level_depth asc separator ' > ') from ps_category_lang as cl join ps_category as c2 on c2.id_category = cl.id_category where c2.nleft <= c.nleft and c2.nright >= c.nright and cl.id_lang= '2' and c2.id_category > '2') as category_path from ps_product as p left join ps_category_lang as cl on cl.id_category = p.id_category_default and cl.id_lang = '2' left join ps_product_lang as pl on pl.id_product = p.id_product left join ps_stock_available as sa on sa.id_product = p.id_product and sa.id_product_attribute = 0 left join ps_category as c on c.id_category = p.id_category_default left join ps_manufacturer as m on p.id_manufacturer = m.id_manufacturer left join ps_image as im on im.id_product = p.id_product and im.position = '1' where pl.id_lang = '2' and p.active = '1' Link to comment Share on other sites More sharing options...
sanctusmob Posted January 16, 2018 Share Posted January 16, 2018 (edited) Αυτό είναι το query για όποιον ενδιαφέρετε ΜΕ combination Σαν product id για να είναι μοναδικό κάνω concat το product id με το product attribute id Στα url θέλει λίγο δουλειά, αλλά η έκδοση που έχω είναι σε 1.7 που έχω combinations και αν θυμάμαι καλά είναι διαφορετικά από την 1.6. @poukamisas περιμένουμε το php Υ.Γ. αν στο skroutz του στείλεις διαφορετικά product id από αυτά που είχες παλιά υπάρχει χρέωση για όποιον δεν το ξέρει. Υ.Γ.2 Διαφορά στον χρόνο εκτέλεσης από το αρχικό query Found rows: 2.055 Warnings: 0 Duration for 1 query: 19,765 sec. (+ 6,938 sec. network) */ Found rows: 2.054 Warnings: 0 Duration for 1 query: 1,188 sec. (+ 0,187 sec. network) */ select concat(p.id_product,pac.id_product_attribute) as Product_id, pl.name, group_concat(pal.name separator ' ') as combination, sa.quantity, round(p.price,2) as Price, p.reference as MPN, m.name as manufacturer, concat('https://','example.gr','/el/',cl.link_rewrite,'/',p.id_product,'-',pl.link_rewrite,'.html') as Product_Link, concat( 'https://example.gr/img/p/',mid(im.id_image,1,1),'/', if (length(im.id_image)>1,concat(mid(im.id_image,2,1),'/'),''),if (length(im.id_image)>2,concat(mid(im.id_image,3,1),'/'),''),if (length(im.id_image)>3,concat(mid(im.id_image,4,1),'/'),''),if (length(im.id_image)>4,concat(mid(im.id_image,5,1),'/'),''), im.id_image, '.jpg' ) AS Image_Link, (select group_concat(cl.name order by c2.level_depth asc separator ' > ') from ps_category_lang as cl join ps_category as c2 on c2.id_category = cl.id_category where c2.nleft <= c.nleft and c2.nright >= c.nright and cl.id_lang= '2' and c2.id_category > '2') as category_path from ps_product as p left join ps_category_lang as cl on cl.id_category = p.id_category_default and cl.id_lang = '2' left join ps_product_lang as pl on pl.id_product = p.id_product left join ps_stock_available as sa on sa.id_product = p.id_product left join ps_category as c on c.id_category = p.id_category_default left join ps_manufacturer as m on p.id_manufacturer = m.id_manufacturer left join ps_image as im on im.id_product = p.id_product and im.position = '1' left join ps_product_attribute as pa on p.id_product = pa.id_product left join ps_product_attribute_combination pac on pac.id_product_attribute = pa.id_product_attribute left join ps_attribute_lang pal on pal.id_attribute = pac.id_attribute and pal.id_lang = '2' where pl.id_lang = '2' and p.active = '1' and sa.id_product_attribute = pa.id_product_attribute group by pac.id_product_attribute order by p.id_product Edited January 16, 2018 by sanctusmob (see edit history) Link to comment Share on other sites More sharing options...
sanctusmob Posted January 20, 2018 Share Posted January 20, 2018 Βελτίωσα λίγο το query με τα combination για να είναι έτοιμο για το skroutz. Έβαλα στο product name το όνομα του κατασκευαστή. Έβαλα στο combination attribute name και value π.χ. Cup:D | Σουτιέν:75 Έφτιαξα τα url να σε πηγαίνουν στο συγκεκριμένο combination. select concat(p.id_product,pac.id_product_attribute) as Product_id, concat(m.name,' ',pl.name) as Product_name, group_concat(agl.public_name,':', pal.name separator ' | ') as combination, sa.quantity, round(p.price,2) as Price, p.reference as MPN, m.name as manufacturer, concat('https://','example.gr','/el/',cl.link_rewrite,'/',p.id_product,'-',pac.id_product_attribute,'-',pl.link_rewrite,'.html') as Product_Link, concat( 'https://example.gr/img/p/',mid(im.id_image,1,1),'/', if (length(im.id_image)>1,concat(mid(im.id_image,2,1),'/'),''),if (length(im.id_image)>2,concat(mid(im.id_image,3,1),'/'),''),if (length(im.id_image)>3,concat(mid(im.id_image,4,1),'/'),''),if (length(im.id_image)>4,concat(mid(im.id_image,5,1),'/'),''), im.id_image, '.jpg' ) AS Image_Link, (select group_concat(cl.name order by c2.level_depth asc separator ' > ') from ps_category_lang as cl join ps_category as c2 on c2.id_category = cl.id_category where c2.nleft <= c.nleft and c2.nright >= c.nright and cl.id_lang= '2' and c2.id_category > '2') as category_path from ps_product as p left join ps_category_lang as cl on cl.id_category = p.id_category_default and cl.id_lang = '2' left join ps_product_lang as pl on pl.id_product = p.id_product left join ps_stock_available as sa on sa.id_product = p.id_product left join ps_category as c on c.id_category = p.id_category_default left join ps_manufacturer as m on p.id_manufacturer = m.id_manufacturer left join ps_image as im on im.id_product = p.id_product and im.position = '1' left join ps_product_attribute as pa on p.id_product = pa.id_product left join ps_product_attribute_combination as pac on pac.id_product_attribute = pa.id_product_attribute left join ps_attribute_lang as pal on pal.id_attribute = pac.id_attribute and pal.id_lang = '2' left join ps_attribute as a on a.id_attribute = pal.id_attribute left join ps_attribute_group_lang agl on agl.id_attribute_group = a.id_attribute_group and agl.id_lang = '2' where pl.id_lang = '2' and p.active = '1' and sa.id_product_attribute = pa.id_product_attribute group by pac.id_product_attribute order by p.id_product Found rows: 2.079 Warnings: 0 Duration for 1 query: 0,985 sec. (+ 0,156 sec. network) 1 Link to comment Share on other sites More sharing options...
Nick Posted January 24, 2018 Share Posted January 24, 2018 On 19/11/2017 at 9:57 AM, Site-View said: Κλασικό πρόβλημα όταν πας να συνδεθεις με το skroutz ,πιθανότατο να μην σε συνδέουν και να το βρεις ,και στο τέλος να αναγκάσεις να κάνεις ξεχωριστώ προϊών ανά χρώμα. Αντί να φας τόσες ώρες συν της ώρες που είδη έχεις φάει, πάρε το module που υπάρχει και δουλεύει μια χαρά. Εμεις απο την αρχη θεωρούμε ξεχωριστα προϊόντα όταν αλλάζουν χρώμα και τα περναμε ετσι και δεν υπαρχει θεμα .Μιας και το barcode ειναι διαφορετικο εαν αλλαζει χρωμα Link to comment Share on other sites More sharing options...
sanctusmob Posted January 25, 2018 Share Posted January 25, 2018 Το συγκεκριμένο query σου βγάζει όλα τα προϊόντα μοναδικά με βάζει το χρώμα αλλά και το μέγεθος ή και παραπάνω συνδυασμούς. (π.χ. μέγεθος σουτιέν, χρώμα, cup) Όταν κάνεις combination μπορείς να βάλεις διαφορετικό barcode ανά combination. Το combination είναι ότι καλύτερο υπάρχει γενικός και από άποψη seo και χρόνου. Έχω φτιάξει ένα bash script που παράγει το skroutz xml και τους το έχω στείλει για να πούνε αν το εγκρίνουν. Link to comment Share on other sites More sharing options...
sanctusmob Posted February 12, 2018 Share Posted February 12, 2018 @poukamisas θα μας δώσεις το php? Link to comment Share on other sites More sharing options...
tekniksinc Posted February 12, 2018 Share Posted February 12, 2018 Άσχετο με το θέμα του MySQL ερωτήματος, αλλά σχετικό με το Skroutz xml. Από ό,τι βλέπω εδώ: merchants.skroutz.gr/merchants/support/guidelines/products_feed Κάθε προϊόν πρέπει να έχει MPN και βάρος. Αν εγώ δεν έχω ορίσει πουθενά βάρος και όλα είναι 0.0, υπάρχει θέμα; Ή απλά το XML στην τιμή εκείνη θα παίρνει τις τιμές 0.0; Επίσης το MPN ποιο πεδίο είναι στο prestashop; Πρέπει να ναι συμπληρωμένο οπωσδήποτε; Link to comment Share on other sites More sharing options...
sanctusmob Posted February 13, 2018 Share Posted February 13, 2018 (edited) Quote To mpn κανονικά στην βάση είναι το suplier_reference ... όχι το reference. Το mpn είναι ο κωδικός εργοστασίου-κατασκευαστή. Απλά πολλές φορές το βάζουν στο πεδίο reference γιατί μετά είναι εύκολο να το ενσωματώσεις στο url. Ναι το mpn και το barcode βοηθάει στο rank σου. Το βάρος χρειάζεται μόνο για τον υπολογισμό τον μεταφορικών. Αν τους το στέλνεις το πεδίο με τα μεταφορικά τότε δεν χρειάζεται το βάρος. Edited February 13, 2018 by sanctusmob (see edit history) Link to comment Share on other sites More sharing options...
tekniksinc Posted February 13, 2018 Share Posted February 13, 2018 Δηλαδή πρέπει να συμπληρώνω το πρώτο πεδίο εδώ; Link to comment Share on other sites More sharing options...
sanctusmob Posted February 13, 2018 Share Posted February 13, 2018 Κωδικός αναφοράς - αυτό είναι το reference. 1 Link to comment Share on other sites More sharing options...
sanctusmob Posted March 30, 2018 Share Posted March 30, 2018 @poukamisas άφαντος... ωραίος. Έφτιαξα ένα php που παράγει το xml για skroutz και bestprice. Το μόνο που πρέπει να αλλάξει κάποιος είναι το example με το όνομα από το κατάστημα του. Είναι για prestashop 1.7 . Το συγκεκριμένο είναι για μαγαζί με εσώρουχα. Οπότε έχουμε μέγεθος σουτίεν που είναι συνδυασμός δύο μεγεθών. Με λίγες αλλαγές μπορεί να το βάλει κάποιος σε ότι κατάστημα θέλει. <?php $databaseConfig = include 'app/config/parameters.php'; $servername = $databaseConfig[parameters][database_host]; $username = $databaseConfig[parameters][database_user]; $password = $databaseConfig[parameters][database_password]; $database = $databaseConfig[parameters][database_name]; // Create connection $link = mysqli_connect("$servername", "$username", "$password", "$database"); //set charset mysqli_set_charset($link, "utf8"); /* check connection */ if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } $sql = "select p.id_product as Product_id, concat(m.name,' ',pl.name) as Product_name, group_concat(distinct case when agl.id_attribute_group <> '6' and agl.id_attribute_group <> '5' and agl.id_attribute_group <> '4' then pal.name else null end order by agl.id_attribute_group desc separator ',') AS size, group_concat(case when agl.id_attribute_group = '5' or agl.id_attribute_group = '4' then pal.name else null end order by agl.id_attribute_group desc separator ',') AS bra_size, group_concat(distinct case when agl.id_attribute_group = '6' then pal.name else null end order by agl.id_attribute_group desc separator ',') AS color, sa.quantity as quantity, round((p.price-(p.price*sp.reduction))*1.24,2) as Price, p.reference as MPN, m.name as manufacturer, concat('https://','example.gr','/el/',cl.link_rewrite,'/',p.id_product,'-',pac.id_product_attribute,'-',pl.link_rewrite,'.html') as Product_Link, concat( 'https://example.gr/img/p/',mid(im.id_image,1,1),'/', if (length(im.id_image)>1,concat(mid(im.id_image,2,1),'/'),''), if (length(im.id_image)>2,concat(mid(im.id_image,3,1),'/'),''), if (length(im.id_image)>3,concat(mid(im.id_image,4,1),'/'),''), if (length(im.id_image)>4,concat(mid(im.id_image,5,1),'/'),''), im.id_image, '.jpg' ) AS Image_Link, (select group_concat('https://example.gr/img/p/',mid(im2.id_image,1,1),'/', if (length(im2.id_image)>1,concat(mid(im2.id_image,2,1),'/'),''), if (length(im2.id_image)>2,concat(mid(im2.id_image,3,1),'/'),''), if (length(im2.id_image)>3,concat(mid(im2.id_image,4,1),'/'),''), if (length(im2.id_image)>4,concat(mid(im2.id_image,5,1),'/'),''), im2.id_image, '.jpg' separator ',') from ps_image as im2 where im2.position > '1' and im2.id_product = p.id_product) AS extra_images, (select group_concat(cl.name order by c2.level_depth asc separator ' > ') from ps_category_lang as cl join ps_category as c2 on c2.id_category = cl.id_category where c2.nleft <= c.nleft and c2.nright >= c.nright and cl.id_lang= '2' and c2.id_category > '2') as category_path from ps_product as p left join ps_category_lang as cl on cl.id_category = p.id_category_default and cl.id_lang = '2' left join ps_product_lang as pl on pl.id_product = p.id_product left join ps_stock_available as sa on sa.id_product = p.id_product left join ps_category as c on c.id_category = p.id_category_default left join ps_manufacturer as m on p.id_manufacturer = m.id_manufacturer left join ps_image as im on im.id_product = p.id_product and im.position = '1' left join ps_product_attribute as pa on p.id_product = pa.id_product left join ps_product_attribute_combination as pac on pac.id_product_attribute = pa.id_product_attribute left join ps_attribute_lang as pal on pal.id_attribute = pac.id_attribute and pal.id_lang = '2' left join ps_attribute as a on a.id_attribute = pal.id_attribute left join ps_attribute_group_lang agl on agl.id_attribute_group = a.id_attribute_group and agl.id_lang = '2' left join ps_specific_price as sp on sp.id_product = p.id_product where pl.id_lang = '2' and p.active = '1' and sa.id_product_attribute = pa.id_product_attribute group by p.id_product order by p.id_product;"; header("Content-Type:text/xml; charset=utf-8"); print '<?xml version="1.0" encoding="UTF-8"?>'; print '<example>'; print '<created_at>' . date("Y-m-d H:m") . '</created_at>'; print '<products>'; /* if ($result = mysqli_query($link, $sql)) { printf("Select returned %d rows.\n", mysqli_num_rows($result)); } */ $result = mysqli_query($link, $sql); // Check result // This shows the actual query sent to MySQL, and the error. Useful for debugging. if (!$result) { $message = 'Invalid query: ' . mysqli_error($link) . "\n"; $message .= 'Whole query: ' . $sql; die($message); } while ($row = $result->fetch_object()) { $availabilty="Κατόπιν Παραγγελίας"; $instock="N"; $quantity=$row->quantity; if($quantity > 0) { $availabilty="Παράδοση 1 έως 3 ημέρες"; $instock="Y"; } $colors=$row->color; $color=explode(",", $colors); $temp_size=$row->size; if(!empty($temp_size)){ $size = $temp_size; }else { $temp_brasizes = $row->bra_size; $brasizes = explode(",", $temp_brasizes); $size_elements = count($brasizes); $size=""; for($i=0; $i<=($size_elements/2)-1; $i++) { if($i < ($size_elements/2)-1){ $size= $size . $brasizes[$i] . $brasizes[$i+($size_elements/2)] . ','; }else{ $size= $size . $brasizes[$i] . $brasizes[$i+($size_elements/2)]; } } } $temp_name=$row->Product_name; if (strpos(strtolower($temp_name), strtolower($color[0])) !== false) { $name=$temp_name; }else{ $name=$temp_name . ' ' . $color[0]; } $im_count=0; $temp_extra_images=$row->extra_images; if(!empty($temp_extra_images)){ $extra_image = explode(",", $temp_extra_images); $im_count=count($extra_image); } print '<product>'; print '<id>' . $row->Product_id . '</id>'; print '<name><![CDATA[' . $name . ']]></name>'; print '<link><![CDATA[' . $row->Product_Link . ']]></link>'; print '<image><![CDATA[' . $row->Image_Link . ']]></image>'; if($im_count>0) { for($i=0; $i<=$im_count-1; $i++) { print '<additional_image><![CDATA[' . $extra_image[$i] . ']]></additional_image>'; } } print '<category><![CDATA[' . $row->category_path . ']]></category>'; print '<price_with_vat>' . $row->Price . '</price_with_vat>'; print '<mpn>' . $row->MPN . '</mpn>'; print '<manufacturer><![CDATA[' . $row->manufacturer . ']]></manufacturer>'; print '<instock>' . $instock . '</instock>'; print '<color>' . $color[0] . '</color>'; print '<size>' . $size . '</size>'; print '<availability>' . $availabilty . '</availability>' ; print "</product>"; } print "</products>"; print "</example>"; /* free result set */ mysqli_free_result($result); mysqli_close($link); ?> 2 Link to comment Share on other sites More sharing options...
sanctusmob Posted April 3, 2018 Share Posted April 3, 2018 @tapanda.gr να γίνει pin topic ή κάποιο guide με βάση το παραπάνω? Link to comment Share on other sites More sharing options...
Kogkalidis Posted April 3, 2018 Share Posted April 3, 2018 @sanctusmob Θα πρότεινα κάποιος οδηγός με το αρχικό πρόθεμα [HOW-TO]. Γιατί αν μαζέψουμε πολλά pinned,μετά τα νέα θα πετάξουν 2η σελίδα. Ελπίζω να είναι κατανοητό κάτι τέτοιο. Link to comment Share on other sites More sharing options...
sanctusmob Posted April 3, 2018 Share Posted April 3, 2018 9 minutes ago, tapanda.gr said: @sanctusmob Θα πρότεινα κάποιος οδηγός με το αρχικό πρόθεμα [HOW-TO]. Γιατί αν μαζέψουμε πολλά pinned,μετά τα νέα θα πετάξουν 2η σελίδα. Ελπίζω να είναι κατανοητό κάτι τέτοιο. Sure Link to comment Share on other sites More sharing options...
Foura Posted June 5, 2018 Share Posted June 5, 2018 Καλησπέρα, στο δικό μας eshop παιδευόμαστε .... χρόνια με ένα module για το σκρουτζ το οποίο ΔΕΝ στέλνει σωστά τα additional images ενώ υπάρχουν στο site! Σε επικοινωνία που είχαμε με την Σκρουτζ (γιατί με τον κατασκευαστή του module δεν υπάρχει συνεννόηση) μου είπαν ότι φαίνεται λάθος η τιμή που στέλνει το xml και γιαυτό το λόγο ΔΕΝ παίρνει τις εξτρά φωτό του προϊόντος.... και φυσικά δεν δέχονται να μπούμε στην πλατφόρμα, αφού είναι υποχρεωτικό πεδίο τα additional images. Καμιά βοήθεια ως προς αυτό μπορείτε να μας δώσετε; Ευχαριστούμε εκ των προτέρων! Link to comment Share on other sites More sharing options...
sanctusmob Posted June 6, 2018 Share Posted June 6, 2018 Στείλε ένα δείγμα από 2 προϊόντα από το xml σου. Link to comment Share on other sites More sharing options...
Foura Posted June 6, 2018 Share Posted June 6, 2018 (edited) 2 hours ago, sanctusmob said: Στείλε ένα δείγμα από 2 προϊόντα από το xml σου. Καλημέρα και ευχαριστώ πάρα πολύ για την άμεση απάντηση, είναι το link για να δείτε το αρχείό, δυστυχώς δεν ξέρω πως μπορώ να κάνω ενδεικτικά ένα αρχείο και για αυτό το λόγο σας στέλνω το link, δεν ξέρω αν είναι δόκιμο. Ευχαριστώ και πάλι!! Edited June 6, 2018 by Foura (see edit history) Link to comment Share on other sites More sharing options...
sanctusmob Posted June 6, 2018 Share Posted June 6, 2018 Βγάλε το url από το feed. Μπορούσες να το στείλεις με pm. Δεν έχει μέσα στο xml καν additional images. Ποιος είναι ο κατασκευαστής του module? Link to comment Share on other sites More sharing options...
Foura Posted June 6, 2018 Share Posted June 6, 2018 νομίζω Netcraft... Πες μου σε παρακαλώ, αυτό που μου λένε είναι ότι δεν τα στέλνει σαν additional images αλλά σαν image 1, image 2 κτλ. και γιαυτό το λόγο η Σκρουτζ δεν μπορεί να τα δει. Έχεις κάτι να προτείνεις; Ευχαριστώ Link to comment Share on other sites More sharing options...
Foura Posted June 6, 2018 Share Posted June 6, 2018 2 hours ago, sanctusmob said: Βγάλε το url από το feed. Μπορούσες να το στείλεις με pm. Δεν έχει μέσα στο xml καν additional images. Ποιος είναι ο κατασκευαστής του module? νομίζω Netcraft... Πες μου σε παρακαλώ, αυτό που μου λένε είναι ότι δεν τα στέλνει σαν additional images αλλά σαν image 1, image 2 κτλ. και γιαυτό το λόγο η Σκρουτζ δεν μπορεί να τα δει. Έχεις κάτι να προτείνεις; Ευχαριστώ Link to comment Share on other sites More sharing options...
sanctusmob Posted June 6, 2018 Share Posted June 6, 2018 Όχι δεν έχει καθόλου additional images. Έχει μόνο ένα link από εικόνες. Link to comment Share on other sites More sharing options...
P Souxes Posted October 2, 2018 Share Posted October 2, 2018 Kαλησπέρα ! Έχουμε στείλει το XML του καταστήματός μας (από το MODULE) στον Skroutz και εμφανίζει σε όλα μας τα προϊόντα τον κωδικό τους (reference) . Π.χ. <store name="Locoss Team M. IKE" url="https://locoss.com/en/" encoding="utf8"> <created_at>2018-10-01 16:22</created_at> <products> <product> <product_id>8435364308929</product_id> <name>Ηλεκτρική Οθόνη Τοίχου iggual PSIES200 200 x 200 cm S0203724 Πως θα μπορούσαμε να αφαιρέσουμε το reference από τα προϊόντα του XML; Link to comment Share on other sites More sharing options...
sanctusmob Posted March 24, 2019 Share Posted March 24, 2019 On 10/2/2018 at 1:21 PM, P Souxes said: Kαλησπέρα ! Έχουμε στείλει το XML του καταστήματός μας (από το MODULE) στον Skroutz και εμφανίζει σε όλα μας τα προϊόντα τον κωδικό τους (reference) . Π.χ. <store name="Locoss Team M. IKE" url="https://locoss.com/en/" encoding="utf8"> <created_at>2018-10-01 16:22</created_at> <products> <product> <product_id>8435364308929</product_id> <name>Ηλεκτρική Οθόνη Τοίχου iggual PSIES200 200 x 200 cm S0203724 Πως θα μπορούσαμε να αφαιρέσουμε το reference από τα προϊόντα του XML; Θα πρέπει να μιλήσεις με αυτόν που έφτιαξε το module που αγόρασες... Δεν έχουμε τον κώδικα του... 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