Jump to content

Problem mit Mengen aktualisieren per CSV, 0 ist nicht möglich!


xtramen

Recommended Posts

Hallo Leute,

ich will gerade die Mengen per CSV aktualisieren.

Dabei fällt mir auf, wenn die Menge 0 ist, dann wird der Artikel nicht aktualisiert.

Bei allen anderen Mengenangaben klappt das. Hat jemand eine Idee?

 

Also besser gesagt, die Artikel sollen als ausverkauft geflaggt werden aber nicht aus dem Shop verschwinden.

 

Gruß und Danke

Edited by xtramen (see edit history)
Link to comment
Share on other sites

Hallo,

 

beim Import wird überprüft ob der Wert für die Menge =0 ist, wenn ja wir die Aktualisierung übersprungen, man möchte damit wohl verhindern, daß bei nichtgesetzter Menge die Bestände alle auf Null gesetzt werden.

 

Wenn ihr euch dessen bewußt seid könnt ihr folgende Änderung (Prestashop 1.6.1.2) vornehmen:

 

in der Datei /controllers/admin/AdminImportController.php sheht ca bei Zeile 1935

 

                    // This code allows us to set qty and disable depends on stock
                    if (isset($product->quantity) && (int)$product->quantity) {
                        // if depends on stock and quantity, add quantity to stock
                        if ($product->depends_on_stock == 1) {
                            $stock_manager = StockManagerFactory::getManager();
                            $price = str_replace(',', '.', $product->wholesale_price);
                            if ($price == 0) {
                                $price = 0.000001;
                            }
                            $price = round(floatval($price), 6);
                            $warehouse = new Warehouse($product->warehouse);
                            if ($stock_manager->addProduct((int)$product->id, 0, $warehouse, (int)$product->quantity, 1, $price, true)) {
                                StockAvailable::synchronize((int)$product->id);
                            }
                        } else {
                            if ($shop_is_feature_active) {
                                foreach ($shops as $shop) {
                                    StockAvailable::setQuantity((int)$product->id, 0, (int)$product->quantity, (int)$shop);
                                }
                            } else {
                                StockAvailable::setQuantity((int)$product->id, 0, (int)$product->quantity, (int)$this->context->shop->id);
                            }
                        }

Die beiden rot markierten Zeilen (also auch die geschweifte Klammer zu in zweitunterster Zeile) müßt ihr löschen.

Abspeichern, Smarty-Cache Löschen. Compile Cache Löschen. Browser-Cache Löschen - danach wird die Null akzeptiert.

(Vor der Änderung natürlich eine Sicherung machen)

 

Grüsse

Whiley

Link to comment
Share on other sites

  • 1 year later...

Hallo Whiley,

 

herzlichen Dank für Deine Antwort.

Für mich dann eher zu kompliziert.

Manchmal glaube ich die Entwickler denken das wir Händler "halbe Programmierer" sind. ;-)

 

Dann werde ich wohl eher bei meiner eigenen kleinen Lösung bleiben. Dann regele ich das dann lieber über die Konfiguration - Artikelvorbereitung - Stückzahl Lagerbestand

"Shoplagerbestand übernehmen, abzgl. Wert aus rechtem Feld" = 1. Dann sind eben die Artikel automatisch auf "0" wo nur 1 Artikel verfügbar ist.

In der Regel ist der letzte Artikel doch oftmals auch nicht mehr da im großem Lager. :-)

 

viele Grüße

Jutta

Link to comment
Share on other sites

Für mich dann eher zu kompliziert.

Manchmal glaube ich die Entwickler denken das wir Händler "halbe Programmierer" sind. ;-)

Also wenn du dich nicht in der Lage fühlst, in einer Textdatei zwei Zeilen zu löschen, dann ist nicht nur Prestashop nichts für dich, dann dürftest du eigentlich gar keinen Computer bedienen ...

Link to comment
Share on other sites

Hallo Whiley,

 

herzlichen Dank für Deine Antwort.

Für mich dann eher zu kompliziert.

Manchmal glaube ich die Entwickler denken das wir Händler "halbe Programmierer" sind. ;-)

 

Dann werde ich wohl eher bei meiner eigenen kleinen Lösung bleiben. Dann regele ich das dann lieber über die Konfiguration - Artikelvorbereitung - Stückzahl Lagerbestand

"Shoplagerbestand übernehmen, abzgl. Wert aus rechtem Feld" = 1. Dann sind eben die Artikel automatisch auf "0" wo nur 1 Artikel verfügbar ist.

In der Regel ist der letzte Artikel doch oftmals auch nicht mehr da im großem Lager. :-)

 

viele Grüße

Jutta

 

Naja,

die Entwickler haben in diesem Fall schon mitgedacht, es kopmmt in der Praxis halt häufig vor, das die Preise der Produkte über csv angepasst werden müssen (weil eben der Lieferant oder Produzent diese geändert hat).

Wenn du in diesem Fall eine csv erstellst nur mit 2 Feldern, der Produkt-ID und dem neuene Preis, was ja auf den ersten Blick auch ganz logisch klingt, und du hättest die o.a. Sperre nicht drinn wären nach diesem Import alle Mengen auf Null gesetzt.

Aber mit deinem Workaround bekommst du das Problem ja auf jeden Fall auch in den Griff.

 

Grüsse

Whiley

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...