Avatar billede gr8m8 Novice
26. maj 2016 - 18:20 Der er 1 kommentar og
1 løsning

Prestashop produkt import via SQL

Kære Eksperter.

Efter timevis af Googling og prøv selv, må jeg erkende at jeg ikke er god nok til at få Import af produkter til at fungere i Prestashop. Der er masser der har problemer, men ingen løsninger at finde.
Flere har lavet deres egne SQL imports via varefiler fra leverandører, dog uden at dele hvordan.
Jeg håber derfor der er nogen herinde der kan være behjælpelig med hvordan en import af produkter vil kunne ske via ren SQL.

Så vidt jeg kan læse mig til ligger et produkt i alle disse tabeller:

- ps_product
- ps_prduct_shop
- ps_product_lang
- ps_category_product

Så vidt jeg kan se ud fra det ene test produkt jeg har oprettet, er der i ovenstående tabeller følgende SQL involveret:

// ps_product

INSERT INTO `ps_product` (`id_product`, `id_supplier`, `id_manufacturer`, `id_category_default`, `id_shop_default`, `id_tax_rules_group`, `on_sale`, `online_only`, `ean13`, `upc`, `ecotax`, `quantity`, `minimal_quantity`, `price`, `wholesale_price`, `unity`, `unit_price_ratio`, `additional_shipping_cost`, `reference`, `supplier_reference`, `location`, `width`, `height`, `depth`, `weight`, `out_of_stock`, `quantity_discount`, `customizable`, `uploadable_files`, `text_fields`, `active`, `redirect_type`, `id_product_redirected`, `available_for_order`, `available_date`, `condition`, `show_price`, `indexed`, `visibility`, `cache_is_pack`, `cache_has_attachments`, `is_virtual`, `cache_default_attribute`, `date_add`, `date_upd`, `advanced_stock_management`, `pack_stock_type`) VALUES
(1, 0, 0, 2, 1, 0, 0, 0, '', '', 0.000000, 0, 1, 100.000000, 0.000000, '', 0.000000, 0.00, '1-appelsin', '', '', 0.000000, 0.000000, 0.000000, 0.000000, 2, 0, 0, 0, 0, 1, '404', 0, 1, '0000-00-00', 'new', 1, 1, 'both', 0, 0, 0, 0, '2016-05-26 17:01:29', '2016-05-26 17:05:20', 0, 3);

// ps_product_shop

INSERT INTO `ps_product_shop` (`id_product`, `id_shop`, `id_category_default`, `id_tax_rules_group`, `on_sale`, `online_only`, `ecotax`, `minimal_quantity`, `price`, `wholesale_price`, `unity`, `unit_price_ratio`, `additional_shipping_cost`, `customizable`, `uploadable_files`, `text_fields`, `active`, `redirect_type`, `id_product_redirected`, `available_for_order`, `available_date`, `condition`, `show_price`, `indexed`, `visibility`, `cache_default_attribute`, `advanced_stock_management`, `date_add`, `date_upd`, `pack_stock_type`) VALUES
(1, 1, 2, 0, 0, 0, 0.000000, 1, 100.000000, 0.000000, '', 0.000000, 0.00, 0, 0, 0, 1, '404', 0, 1, '0000-00-00', 'new', 1, 1, 'both', 0, 0, '2016-05-26 17:01:29', '2016-05-26 17:05:20', 3);

// ps_product_lang

INSERT INTO `ps_product_lang` (`id_product`, `id_shop`, `id_lang`, `description`, `description_short`, `link_rewrite`, `meta_description`, `meta_keywords`, `meta_title`, `name`, `available_now`, `available_later`) VALUES
(1, 1, 1, '', '', 'produktet', '', '', '', 'PRODUKTET', '', ''),
(1, 1, 2, '<p>Det er det bedste produkt i verden lige pt.</p>', '<p>Mit produkt</p>', 'produktet', '', '', '', 'Appelsin', '', '');

// ps_category_product

INSERT INTO `ps_category_product` (`id_category`, `id_product`, `position`) VALUES
(2, 1, 0),
(40, 1, 0);

Hvis jeg nu skal importere/oprette 200 varer ved hjælp af ovenstående, kan det så samles på en smartere måde?

Jeg ved godt jeg er langt ude og skide, men måske mit indviklede spørgsmål fører til at DU kender til en løsning der virker :-)

På forhånd tusind tak :-D
Avatar billede vagnk Juniormester
26. maj 2016 - 22:19 #1
Allerførst:
Gå ind på Community på Prestashop og stil spørgsmålet "Import supplier-files how" og se om det giver respons. Måske skal du lave et indlæg hvor du beskriver dit problem.

Ellers:
Flere har lavet deres egne SQL imports via varefiler fra leverandører
Du skal vist nok igennem det de fleste af os (og dem i citatet) har været gennem: Man åbner filen fra leverandøren i et script. Filen er måske i csv-format (komma-separeret) eller xml (extended markup language) eller i et helt andet format.

Det fremgår ikke om du har arbejdet med scriptsprog (php eller asp), så jeg tror den bedste approach er at vise et eksempel (f.eks. de 3 første linier). Hvis det skal hænge sammen med Prestashop skal du lige finde ud af hvad det er skrevet i og skrive din funktion i samme sprog. Prestashop bør have et hook et eller andet sted, som gør at du kan starte importen. Hvis det bliver nødvendigt at lave en speciel side som du kan starte importen fra er der nogle sikkerhedsmæssige ricisi der skal overvejes.

Når man har udseendet af leverandørfilen og eventuelt hvilke felter i filen der skal i hvilke felter i tabellerne er du forhåbentligt så langt at du kan gå "Programmering->PHP" eller ASP og få hjælp til selve loopet. Alt dette sagt under den forudsætning at du ikke selv programmerer.

Selve det at lave loopet bør ikke tage meget over en eftermiddag for en øvet, når det med felterne er på plads.
Avatar billede gr8m8 Novice
31. maj 2016 - 15:26 #2
@vagnk

Tak for dit bidrag, det er dog lykkedes mig i mellemtiden at få et import modul til at virke. Det viste sig at det ikke virkede med PHP v7.0 som der kørte på serveren. Nu er det ændret til v5.5 og kører derudaf :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester