rechtstexte für onlineshop
Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Neue Artikel direkt in der Datenbank anlegen

    mahagma

    • Fördermitglied
    • Beiträge: 211
    Neue Artikel direkt in der Datenbank anlegen
    am: 09. Dezember 2012, 16:45:13
    Hallo,

    ich importiere bisher Produkte über eine CSV Datei. Kann ich diese auch direkt in die Datenbank importieren?

    Reicht es wenn ich über die Tabelle "products" und "products_description" Werte hinterlege oder muss ich da noch weitere Dinge beachten?

    Danke


    Linkback: https://www.modified-shop.org/forum/index.php?topic=23663.0

    mahagma

    • Fördermitglied
    • Beiträge: 211
    Re: Neue Artikel direkt in der Datenbank anlegen
    Antwort #1 am: 09. Dezember 2012, 16:48:38
    Artikelimport via SQL/PHP direkt in die Datenbank?: http://www.modified-shop.org/forum/index.php?topic=17218.0

    Artikelimport über Datenbank: http://www.modified-shop.org/forum/index.php?topic=7520.0

    mahagma

    • Fördermitglied
    • Beiträge: 211
    Re: Neue Artikel direkt in der Datenbank anlegen
    Antwort #2 am: 21. August 2015, 12:29:19
    Hallo, jetzt grabe ich den Artikel doch noch mal aus, die Artikel auf die ich verlinkt habe enthalten auch keine Lösungen, dort wird nur auch nach dem selben Thema gefragt.

    Ich habe bisher weiterhin den CSV Import gewählt jedoch die Datei sowie die Bilder automatisch auf den Server kopiert, nun werde ich die Sache jedoch angehen.

    D.h. wenn jemand einen Beispielcode hat wäre ich sehr dankbar. Werde wohl so oder so einige Stunden ran sein.

    Danke

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Re: Neue Artikel direkt in der Datenbank anlegen
    Antwort #3 am: 21. August 2015, 17:09:45
    ...
    ich importiere bisher Produkte über eine CSV Datei. Kann ich diese auch direkt in die Datenbank importieren?
    ...

    Direkt von wo ?, besser gesagt in welchem File-Format ?
    Da mehrere Tabellen gefüllt werden müssen geht es nicht einfach mittels des mySQL-Befehls LOAD DATA LOCAL INFILE.

    ...
    Reicht es wenn ich über die Tabelle "products" und "products_description" Werte hinterlege oder muss ich da noch weitere Dinge beachten?
    ...

    Woher soll der Shop wissen in welche Kategorien die Produkte sollen ?
    Es muß also zumindest noch eine weitere Tabelle bestückt werden (product_to_categories).
    Die bisherige Import-Klasse ist nicht die Beste tut es aber wenn die Files nicht zu groß sind und es dadurch zu Server-Timeout und Memory-Limit-Problemen kommt.

    Was brauchst du denn wenn die Import-Funktion dir nicht reicht ?

    Gruß,
    noRiddle

    mahagma

    • Fördermitglied
    • Beiträge: 211
    Re: Neue Artikel direkt in der Datenbank anlegen
    Antwort #4 am: 21. August 2015, 18:25:27
    Hallo,

    die Daten kann ich in beliebigem Format zur Verfügung stellen, mir geht es um den Ablauf und welche Felder Pflicht sind, z.b. bekomme ich eine Warnung wenn ich in der Tabelle "products" keinen Wert für "group_permission_0" eintrage. Meldung: "Feld hat keinen Standardwert".

    Dann zum Ablauf Allgemein, also zuerst fülle ich "products", dann "products_description" und dann "products_to_categories". Reicht dies aus. um den Artikel im Frontend sowie im Backend anzeigen zu lassen, soweit alles vernünftig eingegeben wurde?

    MfG

    mahagma

    mahagma

    • Fördermitglied
    • Beiträge: 211
    Re: Neue Artikel direkt in der Datenbank anlegen
    Antwort #5 am: 21. August 2015, 21:06:54
    Anbei meine jetzige Vorgehensweise, bitte beachten, ich übernehme "NULL" Garantie  und habe selbst bisher nur an der Testdatenbank gearbeitet.

    Das ganze ist Teil eines Python Skriptes mit welche ich nun Artikel aus meiner Warenwirtschaft Tryton in den Webshop lade.

    Über Ergänzungen und Anregungen zu dem Thema freue ich mich sehr!

    1. Werte zu products hinzufügen:
    Code: SQL  [Auswählen]
    "INSERT INTO products "
    "( products_status, products_date_added,  products_model, products_image, products_shippingtime, products_startpage , products_price, products_tax_class_id, products_quantity, products_ean, products_weight, manufacturers_id, product_template, options_template ) "
    "VALUES ( '{products_status}', '{products_date_added}', '{products_model}', '{products_image}', '{products_shippingtime}', '{products_startpage }', '{products_price}', '{products_tax_class_id}', '{products_quantity}', '{products_ean}', '{products_weight}', '{manufacturers_id}', '{product_template}', '{options_template}' )"

    2. ID des neuen Produktes wählen
    Code: SQL  [Auswählen]
    "SELECT LAST_INSERT_ID()"

    3. Beschreibung zu products_description hinzufügen
    Code: SQL  [Auswählen]
    "INSERT INTO products_description "
    "( products_id, products_name, products_description, language_id) "
    "VALUES ( '{last_insert_id}', '{products_name}', '{products_description}', '{language_id}' )"

    4. Für jede Kategorie, prüfen ob diese in categories_description existiert und ID notieren
    Code: SQL  [Auswählen]
    "SELECT * FROM categories_description "
     "WHERE `language_id` = '2' AND `categories_name` = '{0}'"

    4.1 Wenn sie nicht existiert anlegen und ID notieren:
    Code: SQL  [Auswählen]
    "INSERT INTO categories (date_added, last_modified) VALUE '{0}', '{0}'"
    "SELECT LAST_INSERT_ID()"

    4.2 Für jede Sprache eine Beschreibung zu categories_description hinzufügen:
    Code: SQL  [Auswählen]
    "INSERT INTO categories_description "
    "( categories_id, language_id, categories_name ) "
    "VALUE '{0}', '{1}', '{2}'"
     
    5. Produkt und Kategorie verknüpfen in products_to_categories:
    Code: SQL  [Auswählen]
    "INSERT INTO `products_to_categories` "
    "(products_id, categories_id) "
    "VALUES ( '{last_insert_id}', '{categories_id}' )"

    6. Bilder hochladen und dann in products_images eintragen (nicht das 1. Bild):
    Code: SQL  [Auswählen]
    "INSERT INTO `products_images` "
    "(products_id,  image_nr,  image_name) "
    "VALUES ( '{last_insert_id}', '{image_nr}', '{image_name}' )"

    mahagma

    • Fördermitglied
    • Beiträge: 211
    Re: Neue Artikel direkt in der Datenbank anlegen
    Antwort #6 am: 29. Januar 2017, 16:31:34
               
    anything