Navigation:  Erweiterte Arbeitsprozeduren >

PowerShell Skripte verwenden

Print this Topic Previous pageReturn to chapter overviewNext page

Verwenden Sie Total Seller zusammen mit Windows PowerShell, um Total Seller an externe Systeme anzubinden oder Import-, Export- und Backup-Funktionen zu automatisieren.

 

Hinweis: Die Total Seller Cmdlets wurden für PowerShell v3 oder höher entwickelt. PowerShell v3 wird automatisch mit Windows 8 bzw. 8.1, Windows 10 und Windows Server 2012 installiert. Sie können PowerShell v3 für ältere Versionen von Windows von Microsoft herunterladen und installieren. Danach muss Total Seller neu installiert werden, um das Snap-In mit der neuen Version von PowerShell zu registrieren.

 

Total Seller und das Total Seller PowerShell Snap-In sind als 32 bit Anwendung implementiert. In der 64 bit Version von Windows verwenden Sie "PowerShell (x86)", um die PowerShell Skripte zu entwickeln und auszuführen.

 

In der 64 bit Version von Windows kann "PowerShell (x86)" auch über die Kommandozeile oder z.B. in der Aufgabenplanung mit folgendem Befehl gestartet werden:

 

%SystemRoot%\syswow64\WindowsPowerShell\v1.0\powershell.exe

 

Um ein PowerShell Skript für Total Seller zu erstellen, dass sowohl unter 32 bit und 64 bit von Windows laufen soll, verwenden Sie folgenden Skript-Code:

 

If ([IntPtr]::Size * 8 -ne 32)

{

    C:\Windows\SysWOW64\WindowsPowerShell\v1.0\PowerShell.exe -File $MyInvocation.MyCommand.Path

}

Else

{

    # Your script code here

}

 

Beachten Sie, dass die Verwendung von eigenen PowerShell Skripten in Windows freigeschaltet werden muss. Starten Sie dazu die (32 bit) PowerShell Konsole als Administrator und geben Sie folgenden Befehl ein:

 

Set-ExecutionPolicy Unrestricted

 

Total Seller Cmdlets

 

Verwenden Sie "Get-Help Cmdlet-Name" in PowerShell, um zusätzliche Beschreibungen und Hilfen zu den Cmdlets zu erhalten.

 

Add-PSSnapin TotalSellerSnapin

 

Führen Sie den Befehl "Add-PSSnapin TotalSellerSnapin" aus, um die Cmdlets von Total Seller in PowerShell einzubinden. Diesen Befehl sollten Sie zu Beginn einer PowerShell Session oder eines PowerShell-Skripts ausführen.

 

Connect-TSSession

 

Parameter: "-Login -Password" oder "-Credentials"

 

Der Befehl "Connect-TSSession" verbindet PowerShell mit der Total Seller Datenbank und meldet einen Total Seller Benutzer an. Der Benutzer muss entweder ein Total Seller Administrator sein oder in einer Benutzer-Gruppe sein, die Rechte zum Ausführen von Skripten hat.

 

Tipp: Legen Sie eine eigene Benutzergruppe an, die nur Rechte zum Ausführen von Skripten hat und weisen Sie dieser Gruppe einen neuen Benutzer zu, den Sie ausschließlich mit PowerShell verwenden.

 

Disconnect-TSSession

 

Beendet die Verbindung zur Total Seller Datenbank.

 

Write-TSBackup

 

Parameter: "-Path"

 

Sichert die Datenbank von Total Seller in eine Datei.

 

Wichtig: Wenn Total Seller mit dem Total Seller Server verbunden ist, bezieht sich der Pfad auf dem Computer, auf dem Total Seller Server installiert ist und nicht auf den Computer, auf dem der PowerShell Befehl ausgeführt wird. Geben Sie gegebenenfalls einen UNC-Pfad an.

 

Read-TSBackup

 

Parameter: "-Path"

 

Stellt die Datenbank von Total Seller wieder aus einer Sicherungs-Datei her.

 

Wichtig: Wenn Total Seller mit dem Total Seller Server verbunden ist, bezieht sich der Pfad auf dem Computer, auf dem Total Seller Server installiert ist und nicht auf den Computer, auf dem der PowerShell Befehl ausgeführt wird. Geben Sie gegebenenfalls einen UNC-Pfad an.

 

Import-TSData

 

Parameter: "-DefinitionName", "-Path" (Alias: "-FullName", "-Url"), "-Variables"

 

Importiert Produkt-Daten aus Text-, CSV- oder Excel-Dateien gemäß der Import Definition, die in Total Seller erstellt werden kann. Sie können ein Pfad mit Dateinamen zu der zu importierenden Datei oder eine URL angeben. Optional können Sie die Variablen der Import Definition mit einem PowerShell Hash-Table setzen.

 

Get-TSProduct

 

Parameter: "-All", -"ID", "-Identity", "-ProductId", "-Sku", "-ItemId", "-Code", "-Wildcard", zusätzliche Filter: "-Available", "-CodeType", "-Location", "-Media", "-PriceCategory", "-Category", "-Condition", "-Supplier"

 

Gibt ein oder mehrere Produkte zurück, die dem angegebenen Parameter und Filter entsprechen. Wenn der Parameter "-Wildcard" gesetzt ist, können bei den Parametern "-Sku", "-ItemId" und "-Code" Muster verwendet werden. In diesem Fall steht das '*' Zeichen für eine beliebige Anzahl anderer Zeichen. (s. Beispiele weiter unten)

 

Set-TSProduct

 

Parameter: "-ID", "-Identity", "-ProductId", Felder die modifiziert werden sollen, zum Testen "-WhatIf"

 

Der Befehl "Set-TSProduct" wird verwendet, um Produkte, die von "Get-TSProduct" zurück gegeben wurden, zu modifizieren.

 

Folgende Produkt-Daten können geändert werden:

 

Parameter-Name

Beschreibung

Batch

Stapel

Category

Produkt-Kategorie

Code

Code

CodeType

Code Typ: "ISBN", "EAN", "UPC"

Condition

Zustand

CreatedDate

Erstellt Datum

CreatedUser

Erstellt von Benutzer

Creators

Autoren / Interpreten

EditedDate

Bearbeitet Datum

EditedUser

Bearbeitet von Benutzer

Info1

Info 1

Info2

Info 2

InStore

Im Laden verfügbar

ListPrice

Listenpreis

Location

Lagerort

Manufacturer

Hersteller

Media

Format

Name

Name

Notes

Anmerkungen

PriceCategory

Preis-Kategorie

ReorderLevel

Minimum verfügbar für Nachbestellung

ReorderQuantity

Anzahl für Nachbestellung

SKU

SKU

Storage

Lagerplatz

StorePrice

Laden-Preis

Supplier

Zulieferer

SupplierCode

Zulieferer Bestellnummer

UnitsAvailable

Verfügbare Anzahl

UnitsOnOrder

Nachbestellte Anzahl

UnitsPending

Vorbestelte Anzahl

UnitsSold

Verkaufte Anzahl

VatRate

MwSt.-Gruppe

Weight

Gewicht

WorkflowMessage

Arbeitsschritt Nachricht

WorkflowStep

Arbeitsschritt

 

Achten Sie darauf nicht Daten zu verändern, die intern von Total Seller oder Amazon verwendet werden.

 

Update-TSProduct

 

Parameter: "-ID", "-Identity", "-ProductId", "-Sku", zum Testen "-WhatIf"

 

Der Befehl ist dem Befehl "Set-TSProduct" ähnlich, jedoch kann der Befehl ohne "Get-TSProduct" verwendet werden, wenn die Produkt-ID oder SKU bekannt ist, und die Felder, die modifiziert werden sollen, können über die PowerShell Pipeline übergeben werden.

 

Create-TSProduct

 

Parameter: Felder wie bei "Set-TSProduct", zum Testen "-WhatIf"

 

Es wird ein neues Produkt angelegt und zurück gegeben. Felder, die gesetzt werden sollen, können über die PowerShell Pipeline übergeben werden.

 

Select-TSAmazonAccount

 

Parameter: "-Name", "-E-Mail", "-Domain"

 

Verwenden Sie den Befehl "Select-TSAmazonAccount", um zwischen verschiedenen Amazon Verkäuferkonten oder Amazon Plattformen wie Amazon.de, Amazon.fr, Amazon.co.uk etc. zu wechseln.

 

Die folgenden Befehle beziehen sich auf das ausgewählte Amazon Verkäuferkonto.

 

Wenn Sie Total Seller nur mit einem Amazon Verkäuferkonto oder nur mit einer Amazon Plattform verwenden, ist es nicht notwendig diesen Befehl auszuführen.

 

Get-TSAmazonListing

 

Parameter: "-All", -"ID", "-Identity", "-ProductId", "-Asin", "-Sku", "-ItemId", "-Code", "-Wildcard", zusätzliche Filter: "-Available", "-CodeType", "-Location", "-Media", "-PriceCategory", "-Category", "-Condition", "-Supplier"

 

Gibt ein oder mehrere Amazon-Angebote zurück, die dem angegebenen Parameter und Filter entsprechen. Wenn der Parameter "-Wildcard" gesetzt ist, können bei den Parametern "-Sku", "-ItemId" und "-Code" Muster verwendet werden. In diesem Fall steht das '*' Zeichen für eine beliebige Anzahl anderer Zeichen. (s. Beispiele weiter unten)

 

Set-TSAmazonListing

 

Parameter: "-ID", "-Identity", "-ProductId", Felder die modifiziert werden sollen, zum Testen "-WhatIf"

 

Der Befehl "Set-TSAmazonListing" wird verwendet, um Amazon-Angebote, die von "Get-TSAmazonListing" zurück gegeben wurden, zu modifizieren.

 

Folgende Angebots-Daten können geändert werden:

 

Parameter-Name

Beschreibung

AmzListingID

Amazon Angebots ID

ASIN

ASIN

CreatedDate

Erstellt Datum

CreatedUser

Erstellt von Benutzer

DeletedDate

Gelöscht Datum

EditedDate

Bearbeitet Datum

EditedUser

Bearbeitet von Benutzer

FulfillmentChannel

Amazon Verkaufskanal: "DEFAULT", "AMAZON_EU"

ItemNote

Angebots Beschreibung

MaxPrice

Maximum-Preis

MinPrice

Minimum-Preis

ModifiedDate

Geändert Datum

Price

Angebots Preis

PriceCheckDate

Letzte Änderung durch Preisanpassung Datum

RemovedDate

Entfernt Datum

Shipping

Versand

UploadedDate

Hochgeladen Datum

 

Achten Sie darauf nicht Daten zu verändern, die intern von Total Seller oder Amazon verwendet werden.

 

Update-TSAmazonListing

 

Parameter: "-ID", "-Identity", "-ProductId", "-Sku", zum Testen "-WhatIf"

 

Der Befehl ist dem Befehl "Set-TSAmazonListing" ähnlich, jedoch kann der Befehl ohne "Get-TSAmazonListing" verwendet werden, wenn die Produkt-ID, SKU oder Amazon-Angebots-ID bekannt ist, und die Felder, die modifiziert werden sollen, können über die PowerShell Pipeline übergeben werden.

 

Create-TSAmazonListing

 

Parameter: "-ProductId" und Felder wie bei "Set-TSAmazonListing", zum Testen "-WhatIf"

 

Über den Parameter "-ProductId" mit einer Produkt-ID wird das neue Angebot einem Produkt zugeordnet. Es wird ein neues Amazon Angebot erstellt und zurück gegeben. Felder, die gesetzt werden sollen, können über die PowerShell Pipeline übergeben werden.

 

Download-TSAmazonListings

 

Parameter: "-Location", "-Storage", "-PriceCategory", "-SetPriceRange", "-MinPricePercentage", "-MaxPricePercentage"

 

Der Befehl lädt die aktiven Angebote von Amazon herunter und importiert sie in Total Seller. Optional können dabei für neue Angebote ein Lagerort, ein Lagerplatz, die Preis-Kategorie und der Minimum- und Maximum-Preis abhängig vom aktuellen Preis gesetzt werden. Der Befehl gibt die neuen importierten Angebote zurück. Vorhandene Angebote werden aktualisiert aber nicht zurück gegeben.

 

Upload-TSAmazonChanges

 

Parameter: "-All" (Filter -"Available"), "-ID", "-Identity", "-Prices", "-Quantities", zum Testen "-WhatIf"

 

Der Befehl überträgt Änderungen an den Angeboten nach Amazon.

 

Beispiele

 

Folgende Beispiele können direkt in PowerShell eingeben werden.

 

Bevor Sie beginnen führen Sie folgende Befehle aus:

 

> Add-PSSnapin TotalSellerSnapin

> Connect-TSSession loginName password

 

Ersetzen Sie "loginName" und "password" mit Ihrem Total Seller Anmeldenamen und Passwort.

 

Stattdessen können Sie auch eingeben:

 

> Get-Credential | Connect-TSSession

 

PowerShell fordert zur Eingabe des Anmeldenamens und des Passworts auf und das Passwort muss so nicht sichtbar eingegeben werden.

 

Geben Sie dann ein:

 

> Get-TSProduct -Sku abc123

 

Die Daten des Produkts mit der SKU "abc123" wird in PowerShell angezeigt.

 

> Get-TSProduct -All -WorkflowStep "Neu / Wartend"

 

Gibt die Produktdaten aller Produkte im Arbeitsschritt "Neu / Wartend" aus.

 

> Get-TSProduct -Sku "abc*" -Wildcard

 

Gibt die Produktdaten aller Produkte, dessen SKU mit "abc" anfängt, aus.

 

> Get-TSProduct -Sku abc123 | Set-TSProduct -Info1 "Test 1"

 

Das Feld "Info 1" des Produkts mit der SKU "abc123" wird mit dem Wert "Test 1" überschrieben.

 

Skripte

 

Hinweis: Das Ausführen von eigenen Skripten in PowerShell ist standardmäßig deaktiviert und muss explizit in PowerShell freigeschaltet werden. Starten Sie dazu PowerShell als Administrator und geben Sie in PowerShell folgenden Befehl ein:

 

> Set-ExecutionPolicy Unrestricted

 

Danach ist das Ausführen von Skripten in PowerShell für die Zukunft freigeschaltet.

 

Eine Datenbank-Sicherung ausführen

 

Add-PSSnapin TotalSellerSnapin

Connect-TSSession loginName password

Write-TSBackup "c:\Backup\TS Backup.bak"

Disconnect-TSSession

 

Eine Datenbank-Sicherung in "Eigene Dokumente" mit Datum speichern

 

Add-PSSnapin TotalSellerSnapin

Connect-TSSession loginName password

$name = ("TS Backup {0:yyyy-MM-dd}.bak" -f [DateTime]::Now)

$path = (Join-Path ([environment]::GetFolderPath("MyDocuments")) $name)

Write-TSBackup $path

Disconnect-TSSession

 

In Verbindung mit der Windows Funktion "Aufgaben planen" können so regelmäßig und automatisch Datenbank-Sicherungen erstellt werden.

 

Produkt Daten mit einer Import Definition importieren

 

Add-PSSnapin TotalSellerSnapin

Connect-TSSession loginName password

Import-TSData -DefinitionName "Meine Import Definition" -Path "e:\Data\ProductData.txt" -Variables @{ defaultPrice = 3.5 }

Disconnect-TSSession

 

Hinweis: Erstellen Sie zuerst eine Import Definition in Total Seller und verwenden Sie den Namen der Import Definition im PowerShell Skript. Statt eines Dateinamens können Sie auch eine URL angeben und die Datei wird dann automatisch vor dem Import heruntergeladen.

 

Alle Produkt Daten exportieren

 

Add-PSSnapin TotalSellerSnapin

Connect-TSSession loginName password

Get-TSProduct -All | Export-Csv -NoTypeInformation "Produkte.csv"

Disconnect-TSSession

 

Minimum- und Maximum-Preise verfügbarer Angebote exportieren

 

Add-PSSnapin TotalSellerSnapin

Connect-TSSession loginName password

Get-TSAmazonListing -All -Available |

 Select-Object ID,MinPrice,MaxPrice |

         Export-Csv -NoTypeInformation "Angebote.csv"

Disconnect-TSSession

 

Hinweis: Der Befehl "Export-Csv" exportiert numerische Werte entsprechend der Ländereinstellung von Windows, d.h. in Deutschland mit Komma als Dezimal-Zeichen.

 

Minimum- und Maximum-Preise exportierter Angebote importieren (USA)

 

Add-PSSnapin TotalSellerSnapin

Connect-TSSession loginName password

Import-Csv "Angebote.csv" | Update-TSAmazonListing

Disconnect-TSSession

 

Hinweis: PowerShell wandelt numerische Wert, die mit "Import-Csv" eingelesen wurden, gemäß neutraler Einstellung in Zahlen um, d.h. immer mit Punkt als Dezimal-Zeichen. Deshalb kann in Deutschland eine Datei, die mit "Export-Csv" exportiert wurde, nicht ohne Konvertierung wieder mit "Import-Csv" in Total Seller eingelesen werden. (Lösung: s. nächstes Beispiel)

 

Minimum- und Maximum-Preise exportierter Angebote importieren (Deutschland)

 

Add-PSSnapin TotalSellerSnapin

Connect-TSSession loginName password

Import-Csv "Angebote.csv" | 

 Select-Object ID,@{l="MinPrice"; e={[Single]::Parse($_.MinPrice)}},@{l="MaxPrice"; e={[Single]::Parse($_.MaxPrice)}} |

         Update-TSAmazonListing

Disconnect-TSSession

 

Hinweis: PowerShell wandelt numerische Wert, die mit "Import-Csv" eingelesen wurden, gemäß neutraler Einstellung in Zahlen um, d.h. immer mit Punkt als Dezimal-Zeichen. Deshalb kann in Deutschland eine Datei, die mit "Export-Csv" exportiert wurde, nicht ohne Konvertierung wieder mit "Import-Csv" in Total Seller eingelesen werden. (Lösung: s. nächstes Beispiel)

 

 

Minimum- und Maximum-Preise aus Tab-getrennter Text-Datei importieren

 

In diesem Beispiel wird eine Tab-getrennte Text-Datei importiert, die folgende Spalten enthält:

 

Sku        MinPrice        MaxPrice

68629        3.95        12.95

68630        4.95        19.95

 

Die Spaltenüberschriften entsprechen den Namen der Felder und Zahlen sind mit Punkt als Dezimal-Trennzeichen gespeichert.

 

Skript:

 

Add-PSSnapin TotalSellerSnapin

Connect-TSSession loginName password

Import-Csv -Delimiter `t "Angebote.csv" | Update-TSAmazonListing

Disconnect-TSSession

 

Hinweis: PowerShell wandelt numerische Wert, die mit "Import-Csv" eingelesen wurden, gemäß neutraler Einstellung in Zahlen um, d.h. immer mit Punkt als Dezimal-Zeichen. Wenn Komma als Dezimal-Trennzeichen verwendet werden, sollten die Werte wie im vorherigen Beispiel mit "[Single]::Parse($_.Spalte)" umgewandelt werden.

 

Eine CSV-Datei importieren und Minimum- und Maximum-Preise berechnen

 

In diesem Beispiel wird eine CSV-Datei importiert, die folgende Spalten enthält:

 

"Sku","EK"

"68629","5.00"

"68630","8.25"

 

Die Zahlen sind mit Punkt als Dezimal-Trennzeichen gespeichert.

 

Skript:

 

Add-PSSnapin TotalSellerSnapin

Connect-TSSession loginName password

Import-Csv "Angebote.csv" | 

 Select-Object Sku,@{l="MinPrice"; e={[Single]$_.EK * 1.15}},@{l="MaxPrice"; e={[Single]$_.EK * 1.4}} |

         Update-TSAmazonListing

Disconnect-TSSession

 

In diesem Beispiel wird der Minimum-Preis 15% über den EK-Wert gesetzt und der Maximum-Preis 40%.

 

Hinweis: "Import-Csv" liest alle Felder als Zeichenfolgen ein und das Feld muss zu einem numerischen Wert umgewandelt werden, damit mit ihm gerechnet werden kann. Verwenden Sie zur Konvertierung "[Single]$_.EK", wenn ein Punkt als Dezimal-Trennzeichen verwendet wird und "[Single]::Parse($_.EK)", wenn ein Komma als Dezimal-Trennzeichen verwendet wird.

 

Erstellen eines neuen Produkts und Amazon Angebots

 

Add-PSSnapin TotalSellerSnapin

Connect-TSSession loginName password

$product = Create-TSProduct -Sku "abc123" -Condition "Neu" -WorkflowStep "Neu / Wartend" -Name "Test Produkt 1" -UnitsAvailable 1 -ListPrice 19.95 -PriceCategory "Preis Hit"

Create-TSAmazonListing -ProductId $product.ID -Asin AB12345678 -Price 14.95 -MinPrice 10.95 -MaxPrice 24.95

Disconnect-TSSession

 

Hochladen des neuen Produkts nach Amazon

 

Add-PSSnapin TotalSellerSnapin

Connect-TSSession loginName password

Update-TSProduct -Sku "abc123" -WorkflowStep "Verfügbar / Online"

Get-TSAmazonListing -Sku "abc123" | Upload-TSAmazonChanges

Disconnect-TSSession

 

Hinweis: Laden Sie Änderungen nicht einzeln nach Amazon hoch, sondern übergeben Sie an "Upload-TSAmazonChanges" eine Liste der geänderten oder neuen Amazon-Angebots-IDs über die PowerShell Pipeline. Oder verwenden Sie den Befehl "Upload-TSAmazonChanges -All -Available", um die aktuellen Änderungen an Amazon zu übertragen.

 

Erstellen neuer Produkte und Amazon Angebots aus einer CSV-Datei

 

In diesem Beispiel wird eine CSV-Datei importiert, die folgende Spalten enthält:

 

"Sku","Name","UnitsAvailable","Asin","Price","MinPrice","MaxPrice"

"TEST01","Test Produkt 01","1","AB12345678","4.95","1.95","9.95"

"TEST02","Test Produkt 02","2","CD12345678","10.95","5.95","19.95"

 

Die Zahlen sind mit Punkt als Dezimal-Trennzeichen gespeichert.

 

Skript:

 

Add-PSSnapin TotalSellerSnapin

Connect-TSSession loginName password

Import-Csv "Angebote.csv" |

 Foreach-Object { $product = Create-TSProduct -Sku $_.Sku -Name $_.Name -UnitsAvailable $_.UnitsAvailable -Condition "Neu" -WorkflowStep "Verfügbar / Online" -PriceCategory "Preis Hit";

                         Create-TSAmazonListing -ProductId $product.ID -Asin $_.Asin -Price $_.Price -MinPrice $_.MinPrice -MaxPrice $_.MaxPrice } |

         Upload-TSAmazonChanges

Disconnect-TSSession

 

Alternative: (Mit Übernahme der importierten Werte über die PowerShell Pipeline - Voraussetzung: Spaltenüberschriften entsprechen den Feld-Namen und Zahlen verwenden einen Punkt als Dezimal-Trennzeichen.)

 

Add-PSSnapin TotalSellerSnapin

Connect-TSSession loginName password

Import-Csv "Angebote.csv" |

 Foreach-Object { $line = $_; ($line | Create-TSProduct -Condition "Neu" -WorkflowStep "Verfügbar / Online" -PriceCategory "Preis Hit" | %{ $product = $_ } );

                                         ($line | Create-TSAmazonListing -ProductId $product.ID) } |

         Upload-TSAmazonChanges

Disconnect-TSSession

 

Hinweis: Die Produkte und Angebote werden angelegt und danach werden alle neuen Produkte zusammen nach Amazon übertragen. (Dazu wird die Ausgabe von "Create-TSAmazonListing" an "Upload-TSAmazonChanges" übergeben.)

 

Hochladen aller geänderten Preise der verfügbaren Produkte nach Amazon

 

Add-PSSnapin TotalSellerSnapin

Connect-TSSession loginName password

Upload-TSAmazonChanges -All -Available -Prices

Disconnect-TSSession

 

Hinweis: Die Änderungen, die an Amazon übertragen werden, entsprechen den Änderungen, die im Dialog-Fenster "Amazon Angebote aktualisieren" in Total Seller angezeigt werden.

 

 

 


Page url: http://www.totalseller.de/help/client/index.html?use_powershell_scripts.htm