Bedienungsanleitungen

Übersicht

Das ausführende System ist das Pixi* Control Center. Von dieser Applikation aus werden die Import- und Export-Requests versendet. Diese Requests und auch die Antworten des Pixi* Connector Magento Moduls können im Pixi* Control Center ausgelesen werden.

Die Requests sind im XML-Format standardisiert und können zu Testzwecken direkt in einer Browser-Adresszeile eingegeben werden. Test sind auch mit Applikationen z. B. Postman oder Insomnia möglich.

Jedem Request vom Pixi* Control Center geht ein Login- bzw. Authorisierungsrequest voraus, um eine sichere Kommunikation der beiden System zu ermöglichen. Um die Antworten von Magento zu testen, sollte zeitweise die Modul-Umgebung in der Konfiguration auf Development oder Development – keine Datenbankänderungen gestellt werden.

Bei der Umstellung auf eine Entwicklungsumgebung wird keine Sicherheitsabfrage seitens Magento gemacht.

Auch ist für Testzwecke die Konfiguration des Erweiterten Logging zu empfehlen, da hier jeder Request und jede Antwort protokolliert werden.

Da hier ggf. sehr viele Daten protokolliert werden, empfehlen wir nur eine zeitweise Aktivierung des Logging oder die Verwendung eines Log-Rotates.

Prozessabläufe

Hier sind die Prozessabläufe des Pixi* Connector Magento Moduls visualisiert.

Produkt-Export

Da Magento das produktführende System ist, werden Produkt-Daten und Attribute von Magento für Pixi* verwendet. Der Abgleich findet in einem definierten Turnus statt. Dies kann im Pixi* Control Center konfiguriert werden.

Bitte wenden Sie sich dazu an Descartes/Pixi* oder prüfen Sie die Dokumentation

Filterung der Produkte für den Export

Es werden alle Produkte des Magento-Shops für den Export in Betracht gezogen. Da wie erwähnt Magento das produktführende System ist und die Produktdaten auf globaler Ebene gehalten werden, werden alle Produkt-Informationen exportiert.

Es findet keine Filterung der Produkte aufgrund ihrer Website-Zuordnung statt.

Für die Filterung der Produkte für Export werden die Attribute pixi_export_status, pixi_export_date und pixi_export_price genutzt, um die Produkte für den Export zu identifizieren.

Anwendungsfall: Standard-Produkt-Export

In dieser kurzen Beschreibung wird erklärt, wie ein Standard-Produkt-Export von Magento ausgeführt wird.

  1. Bitte prüfen Sie zunächst, ob die Konfiguration des Produkt-Exports gesetzt ist.

  2. Es werden nur Produkte an Pixi* übermittelt, welche noch nicht exportiert oder die seit dem letzten Export aktualisiert wurden.

    Produkte-nicht-exportiert

    Für den Export von Magento zu Pixi* werden maximal 250 Produkte ermittelt und übersendet.

  3. Lösen Sie den Produkt-Export aus.

    • Dies passiert wie beschrieben durch den konfigurierten Turnus in pixi*.

    • Alternativ können Sie den Request testen.

      • dazu das Attribute Environment auf Development stellen.

      • und folgenden Request-Text in eine Browser-Adresszeile eingeben:

        https://magento242commerce.test/pixi/api/exportCatalog?sid=test
        Produkt-Export-Request
  4. Nach dem Export werden die Produkte als exportiert markiert

    Produkt-Exportiert
    • Der Pixi-Export-Status wird auf 1 gesetzt.

    • Es wird das Pixi-Export-Datum gemäß dem Zeitpunkt des Exports gesetzt.

    • Folgende Daten sind in der XML-Antwort zu finden (BMEcat)

      • Im Header-Bereich sind alle Store- bzw. Shop-Informationen enthalten, wenn diese gepflegt wurden.

      • Die SUPPLIER_AID in den Artikeldaten entspricht dem konfigurierten Produkt-Identifikator.

      • Die Artikeldetails werden aus den Standard-Daten versorgt. Wenn ein EAN-Attribut konfiguriert ist, so wird dieses ebenfalls exportiert.

      • In den Artikelfeatures sind folgende Daten standardmäßig enthalten:

        • Der Status des Produkts (aktiv/deaktiviert)

        • Name des Herstellers, wenn beim Produkt gepflegt. Standard-Konfiguration ist hier das Magento-Attribut manufacturer

        • Die Steuerklasse des Produkts

          Ist keine Steuerklasse für die Pixi-Steuerklassen hinterlegt, so wird MwSt_High übermittelt.

      • Unter der Mime-Information werden die Bilder des Produkts übergeben

        Dies kann per Konfiguration deaktiviert werden.

    <?xml version="1.0"?>
    <BMECAT version="1.2">
      <HEADER>
        <GENERATOR_INFO> BMECat Export</GENERATOR_INFO>
        <SUPPLIER>
          <SUPPLIER_NAME/>
          <ADDRESS type="supplier"/>
        </SUPPLIER>
        <CATALOG>
          <CURRENCY>USD</CURRENCY>
          <SHOPID>1</SHOPID>
          <DATEEXPORT>1623325325</DATEEXPORT>
          <EXPORT_DATE>2021-06-10 11:42:05</EXPORT_DATE>
        </CATALOG>
      </HEADER>
      <T_NEW_CATALOG>
        <ARTICLE>
          <SUPPLIER_AID>24-MB01</SUPPLIER_AID>
          <ARTICLE_DETAILS>
            <DESCRIPTION_SHORT>Joust Duffle Bag(s)</DESCRIPTION_SHORT>
            <DESCRIPTION_LONG>description</DESCRIPTION_LONG>
            <EAN>Test-EAN-2</EAN>
            <MANUFACTURER_NAME>Hersteller2</MANUFACTURER_NAME>
            <SEGMENT>Bags</SEGMENT>
          </ARTICLE_DETAILS>
          <ARTICLE_FEATURES>
            <FEATURE>
              <FNAME>Europe1PriceFactory.PTG</FNAME>
              <FVALUE>MwSt_High</FVALUE>
            </FEATURE>
            <FEATURE>
              <FNAME>ID Hersteller2</FNAME>
              <FVALUE>24-MB01</FVALUE>
            </FEATURE>
            <FEATURE>
              <FNAME>STATUS</FNAME>
              <FVALUE>ACTIVE</FVALUE>
            </FEATURE>
            <SerialNumberRequired>0</SerialNumberRequired>
          </ARTICLE_FEATURES>
          <MIME_INFO>
            <MIME>
              <MIME_TYPE>image/jpeg</MIME_TYPE>
              <MIME_SOURCE>https://magento242commerce.test/media/catalog/product/cache/d0b08d5ed0ccc03dcf25f1ae26210948/1/4/1479914220-3162776734_1.jpg</MIME_SOURCE>
              <MIME_PURPOSE>normal</MIME_PURPOSE>
            </MIME>
          </MIME_INFO>
          <MIME_INFO>
            <MIME>
              <MIME_TYPE>image/jpeg</MIME_TYPE>
              <MIME_SOURCE>https://magento242commerce.test/media/catalog/product/cache/142114b9961d7c84b84533a07e95bb2d/1/4/1479914220-3162776734_1.jpg</MIME_SOURCE>
              <MIME_PURPOSE>thumbnail</MIME_PURPOSE>
            </MIME>
          </MIME_INFO>
          <ARTICLE_PRICE_DETAILS>
            <ARTICLE_PRICE price_type="net_list">
              <PRICE_CURRENCY>USD</PRICE_CURRENCY>
              <PRICE_AMOUNT>36.0000</PRICE_AMOUNT>
              <SUPPLPRICE_AMOUNT>0</SUPPLPRICE_AMOUNT>
            </ARTICLE_PRICE>
          </ARTICLE_PRICE_DETAILS>
        </ARTICLE>
      </T_NEW_CATALOG>
    </BMECAT>
  5. Beim nächsten Export werden bereits exportierte Produkte nicht mehr übergeben. Erst, wenn sich die Daten des Produkts wieder ändern, ermittelt das Pixi* Connector Modul die Änderung und exportiert das Produkt erneut zu pixi.

Anwendungsfall: Korrekter Export von Steuerklassen

Um Steuerberechnungen in Pixi* korrekt zu verarbeiten, müssen die Steuerklassen für Produkte korrekt übergeben werden. Dabei wird nach drei Klassen unterschieden:

  • MwS_High – normaler Steuersatz

  • MwSt_Low – verringerter Steuersatz

  • MwSt-None – keine Steuerklasse

Dazu müssen in der Konfiguration alle verwendeten Magento-Steuerklassen den Pixi-Steuerklassen zugewiesen werden.

Pixi-Tax-Mapping
<ARTICLE_FEATURES>
  <FEATURE>
    <FNAME>Europe1PriceFactory.PTG</FNAME>
    <FVALUE>MwSt_High</FVALUE>
  </FEATURE>
  ...
</ARTICLE_FEATURES>

Anwendungsfall: Korrekter Export von Lieferantenzuweisungen

Es ist möglich je Hersteller, sogar wenn das Produkt von mehreren Herstellern geliefert wird, eine Identifikation zu konfigurieren um Produkte zu Herstellern/Lieferanten zuweisen zu können.

Dazu können in der Konfiguration Identifikations-Attribute jedem Hersteller-Namen zugweisen werden.

Pixi-Supplier-Mapping
<ARTICLE_FEATURES>
  <FEATURE>
    <FNAME>ID Hersteller2</FNAME>
    <FVALUE>Test-EAN-2</FVALUE>
  </FEATURE>
  <FEATURE>
    <FNAME>ID Hersteller3</FNAME>
    <FVALUE>24-MB01</FVALUE>
  </FEATURE>
  ...
</ARTICLE_FEATURES>

Werden Leerwerte bei Hersteller-Identifikatoren (FVALUE) übertragen, so werden die Produkte im Pixi* Control Center mit Fehlermeldungen importiert Pixi* Fehlerbeschreibungen und deren Behebung

Um Leerwerte für Hersteller-Identifikatoren zuzulassen, falls diese in Magento nicht gepflegt sind, können Sie im Pixi* Control Center die Option Die Lieferantenartikelnummer wurde nicht gefunden oder ist in der XML leer in den Pixi* Import-Bedingungen für Artikel deaktivieren.

Anwendungsfall: Export von Sonderpreisen

ab Version 2.4.0

Es ist möglich Sonderpreise anstatt der Normalpreise an Pixi beim Produktexport zu übermitteln. Dazu muss in der Konfiguration der Export von Sonderpreisen erlaubt werden. Da Sonderpreise (Special-Prices) in Magento für gewisse Zeitspannen (in der Zukunft) definiert werden können, wurde speziell hierfür eine Ermittlungsfunktion via CronJob implementiert. Der Zeitpunkt der Ermittlung des Preises ist konfigurierbar. Wir empfehlen aber eine tägliche Ermittlung um 01:00 Uhr nachts.

Pixi-Config-Specialprice

Bitte stellen Sie sicher, dass der Cronjob bzw. die Crongroup auf dem System aktiviert und lauffähig sind.

  1. Bei jedem Export wird der Produktpreis zwischengespeichert.

  2. Am konfigurierten Zeitpunkt die wird Preisdifferenz ermittelt (aktueller Preis – letzter Exportpreis).

  3. Wird eine Differenz festgestellt, so wird das Produkt für den nächsten Export markiert.

  4. Beim Export des Produkts wird der aktuelle Preis (Final-Price/Special-Price) anstelle des Normalpreises übergeben.

Anwendungsfall: Zuweisung der Produktkategorie für den Export

In Magento können Sie ein Produkt mehreren Kategorien zuweisen. Pixi* nimmt als Zuweisung nur eine Kategorie entgegen. Hierfür wird die zuletzt (zeitlich) zugewiesene Kategorie des Produkts verwendet.

  1. Ein Produkt eine nur eine Kategorie ("Tanks")

    Pixi-Category-Init
  2. Dem Produkt wird eine weitere Kategorie hinzugefügt ("Hoodies & Sweatshirts")

  3. Da die Kategorie "Hoodies & Sweatshirts" als letzte hinzugefügt wird, wird diese auch als Kategorie für den Export verwendet.

    Leider ist Export-Kategorie auf der Produktdetailseite im Backend nicht ersichtlich, da die Kategorien ihrer nach geordnet sind.

    Pixi-Category-Export

Bestell-Export

In Magento werden Bestellungen erfasst. Das Pixi* Connector Modul ermittelt beim Aufruf von Pixi die zu exportierenden Daten. Der Aufruf findet in einem definierten Turnus statt. Dies kann im Pixi* Control Center konfiguriert werden.

Bitte wenden Sie sich dazu an Descartes/Pixi* oder prüfen Sie die Dokumentation

Anwendungsfall: Standard-Bestell-Export

In dieser kurzen Beschreibung wird erklärt, wie ein Standard-Bestell-Export von Magento ausgeführt wird.

  1. Bitte prüfen Sie zunächst, ob die Konfiguration des Bestell-Exports gesetzt ist.

    • Die Versandmethoden müssen korrekt verknüpft sein

      Mapping-Shipping
    • Die Zahlungsmethoden müssen korrekt verknüpft sein

      Mapping-Payment
  2. Es werden nur Bestellungen an Pixi* übermittelt, welche noch nicht exportiert und/oder durch Pixi* bestätigt wurden.

    Mit jedem Aufruf von Pixi* wird nur eine Bestellung ermittelt.

  3. Lösen Sie den Bestell-Export aus.

    • Dies passiert wie beschrieben durch den konfigurierten Turnus in pixi*.

    • Alternativ können Sie den Request testen.

      • dazu das Attribut Environment in der Konfiguration auf Development stellen.

      • und folgenden Request-Text in eine Browser-Adresszeile eingeben:

        https://magento242commerce.test/pixi/api/exportOrders?sid=test
        Order-Export-Request
  4. Nach dem Export wird die Bestellung als exportiert markiert

    • Der Pixi-Export-Status wird auf 1 gesetzt.

    • Es wird das Pixi-Export-Datum gemäß dem Zeitpunkt des Exports gesetzt.

    • Folgende Daten sind in der XML-Antwort zu finden (openTRANS)

      • Im Header-Bereich sind alle Store- bzw. Shop-Informationen enthalten.

      • Des Weiteren sind im Header-Bereich auch folgende Bestellinformationen enthalten:

        • Allgemeine Informationen zur Bestellung

        • Käuferinformationen

        • Rechnungsadresse des Käufers

        • Lieferadresse des Käufers

        • die zugewiesene Zahlungsart (hier VORKASSE)

        • die zugewiesene Versandart (hier FLAT)

      • Im Bereich der Order-Item-List sind alle bestellten Artikel vorhanden:

        • Die SUPPLIER_AID in den Artikeldaten entspricht dem konfigurierten Produkt-Identifikator (hier SKU).

        • Preise und Rabatte werden auf Item-Ebene übergeben.

    <?xml version="1.0"?>
    <ORDER version="1.0" type="standard">
      <ORDER_HEADER>
        <CONTROL_INFO>
          <GENERATOR_INFO>Magento Community 2.4.2 - </GENERATOR_INFO>
          <GENERATION_DATE>2021-06-11T06:58:18+00:00</GENERATION_DATE>
        </CONTROL_INFO>
        <ORDER_INFO>
          <ORDER_ID>1</ORDER_ID>
          <ORDER_SHOPID>1</ORDER_SHOPID>
          <ORDER_DATE>2021-05-10T05:16:11+00:00</ORDER_DATE>
          <SHOPID>1</SHOPID>
          <SHOP_NOTE>Status changed to: complete (AUS)</SHOP_NOTE>
          <ORDER_SHIPLOCK>N</ORDER_SHIPLOCK>
          <BUYER_SHIPLOCK>N</BUYER_SHIPLOCK>
          <PRICE_CURRENCY>USD</PRICE_CURRENCY>
          <TRANSPORT_REMARKS>FLAT;;;flatrate|||</TRANSPORT_REMARKS>
          <LOCATION>001</LOCATION>
          <PARTIAL_DELIVERY>ONCE</PARTIAL_DELIVERY>
          <ORDER_TYPE>B2C</ORDER_TYPE>
          <ORDER_PARTIES>
            <BUYER_PARTY>
              <PARTY>
                <PARTY_ID type="buyer_specific">p.mehringer+222@techdivision.com</PARTY_ID>
                <ADDRESS>
                  <NAME2>Patrick</NAME2>
                  <NAME3>Mehringer</NAME3>
                  <STREET>Eichendorffstr.</STREET>
                  <ZIP>83043</ZIP>
                  <CITY>Bad Aibling</CITY>
                  <COUNTRY>Germany</COUNTRY>
                  <PHONE>555</PHONE>
                  <EMAIL>p.mehringer+222@techdivision.com</EMAIL>
                </ADDRESS>
              </PARTY>
            </BUYER_PARTY>
            <INVOICE_PARTY>
              <PARTY>
                <ADDRESS>
                  <NAME2>Patrick</NAME2>
                  <NAME3>Mehringer</NAME3>
                  <STREET>Eichendorffstr.</STREET>
                  <ZIP>83043</ZIP>
                  <CITY>Bad Aibling</CITY>
                  <COUNTRY>Germany</COUNTRY>
                  <PHONE>555</PHONE>
                  <EMAIL>p.mehringer+222@techdivision.com</EMAIL>
                </ADDRESS>
              </PARTY>
            </INVOICE_PARTY>
            <SHIPMENT_PARTIES>
              <DELIVERY_PARTY>
                <PARTY>
                  <ADDRESS>
                    <NAME2>Patrick</NAME2>
                    <NAME3>Mehringer</NAME3>
                    <STREET>Eichendorffstr.</STREET>
                    <ZIP>83043</ZIP>
                    <CITY>Bad Aibling</CITY>
                    <COUNTRY>Germany</COUNTRY>
                    <PHONE>555</PHONE>
                    <EMAIL>p.mehringer+222@techdivision.com</EMAIL>
                    <ADDRESS_REMARKS>6</ADDRESS_REMARKS>
                  </ADDRESS>
                </PARTY>
              </DELIVERY_PARTY>
            </SHIPMENT_PARTIES>
          </ORDER_PARTIES>
          <PAYMENT>
            <VORKASSE/>
          </PAYMENT>
          <REMARK type="SHIPPING">5.0000</REMARK>
          <REMARK type="SHIPPINGVENDOR">FLAT</REMARK>
        </ORDER_INFO>
      </ORDER_HEADER>
      <ORDER_ITEM_LIST>
        <ORDER_ITEM>
          <LINE_ITEM_ID>1</LINE_ITEM_ID>
          <ARTICLE_ID>
            <SUPPLIER_AID>24-WB04</SUPPLIER_AID>
          </ARTICLE_ID>
          <QUANTITY>1</QUANTITY>
          <ITEM_NAME>Push It Messenger Bag</ITEM_NAME>
          <ARTICLE_PRICE type="udp_gross_customer">
            <FULL_PRICE>45</FULL_PRICE>
            <PRICE_AMOUNT>45</PRICE_AMOUNT>
            <PRICE_LINE_AMOUNT>45</PRICE_LINE_AMOUNT>
            <DISCOUNT_VALUE>0</DISCOUNT_VALUE>
          </ARTICLE_PRICE>
        </ORDER_ITEM>
      </ORDER_ITEM_LIST>
      <ORDER_SUMMARY>
        <TOTAL_ITEM_NUM>1</TOTAL_ITEM_NUM>
      </ORDER_SUMMARY>
    </ORDER>
    • Bei erweitertem Logging wird folgender Log-Auszug protokolliert:

      [2021-06-11 06:58:18] TechDivisionPixiLogger.INFO: ========================================== [] []
      [2021-06-11 06:58:18] TechDivisionPixiLogger.INFO: => TechDivision pixi* Request [] []
      [2021-06-11 06:58:18] TechDivisionPixiLogger.INFO: ========================================== [] []
      [2021-06-11 06:58:18] TechDivisionPixiLogger.INFO: Time: 2021-06-11T06:58:18+00:00 [] []
      [2021-06-11 06:58:18] TechDivisionPixiLogger.INFO: Action: pixi_api_exportOrders [] []
      [2021-06-11 06:58:18] TechDivisionPixiLogger.INFO: Parameters: [] []
      [2021-06-11 06:58:18] TechDivisionPixiLogger.INFO: array (
        'sid' => 'asa*****',
      ) [] []
      [2021-06-11 06:58:18] TechDivisionPixiLogger.INFO:  [] []
      [2021-06-11 06:58:18] TechDivisionPixiLogger.INFO: Session does not exist [] []
      [2021-06-11 06:58:18] TechDivisionPixiLogger.INFO: Session is expired [] []
      [2021-06-11 06:58:18] TechDivisionPixiLogger.INFO: Filter order with pixi_export_status 0 [] []
      [2021-06-11 06:58:18] TechDivisionPixiLogger.INFO: Or filter retry order with pixi_export_status 1 [] []
      [2021-06-11 06:58:18] TechDivisionPixiLogger.INFO: Filter order with pixi_export_date "null" or pixi_export_date <=" 2021-06-11T06:53:18+00:00"  [] []
      [2021-06-11 06:58:18] TechDivisionPixiLogger.INFO: Found 1 orders. [] []
  5. Beim nächsten Export werden bereits exportierte Bestellung nicht mehr ermittelt und übergeben. Nach dem Export zu Pixi* sendet Pixi* eine Bestätigung der Verarbeitung der Bestellung. Die Bestellung wird als confirmed markiert.

Anwendungsfall: Filterung der Bestellungen

Um nicht alle Bestellungen zu exportieren und somit einen Versand auszulösen, gibt es die Möglichkeit Bestellung aufgrund von Status und Zahlungsmethode zu filtern. Somit kann der Versand durch Pixi* geregelt werden, wenn z. B. ein Zahlungseingang vorliegt.

  1. Bitte prüfen Sie zunächst, ob die Konfiguration des Bestell-Exports gesetzt ist.

    • Die Filter-Einstellungen müssen aktiviert sein

    • Die gewünschten Filterzuweisungen Bestellstatus zur Zahlart sind gepflegt

      Es sollten alle Zahlarten zu einem Bestellstatus gepflegt werden

      ab Version 2.4.0
    • Optional kann ein globaler Filter für alle Zahlarten verwendet werden.

      Order-Filter
  2. Es werden nun nur Bestellungen an Pixi* übermittelt, welche noch nicht exportiert und/oder durch Pixi* bestätigt wurden und welche den Filtereigenschaften entsprechen.

    Durch die Filterung kann es vorkommen, das keine Bestellungen an Pixi* übermittelt werden

    NO-new-orders
  3. Lösen Sie den Bestell-Export aus.

    • Die zu exportierende Bestellung wird wie gewohnt ermittelt.

    • Zur Ermittlung werden die Filtereinstellungen verwendet.

    • Bei erweitertem Logging wird folgender Log-Auszug protokolliert:

      [2021-06-11 06:43:48] TechDivisionPixiLogger.INFO: ========================================== [] []
      [2021-06-11 06:43:48] TechDivisionPixiLogger.INFO: => TechDivision pixi* Request [] []
      [2021-06-11 06:43:48] TechDivisionPixiLogger.INFO: ========================================== [] []
      [2021-06-11 06:43:48] TechDivisionPixiLogger.INFO: Time: 2021-06-11T06:43:48+00:00 [] []
      [2021-06-11 06:43:48] TechDivisionPixiLogger.INFO: Action: pixi_api_exportOrders [] []
      [2021-06-11 06:43:48] TechDivisionPixiLogger.INFO: Parameters: [] []
      [2021-06-11 06:43:48] TechDivisionPixiLogger.INFO: array (
        'sid' => 'asa*****',
      ) [] []
      [2021-06-11 06:43:48] TechDivisionPixiLogger.INFO:  [] []
      [2021-06-11 06:43:48] TechDivisionPixiLogger.INFO: Session does not exist [] []
      [2021-06-11 06:43:48] TechDivisionPixiLogger.INFO: Session is expired [] []
      [2021-06-11 06:43:48] TechDivisionPixiLogger.INFO: Filter order with pixi_export_status 0 [] []
      [2021-06-11 06:43:48] TechDivisionPixiLogger.INFO: Or filter retry order with pixi_export_status 1 [] []
      [2021-06-11 06:43:48] TechDivisionPixiLogger.INFO: Filter order with pixi_export_date "null" or pixi_export_date <=" 2021-06-11T06:38:48+00:00"  [] []
      [2021-06-11 06:43:48] TechDivisionPixiLogger.INFO: No orders with filter: "pending" => "paypal_express" ... [] []
      [2021-06-11 06:43:48] TechDivisionPixiLogger.INFO: No orders with filter: "processing" => "checkmo" ... [] []
      [2021-06-11 06:43:48] TechDivisionPixiLogger.INFO: No orders with filter: "processing" => "banktransfer" ... [] []
      [2021-06-11 06:43:48] TechDivisionPixiLogger.INFO: Found 0 orders. [] []
      [2021-06-11 06:43:48] TechDivisionPixiLogger.INFO: Answer: [] []

Funktionsbeschreibung: Bestell-Export-Bestätigung, Wiederholungen

Bestell-Export-Bestätigung (Confirm)

Nach einem Bestellexport zu Pixi* wird diese im Pixi* Control Center verarbeitet. Bei erfolgreicher Speicherung und Verarbeitung sendet Pixi* einen Bestätigungs-Request an das Magento Pixi* Connector Modul zurück. Die Bestellung wird als confirmed markiert.

Hier als Beispiel der Request mit Antwort:

Order-Bestätigung

Bei erweitertem Logging wird folgender Log-Auszug protokolliert:

[2021-06-11 08:50:46] TechDivisionPixiLogger.INFO: ========================================== [] []
[2021-06-11 08:50:46] TechDivisionPixiLogger.INFO: => TechDivision pixi* Request [] []
[2021-06-11 08:50:46] TechDivisionPixiLogger.INFO: ========================================== [] []
[2021-06-11 08:50:46] TechDivisionPixiLogger.INFO: Time: 2021-06-11T08:50:46+00:00 [] []
[2021-06-11 08:50:46] TechDivisionPixiLogger.INFO: Action: pixi_api_confirmOrder [] []
[2021-06-11 08:50:46] TechDivisionPixiLogger.INFO: Parameters: [] []
[2021-06-11 08:50:46] TechDivisionPixiLogger.INFO: array (
  'sid' => 'tes*****',
  'order_id' => '1',
) [] []
[2021-06-11 08:50:46] TechDivisionPixiLogger.INFO:  [] []
[2021-06-11 08:50:46] TechDivisionPixiLogger.INFO: Session does not exist [] []
[2021-06-11 08:50:46] TechDivisionPixiLogger.INFO: Session is expired [] []
[2021-06-11 08:50:46] TechDivisionPixiLogger.INFO: Answer: [] []
[2021-06-11 08:50:46] TechDivisionPixiLogger.INFO: <?xml version="1.0"?>
<ANSWER>
  <STATUS>SUCCESS</STATUS>
  <sessionID>test</sessionID>
  <ORDER_ID>1</ORDER_ID>
</ANSWER>

 [] []
[2021-06-11 08:50:46] TechDivisionPixiLogger.INFO: End of request.
 [] []

Verzögerter Bestell-Export (Delay)

Wurde keine spezielle Konfigurationen gesetzt, so werden alle Bestellung ab der Erstellung im Magento-Shop für den Export zugelassen. Um diverse spezifische Order-Workflows einhalten zu können bzw. diese abzuwarten, können Verzögerungszeitspannen hinterlegt werden.

Order-Bestätigung

Das bedeutet z. B., dass die Bestellung 30 Minuten nach Erstellung erst zum Export bereitgestellt wird.

Betreffen Order-Workflows z. B. Status-Updates durch genutzte Zahlungsanbieter (PSP), so empfehlen wir die Nutzung des Export-Filters.

Wiedervorlage Bestell-Export (Retry)

In manchen Fällen kann es vorkommen, dass Bestellungen im Pixi* Control Center nicht verarbeitet werden können. In diesem Fall wird auch kein Bestätigungs-Request an Magento versendet. Wurde keine spezielle Konfiguration gesetzt, so werden alle nicht bestätigungen Bestellungen nach 5 Minuten wieder für Export zugelassen und übermittelt.

Order-Bestätigung

Da Pixi* den Fehler in der Verarbeitung nicht an Magento sendet, müssen die Fehler manuell behoben werden.

  1. Zuerst muss die fehlerhafte Bestellung identifiziert werden.

  2. Die Fehler müssen behoben werden.

  3. Optional kann der Bestellstatus (pixi_status) auf confirmed gesetzt werden.

Überspringen von Bestellungen (Skip)

ab Version 2.4.3

In manchen Fällen kann es vorkommen, dass Bestellungen aufgrund von Eingabefehlern nicht verarbeitet werden können. Da Magento und die Datenbank standardmäßig im UTF8-Format arbeiten kann es zu Formatierungsfehler beim Datenaustausch (XML, openTrans) kommen, da Pixi* nur ISO-8859-1 unterstützt. Die Bestellung, mit Fehlern, wird übersprungen und eine andere Bestellung, wenn vorhanden, wird exportiert. Der Bestellexport wird nicht blockiert!

Bei einem solchen Verarbeitungsfehler wird folgende Antwort ausgegeben

Order-Bestätigung

Bei erweitertem Logging wird folgender Log-Auszug protokolliert:

[2021-06-11 09:24:01] TechDivisionPixiLogger.INFO: ========================================== [] []
[2021-06-11 09:24:01] TechDivisionPixiLogger.INFO: => TechDivision pixi* Request [] []
[2021-06-11 09:24:01] TechDivisionPixiLogger.INFO: ========================================== [] []
[2021-06-11 09:24:01] TechDivisionPixiLogger.INFO: Time: 2021-06-11T09:24:01+00:00 [] []
[2021-06-11 09:24:01] TechDivisionPixiLogger.INFO: Action: pixi_api_exportOrders [] []
[2021-06-11 09:24:01] TechDivisionPixiLogger.INFO: Parameters: [] []
[2021-06-11 09:24:01] TechDivisionPixiLogger.INFO: array (
  'sid' => 'asa*****',
) [] []
[2021-06-11 09:24:01] TechDivisionPixiLogger.INFO:  [] []
[2021-06-11 09:24:01] TechDivisionPixiLogger.INFO: Session does not exist [] []
[2021-06-11 09:24:01] TechDivisionPixiLogger.INFO: Session is expired [] []
[2021-06-11 09:24:01] TechDivisionPixiLogger.INFO: Filter order with pixi_export_status 0 [] []
[2021-06-11 09:24:01] TechDivisionPixiLogger.INFO: Or filter retry order with pixi_export_status 1 [] []
[2021-06-11 09:24:01] TechDivisionPixiLogger.INFO: Filter order with pixi_export_date "null" or pixi_export_date <=" 2021-06-11T09:19:01+00:00"  [] []
[2021-06-11 09:24:01] TechDivisionPixiLogger.INFO: Found 1 orders. [] []
[2021-06-11 09:24:01] TechDivisionPixiLogger.CRITICAL: Failed to generate xml data! {"DATA":"{\"@attributes\":{\"version\":\"1.0\",\"type\":\"standard\"},\"ORDER_HEADER\":{\"CONTROL_INFO\":{\"GENERATOR_INFO\":\"Magento Community 2.4.2 - \",\"GENERATION_DATE\":\"2021-06-11T09:24:01+00:00\"},\"ORDER_INFO\":{\"ORDER_ID\":\"1\",\"ORDER_SHOPID\":\"1\",\"ORDER_DATE\":\"2021-05-10T05:16:11+00:00\",\"SHOPID\":\"1\",\"SHOP_NOTE\":\"Status changed to: complete (AUS)\",\"ORDER_SHIPLOCK\":\"N\",\"BUYER_SHIPLOCK\":\"N\",\"PRICE_CURRENCY\":\"USD\",\"TRANSPORT_REMARKS\":\"FLAT;;;flatrate|||\",\"LOCATION\":\"001\",\"PARTIAL_DELIVERY\":\"ONCE\",\"ORDER_TYPE\":\"B2C\",\"ORDER_PARTIES\":{\"BUYER_PARTY\":{\"PARTY\":{\"PARTY_ID\":\"p.mehringer+222@techdivision.com\",\"ADDRESS\":{\"NAME2\":\"Patrick\",\"NAME3\":\"Mehringer\",\"STREET\":\"Eichendorffstr.\",\"ZIP\":\"83043\",\"CITY\":\"Bad Aibling\",\"COUNTRY\":\"Germany\",\"PHONE\":\"555\",\"EMAIL\":\"p.mehringer+222@techdivision.com\"}}},\"INVOICE_PARTY\":{\"PARTY\":{\"ADDRESS\":{\"NAME2\":\"Patrick\",\"NAME3\":\"Mehringer\",\"STREET\":\"Eichendorffstr.\",\"ZIP\":\"83043\",\"CITY\":\"Bad Aibling\",\"COUNTRY\":\"Germany\",\"PHONE\":\"555\",\"EMAIL\":\"p.mehringer+222@techdivision.com\"}}},\"SHIPMENT_PARTIES\":{\"DELIVERY_PARTY\":{\"PARTY\":{\"ADDRESS\":{\"NAME2\":\"Patrick\",\"NAME3\":\"Mehringer\",\"STREET\":\"\\bEichendorffstr.\",\"ZIP\":\"83043\",\"CITY\":\"Bad Aibling\",\"COUNTRY\":\"Germany\",\"PHONE\":\"555\",\"EMAIL\":\"p.mehringer+222@techdivision.com\",\"ADDRESS_REMARKS\":\"6\"}}}}},\"PAYMENT\":{\"VORKASSE\":{}},\"REMARK\":[\"5.0000\",\"FLAT\"]}},\"ORDER_ITEM_LIST\":{\"ORDER_ITEM\":{\"LINE_ITEM_ID\":\"1\",\"ARTICLE_ID\":{\"SUPPLIER_AID\":\"24-WB04\"},\"QUANTITY\":\"1\",\"ITEM_NAME\":\"Push It Messenger Bag\",\"ARTICLE_PRICE\":{\"@attributes\":{\"type\":\"udp_gross_customer\"},\"FULL_PRICE\":\"45\",\"PRICE_AMOUNT\":\"45\",\"PRICE_LINE_AMOUNT\":\"45\",\"DISCOUNT_VALUE\":\"0\"}}},\"ORDER_SUMMARY\":{\"TOTAL_ITEM_NUM\":\"1\"}}"} []
[2021-06-11 09:24:01] TechDivisionPixiLogger.CRITICAL: Skip export of order "1" due to xml generation errors [] []
[2021-06-11 09:24:01] TechDivisionPixiLogger.INFO: Filter order with pixi_export_status 0 [] []
[2021-06-11 09:24:01] TechDivisionPixiLogger.INFO: Or filter retry order with pixi_export_status 1 [] []
[2021-06-11 09:24:01] TechDivisionPixiLogger.INFO: Filter order with pixi_export_date "null" or pixi_export_date <=" 2021-06-11T09:19:01+00:00"  [] []
[2021-06-11 09:24:01] TechDivisionPixiLogger.INFO: Found 1 orders. [] []
[2021-06-11 09:24:01] TechDivisionPixiLogger.INFO: Order "1" skipped [] []
[2021-06-11 09:24:01] TechDivisionPixiLogger.INFO: Answer: [] []
[2021-06-11 09:24:01] TechDivisionPixiLogger.INFO: <?xml version="1.0"?>
<status>
  <code>OK</code>
  <DESCRIPTION>No new order, but some orders where skipped (1)</DESCRIPTION>
</status>

 [] []
[2021-06-11 09:24:01] TechDivisionPixiLogger.INFO: End of request.
 [] []

In der Antwort, sowie im Log ist die ID der fehlerhaften Bestellung aufgeführt.

Im Log werden außerdem die Daten der Bestellung als Json protokolliert. Hier könnte bereits ein \\b auf den Fehler für die Formatierung hinweisen.

Anwendungsfall: Zurücksetzen der Pixi*-Exportdaten einer Bestellung

ab Version 2.5.0

In manchen Fällen kann es zu Verarbeitungsabbrüchen innerhalb der Pixi*-Applikation (Control Center) kommen. Dafür sind meistens Fehleingaben bei Adressen der Auslöser. Da die Daten in Magento vorgehalten werden und pixi* nicht direkt nach einem Bestellexport die Fehlermeldung liefert kann in einem solchen Fall die Bestellung nicht korrekt verarbeitet werden.

Um nun die Bestelldaten zu korrigieren, können Sie nun den Export zu pixi* erneut auslösen.

  1. Wählen Sie dazu im Magento Backend die gewünschte Bestellung aus

  2. Ist die Bestellung noch nicht von pixi* bestätigt, können Sie die Daten, welche den Export zu pixi* auslösen zurücksetzen

  3. Klicken Sie dazu auf den Button Reset Pixi Order-Export-Data

    Reset-Order-Data
  4. Nachdem die Daten (pixi_export_status) zurückgesetzt wurden, wird die Bestellung beim nächsten Export wieder berücksichtigt

Anwendungsfall: Bestell-Export mit Store-Filter

ab Version 2.6.0

Mit einem neuen Feature in Version 2.6.0 wurde ein Filter für den Bestell-Export bereitgestellt, welcher über das Pixi-Control-Center gesteuert werden kann.

Hier können per HTTP-Parameter store_code oder store_id der spezifische Store gewählt werden, welcher für den Bestell-Export zulässig ist. So kann verhindert werden, dass Bestellungen aus Stores, welche nicht über Pixi versorgt werden, auch nicht an Pixi übertragen werden.

Die Store-ID kann über die Magento-Datenbank ermittelt werden. Der Store-Code kann über das Magento-Backend ermittelt werden.

ab Version 3.1.0

In Version 3.1.0 wurde der Filter, welcher über Parameter an Magento übergeben werden kann erweitert. Es können nun kommasepariert Store-IDs oder Store-Codes übergeben werden. Hier Beispiele für die Aufrufe:

https://magento244commerce.test/pixi/api/exportOrders?sid=test&store_code=default,second_store

https://magento244commerce.test/pixi/api/exportOrders?sid=test&store_id=1,2,3

Eine weitere Möglichkeit den Export storebasiert zu filtern ist die Nutzung des Konfig-Flags Enable Export. Mit dieser Konfigurationen können Stores vom Order-Export ausgeschlossen werden.

Problemfall: Nicht erkannte Zahlungsarten

ab Version 2.6.0

Wenn Zahlungsarten durch Zahlungsdienstanbieter codetechnisch nicht korrekt in Magento registriert bzw. eingebunden sind, erkennt das Pixi-Modul diese nicht. Um eine einfache Kompatibilität bzgl. der Zahlungsartenverknüfung zu schaffen, wurde eine separate Verknüpfungslogik realisiert, um das Mapping für Pixi zu gewährleisten.

Kompatibilität Zahlungsarten Mapping

Die zusätzlich manuell eingetragenen Zahlungsarten können nun für das Mapping für Pixi verwendet werden. Diese Optionen werden ausschließlich hier verwendet.

Bestands-Import

Da pixi* das bestandsführende System ist, werden die Bestände aus Pixi* für Magento verwendet. Der Abgleich findet statt, sobald es Änderungen in Pixi* gibt statt. Ein manueller Bestandsabgleich ist auch möglich.

Bitte wenden Sie sich dazu an Descartes/Pixi* oder prüfen Sie die Dokumentation

Anwendungsfall: einfacher Bestandsimport

In dieser kurzen Beschreibung wird erklärt, wie ausschließlich Bestände in Magento aktualisiert werden.

  1. Bitte prüfen Sie zunächst, ob die Quellen und Lager in Magento für die Produkte der Webseiten korrekt zugewiesen sind.

    Pixi-MSI-Konfiguration
    Produkt-10
  2. Bitte prüfen Sie die Modulkonfiguration für den Bestandsimport

    Um ausschließlich Bestände zu aktualisieren, müssen die anderen Einstellungen wie EAN aus pixi* importieren deaktiviert sein.

    Bestandsimport-Basis-Konfiguration
  3. Lösen Sie den Bestandsimport-Request aus.

    • Dies passiert wie beschrieben durch eine Bestandsänderung in pixi*.

    • Alternativ können Sie den Request testen.

      • dazu das Attribut Environment auf Development stellen.

      • und folgenden Request-Text in eine Browser-Adresszeile eingeben:

        https://magento242commerce.test/pixi/api/importStock?sid=test&data=
        <ARTICLE_ITEM>
            <ARTICLE_ITEM_ID>24-MB01</ARTICLE_ITEM_ID>
            <QUANTITY>25</QUANTITY><DELIVERY_DATE/>
            <MIN_STOCK_QTY>0</MIN_STOCK_QTY>
            <ACTIVE>true</ACTIVE>
            <EAN>test-ean</EAN>
            <OPENSUPPLORDERS>0</OPENSUPPLORDERS>
        </ARTICLE_ITEM>
        Bestandsrequest
    • Der Bestand von 25 für das gewünschte Produkt mit der SKU 24-MB01 wird aktualisiert.

      Status und EAN werden nicht angepasst

      Produkt-25
    • Bei erweitertem Logging wird folgender Log-Auszug protokolliert:

      [2021-06-10 09:24:13] TechDivisionPixiLogger.INFO: End of request.
       [] []
      [2021-06-10 09:25:54] TechDivisionPixiLogger.INFO: ========================================== [] []
      [2021-06-10 09:25:54] TechDivisionPixiLogger.INFO: => TechDivision pixi* Request [] []
      [2021-06-10 09:25:54] TechDivisionPixiLogger.INFO: ========================================== [] []
      [2021-06-10 09:25:54] TechDivisionPixiLogger.INFO: Time: 2021-06-10T09:25:54+00:00 [] []
      [2021-06-10 09:25:54] TechDivisionPixiLogger.INFO: Action: pixi_api_importStock [] []
      [2021-06-10 09:25:54] TechDivisionPixiLogger.INFO: Parameters: [] []
      [2021-06-10 09:25:54] TechDivisionPixiLogger.INFO: array (
        'sid' => 'tes*****',
        'data' => '<ARTICLE_ITEM><ARTICLE_ITEM_ID>24-MB01</ARTICLE_ITEM_ID><QUANTITY>25</QUANTITY><DELIVERY_DATE/><MIN_STOCK_QTY>0</MIN_STOCK_QTY><ACTIVE>true</ACTIVE><EAN>test-ean</EAN><OPENSUPPLORDERS>0</OPENSUPPLORDERS></ARTICLE_ITEM>',
      ) [] []
      [2021-06-10 09:25:54] TechDivisionPixiLogger.INFO:  [] []
      [2021-06-10 09:25:54] TechDivisionPixiLogger.INFO: Session does not exist [] []
      [2021-06-10 09:25:54] TechDivisionPixiLogger.INFO: Session is expired [] []
      [2021-06-10 09:25:54] TechDivisionPixiLogger.INFO: GET-DATA FOR IMPORT STOCK * "'<ARTICLE_ITEM><ARTICLE_ITEM_ID>24-MB01</ARTICLE_ITEM_ID><QUANTITY>25</QUANTITY><DELIVERY_DATE/><MIN_STOCK_QTY>0</MIN_STOCK_QTY><ACTIVE>true</ACTIVE><EAN>test-ean</EAN><OPENSUPPLORDERS>0</OPENSUPPLORDERS></ARTICLE_ITEM>'" [] []
      [2021-06-10 09:25:54] TechDivisionPixiLogger.INFO: Updating product 1 "24-MB01" [] []
      [2021-06-10 09:25:54] TechDivisionPixiLogger.INFO: Updating quantity for product 1 "24-MB01" [] []
      [2021-06-10 09:25:54] TechDivisionPixiLogger.INFO: Saved msi stock 25 for product 24-MB01 [] []
      [2021-06-10 09:25:54] TechDivisionPixiLogger.INFO: Answer: [] []
      [2021-06-10 09:25:54] TechDivisionPixiLogger.INFO: <?xml version="1.0"?>
      <ANSWER>
        <code>OK</code>
      </ANSWER>
       [] []
      [2021-06-10 09:25:54] TechDivisionPixiLogger.INFO: End of request.
       [] []

Anwendungsfall: Bestandsimport mit EAN- und Status-Update

In dieser kurzen Beschreibung wird erklärt, wie Bestände in Magento angepasst werden und dabei auch EAN-Nummern sowie der Status des Produkts aktualisiert werden

  1. Bitte prüfen Sie zunächst, ob die Quellen und Lager in Magento für die Produkte der Webseiten korrekt zugewiesen sind.

    MSI-Konfiguration
    Produkt-25
  2. Bitte prüfen Sie die Modulkonfiguration für den Bestandsimport

    Um Bestände aktualisieren sowie EAN- und Status-Updates zu erlauben, müssen Einstellungen aktiviert sein.

    Bestandsimport-Attribut-Konfiguration
  3. Bitte prüfen Sie die Modulkonfiguration für des Produktexports

    Das hier zugewiesene Attribut für die EAN-Anzeige und Verarbeitung wird auch für den Update-Vorgang verwendet.

    Produkt-Export-Konfiguration
  4. Lösen Sie den Bestandsimport-Request aus.

    • Dies passiert wie beschrieben durch eine Bestandsänderung in pixi*.

    • Alternativ können Sie den Request testen.

      • dazu das Attribut Environment auf Development stellen.

      • und folgenden Request-Text in eine Browser-Adresszeile eingeben:

        https://magento242commerce.test/pixi/api/importStock?sid=test&data=
        <ARTICLE_ITEM>
            <ARTICLE_ITEM_ID>24-MB01</ARTICLE_ITEM_ID>
            <QUANTITY>50</QUANTITY><DELIVERY_DATE/>
            <MIN_STOCK_QTY>0</MIN_STOCK_QTY>
            <ACTIVE>true</ACTIVE>
            <EAN>test-ean</EAN>
            <OPENSUPPLORDERS>0</OPENSUPPLORDERS>
        </ARTICLE_ITEM>
        Bestandsrequest mit Attributen
    • Das gewünschte Produkt mit der SKU 24-MB01 wird aktualisiert.

      • der Bestand wird auf 50 gesetzt.

      • der Status wird auf aktiv gesetzt.

      • die EAN wird mit test-ean überschrieben.

        Produkt-50
    • Bei erweitertem Logging wird folgender Log-Auszug protokolliert:

      [2021-06-10 09:28:07] TechDivisionPixiLogger.INFO: ========================================== [] []
      [2021-06-10 09:28:07] TechDivisionPixiLogger.INFO: => TechDivision pixi* Request [] []
      [2021-06-10 09:28:07] TechDivisionPixiLogger.INFO: ========================================== [] []
      [2021-06-10 09:28:07] TechDivisionPixiLogger.INFO: Time: 2021-06-10T09:28:07+00:00 [] []
      [2021-06-10 09:28:07] TechDivisionPixiLogger.INFO: Action: pixi_api_importStock [] []
      [2021-06-10 09:28:07] TechDivisionPixiLogger.INFO: Parameters: [] []
      [2021-06-10 09:28:07] TechDivisionPixiLogger.INFO: array (
        'sid' => 'tes*****',
        'data' => '<ARTICLE_ITEM><ARTICLE_ITEM_ID>24-MB01</ARTICLE_ITEM_ID><QUANTITY>50</QUANTITY><DELIVERY_DATE/><MIN_STOCK_QTY>0</MIN_STOCK_QTY><ACTIVE>true</ACTIVE><EAN>test-ean</EAN><OPENSUPPLORDERS>0</OPENSUPPLORDERS></ARTICLE_ITEM>',
      ) [] []
      [2021-06-10 09:28:07] TechDivisionPixiLogger.INFO:  [] []
      [2021-06-10 09:28:07] TechDivisionPixiLogger.INFO: Session does not exist [] []
      [2021-06-10 09:28:07] TechDivisionPixiLogger.INFO: Session is expired [] []
      [2021-06-10 09:28:07] TechDivisionPixiLogger.INFO: GET-DATA FOR IMPORT STOCK * "'<ARTICLE_ITEM><ARTICLE_ITEM_ID>24-MB01</ARTICLE_ITEM_ID><QUANTITY>50</QUANTITY><DELIVERY_DATE/><MIN_STOCK_QTY>0</MIN_STOCK_QTY><ACTIVE>true</ACTIVE><EAN>test-ean</EAN><OPENSUPPLORDERS>0</OPENSUPPLORDERS></ARTICLE_ITEM>'" [] []
      [2021-06-10 09:28:07] TechDivisionPixiLogger.INFO: Updating product 1 "24-MB01" [] []
      [2021-06-10 09:28:07] TechDivisionPixiLogger.INFO: Updating quantity for product 1 "24-MB01" [] []
      [2021-06-10 09:28:07] TechDivisionPixiLogger.INFO: Saved msi stock 50 for product 24-MB01 [] []
      [2021-06-10 09:28:07] TechDivisionPixiLogger.INFO: Answer: [] []
      [2021-06-10 09:28:07] TechDivisionPixiLogger.INFO: <?xml version="1.0"?>
      <ANSWER>
        <code>OK</code>
      </ANSWER>
       [] []
      [2021-06-10 09:28:07] TechDivisionPixiLogger.INFO: End of request.
       [] []

Bestell-Status-Import

Da pixi* das bestandsführende System ist, werden Bestellungen in Pixi* verarbeitet. Die Bestellungen werden über den Bestell-Export an Pixi* übermittelt. Nach Verarbeitung/Bearbeitung der Bestellungen werden diverse Status-Updates von Pixi* an Magento gesendet. Die Aktualisierungen findet statt, sobald es Änderungen in Pixi* gibt statt.

Bitte wenden Sie sich bei Fragen dazu an Descartes/Pixi* oder prüfen Sie die Dokumentation

Anwendungsfall: Bestellstatus-Update

In dieser kurzen Beschreibung wird erklärt, wie eine Aktualisierung des Bestellstatus funktioniert.

Order-Pending
  1. Bitte prüfen Sie zunächst, ob die Statuskonfiguration für Bestellungen korrekt gesetzt ist.

  2. Lösen Sie den Bestandsimport-Request aus.

    • Dies passiert wie beschrieben durch eine Bestandsänderung in pixi*.

    • Alternativ können Sie den Request testen.

      • dazu das Attribut Environment auf Development stellen.

      • und folgenden Request-Text in eine Browser-Adresszeile eingeben:

        https://magento242commerce.test/pixi/api/importOrderStatus?sid=test&data=<ORDER_ITEM>
        <LINE_ITEM_ID>1</LINE_ITEM_ID>
            <QUANTITY>1</QUANTITY>
            <FULL_PRICE>0.0000</FULL_PRICE>
            <DISCOUNT_PERC>0.00</DISCOUNT_PERC>
            <DISCOUNT_VALUE>0.0000</DISCOUNT_VALUE>
            <PRICE_AMOUNT>0.0000</PRICE_AMOUNT>
            <STATUS>ANG</STATUS>
            <ORDER_NR_EXT>1</ORDER_NR_EXT>
            <ORDER_STATUS>CLOSED</ORDER_STATUS>
            <INVOICE_NR>INV00001</INVOICE_NR>
            <SHIPPING_VENDOR>FLAT</SHIPPING_VENDOR>
        </ORDER_ITEM>
    • Der Status der Bestellung wird auf processing gesetzt.

      Order-Processing
      Order-Notes
    • Bei erweitertem Logging wird folgender Log-Auszug protokolliert:

      [2021-06-11 10:12:18] TechDivisionPixiLogger.INFO: ========================================== [] []
      [2021-06-11 10:12:18] TechDivisionPixiLogger.INFO: => TechDivision pixi* Request [] []
      [2021-06-11 10:12:18] TechDivisionPixiLogger.INFO: ========================================== [] []
      [2021-06-11 10:12:18] TechDivisionPixiLogger.INFO: Time: 2021-06-11T10:12:18+00:00 [] []
      [2021-06-11 10:12:18] TechDivisionPixiLogger.INFO: Action: pixi_api_importOrderStatus [] []
      [2021-06-11 10:12:18] TechDivisionPixiLogger.INFO: Parameters: [] []
      [2021-06-11 10:12:18] TechDivisionPixiLogger.INFO: array (
        'sid' => 'tes*****',
        'data' => '<ORDER_ITEM><LINE_ITEM_ID>1</LINE_ITEM_ID><QUANTITY>1</QUANTITY><FULL_PRICE>0.0000</FULL_PRICE><DISCOUNT_PERC>0.00</DISCOUNT_PERC><DISCOUNT_VALUE>0.0000</DISCOUNT_VALUE><PRICE_AMOUNT>0.0000</PRICE_AMOUNT><ITEM_NOTE>{"ampromo_rule_id":"12","discount":"0,"}</ITEM_NOTE><STATUS>ANG</STATUS><TRACKINGID>0815</TRACKINGID><RET_TRACKINGID>4711</RET_TRACKINGID><ORDER_NR_EXT>1</ORDER_NR_EXT><ORDER_STATUS>CLOSED</ORDER_STATUS><INVOICE_NR>INV00001</INVOICE_NR><SHIPPING_VENDOR>FLAT</SHIPPING_VENDOR></ORDER_ITEM>',
      ) [] []
      [2021-06-11 10:12:18] TechDivisionPixiLogger.INFO:  [] []
      [2021-06-11 10:12:18] TechDivisionPixiLogger.INFO: Session does not exist [] []
      [2021-06-11 10:12:18] TechDivisionPixiLogger.INFO: Session is expired [] []
      [2021-06-11 10:12:18] TechDivisionPixiLogger.INFO: Updating order status of 1 from pending to processing [] []
      [2021-06-11 10:12:18] TechDivisionPixiLogger.INFO: Answer: [] []
      [2021-06-11 10:12:18] TechDivisionPixiLogger.INFO: <?xml version="1.0"?>
      <ANSWER>
        <code>OK</code>
      </ANSWER>
      
       [] []
      [2021-06-11 10:12:18] TechDivisionPixiLogger.INFO: End of request.
       [] []

Anwendungsfall: Bestellstatus-Update / Auslieferung

In dieser kurzen Beschreibung wird erklärt, wie eine Aktualisierung des Bestellstatus mit Auslieferung (inkl. Tracking-Infos) funktioniert.

Ausgangslage ist die in Bearbeitung befindende Bestellung

  1. Bitte prüfen Sie zunächst, ob die Statuskonfiguration für Bestellungen korrekt gesetzt ist.

  2. Optional können Sie die Versanddienstleisterinformationen ebenfalls von Pixi* beziehen. Dazu müsste das Mapping gepflegt werden

    Order-Notes
  3. Lösen Sie den Bestandsimport-Request aus.

    • Dies passiert wie beschrieben durch eine Bestandsänderung in pixi*.

    • Alternativ können Sie den Request testen.

      • dazu das Attribut Environment auf Development stellen.

      • und folgenden Request-Text in eine Browser-Adresszeile eingeben:

        https://magento242commerce.test/pixi/api/importOrderStatus?sid=test&data=<ORDER_ITEM>
        <LINE_ITEM_ID>1</LINE_ITEM_ID>
            <QUANTITY>1</QUANTITY>
            <FULL_PRICE>0.0000</FULL_PRICE>
            <DISCOUNT_PERC>0.00</DISCOUNT_PERC>
            <DISCOUNT_VALUE>0.0000</DISCOUNT_VALUE>
            <PRICE_AMOUNT>0.0000</PRICE_AMOUNT>
            <STATUS>AUS</STATUS>
            <TRACKINGID>0815</TRACKINGID>
            <RET_TRACKINGID>4711</RET_TRACKINGID>
            <ORDER_NR_EXT>1</ORDER_NR_EXT>
            <ORDER_STATUS>CLOSED</ORDER_STATUS>
            <INVOICE_NR>INV00001</INVOICE_NR>
            <SHIPPING_VENDOR>FLAT</SHIPPING_VENDOR>
        </ORDER_ITEM>

        Um eine Lieferung in Magento zu erzeugen, muss der Status AUS übermittelt werden

    • Der Status der Bestellung wird auf complete gesetzt.

      Order-Complete

      Ein Lieferschein wir in Magento erzeugt und

      die Trackingformation wird beim Lieferschein gespeichert

      Order-Complete

      Diese Bestellungsinformation werden bei den Daten (Comments) ebenfalls gespeichert

      Order-Complete
    • Bei erweitertem Logging wird folgender Log-Auszug protokolliert:

      [2021-06-11 10:19:30] TechDivisionPixiLogger.INFO: ========================================== [] []
      [2021-06-11 10:19:30] TechDivisionPixiLogger.INFO: => TechDivision pixi* Request [] []
      [2021-06-11 10:19:30] TechDivisionPixiLogger.INFO: ========================================== [] []
      [2021-06-11 10:19:30] TechDivisionPixiLogger.INFO: Time: 2021-06-11T10:19:30+00:00 [] []
      [2021-06-11 10:19:30] TechDivisionPixiLogger.INFO: Action: pixi_api_importOrderStatus [] []
      [2021-06-11 10:19:30] TechDivisionPixiLogger.INFO: Parameters: [] []
      [2021-06-11 10:19:30] TechDivisionPixiLogger.INFO: array (
        'sid' => 'tes*****',
        'data' => '<ORDER_ITEM><LINE_ITEM_ID>1</LINE_ITEM_ID><QUANTITY>1</QUANTITY><FULL_PRICE>0.0000</FULL_PRICE><DISCOUNT_PERC>0.00</DISCOUNT_PERC><DISCOUNT_VALUE>0.0000</DISCOUNT_VALUE><PRICE_AMOUNT>0.0000</PRICE_AMOUNT><ITEM_NOTE>{"ampromo_rule_id":"12","discount":"0,"}</ITEM_NOTE><STATUS>AUS</STATUS><TRACKINGID>0815</TRACKINGID><RET_TRACKINGID>4711</RET_TRACKINGID><ORDER_NR_EXT>1</ORDER_NR_EXT><ORDER_STATUS>CLOSED</ORDER_STATUS><INVOICE_NR>INV00001</INVOICE_NR><SHIPPING_VENDOR>FLAT</SHIPPING_VENDOR></ORDER_ITEM>',
      ) [] []
      [2021-06-11 10:19:30] TechDivisionPixiLogger.INFO:  [] []
      [2021-06-11 10:19:30] TechDivisionPixiLogger.INFO: Session does not exist [] []
      [2021-06-11 10:19:30] TechDivisionPixiLogger.INFO: Session is expired [] []
      [2021-06-11 10:19:30] TechDivisionPixiLogger.INFO: Set item as shipped (ID 1 of Order 1) [] []
      [2021-06-11 10:19:30] TechDivisionPixiLogger.INFO: Set shipment source to default [] []
      [2021-06-11 10:19:30] TechDivisionPixiLogger.INFO: Updating order status of 1 from processing to complete [] []
      [2021-06-11 10:19:30] TechDivisionPixiLogger.INFO: Answer: [] []
      [2021-06-11 10:19:30] TechDivisionPixiLogger.INFO: <?xml version="1.0"?>
      <ANSWER>
        <code>OK</code>
      </ANSWER>
      
       [] []
      [2021-06-11 10:19:30] TechDivisionPixiLogger.INFO: End of request.
       [] []

      Da Pixi* als "Single-Source-of-Truth" angesehen wird, werden reservierte Bestände mit der Auslieferung wieder aufgelöst.

      Die Bestände werden aus Pixi* über den Bestandsimport abgeglichen.

      Werden Versandinformationen (Tracking-IDs) nachträglich verändert, so wird ein erneuter Update-Request gesendet. Dieser wird bei Komplettlieferungen ignoriert, da es zu "Überversendungen" kommen kann.

Funktionsbeschreibung: Teillieferungen

Neben dem Komplettversand von Bestellungen können auch Teillieferungen verwaltet werden. Diese Funktion muss im Pixi* Control Center wie auch im Magento Pixi* Connector Modul aktiviert werden.

Order-Complete

Hierbei sind folgende Themen zu beachten:

  • Der Status wird nicht mehr anhand des übergebenen STATUS gesetzt.

  • Es wird der Wert aus ORDER_STATUS verwendet.

  • Dafür gibt es eine separate Statuszuweisung in der Konfiguration (siehe obiges Bild).

  • Für jede Teillieferung wird ein Lieferschein in Magento erzeugt. Sind Tracking-Informationen enthalten, so werden diese beim jeweiligen Lieferschein verzeichnet.

Ab Version 3.1.5 werden die genannten Optionen und Konfigurationen auch für Teilstornierungen genutzt.

Anwendungsfall: Setzen des Bestellzustandes beim Bestellstatus-Update

ab Version 3.1.0

Standardmäßig wird beim Bestellstatus-Import bzw. Update nur der Bestellstatus (Order Status) gesetzt. Nun kann über die Konfiguration eingestellt werden, ob auch der Bestellzustand (Order State) gesetzt werden. Dies ist vor allem sinnvoll, wenn die Faktura durch ein Drittanbieter-System Set Order State oder direkt durch Pixi* vorgenommen wird und gewährleistet werden soll, dass alle Bestelldaten systemübergreifend konsistent gehalten werden.

Order-History-State

Ist das Setzen des Bestellzustandes aktiv, so wird dieser gesetzt und in den Bestellhistorie kommentiert.

Sonderfälle Bestellstatus-Update

Um die Daten zwischen Magento und Pixi* konsistent zu halten gibt es Sonderfälle in der Verarbeitung bei einem Bestellstatus-Update.

Bei den Werten AUS, STO und NLB werden neben der Aktualisierung des Bestellstatus in Magento noch weitere Daten verarbeitet.

Wie bereits im Punkt Auslieferung erläutert werden über den Status AUS Lieferscheine und Trackinginformationen angelegt und verarbeitet.

Mit den Status NLB oder STO werden Stornierungen auf Positionsebene verbucht.

Da sich das Pixi-Magento-Connector Modul sich bereits beim Bestätigen der Bestellung seitens Pixi um die Bestandsreservierungsauflösung in Magento kümmert, werden bei Stornierungen oder Lieferscheinerstellungen keine Bestandskorrekturen mehr vorgenommen.

Pixi* Dashboard

ab Version 3.3.0

Das Pixi* Dashboard ist im Magento-Backend über Pixi* Connector > Dashboard erreichbar. Es bietet neben der Auflistung aller Pixi*-Magento-Requests einen schnellen Überblick über Daten-Exports und Fehler sowie einige Komfortfunktionen.

In der Schnellübersicht werden folgende Informationen angezeigt:

  • Letzter erfolgreicher Katalog-Export

  • Letzter erfolgreicher Bestell-Export

  • Anzahl exportierter Produkte

  • Anzahl exportierter Bestellungen je Store-View

  • Konfigurationsinformationen

  • Datum der letzten Konfigurationsänderungen

Dashbaord

Auflistung aller Pixi*-Requests (History)

Jeder Request welcher von Pixi* an die Magento-Instanz gesendet wird, wird nun in einer sog. Request-History gespeichert. Dabei werden der Typ, das Datum, der Status und Entitäten gespeichert. Über die Tabelle können Sie nach den gewünschten Daten filtern und somit die Historie von Entitäten, von Request-Typen oder nach Status prüfen. Die Entitäten sind direkt verlinkt um die Daten schnell prüfen zu können.

Entitäten werden beim Export von Katalogdaten nicht gespeichert.

Werden keine exportierbaren Entitäten bei einem Request gefunden, so werden ebenfalls keine Entitäten in der Historie verknüpft.

History-Bereinigung

Über das Dashboard ist es möglich die gesamte Request-Historie zu löschen.

Dazu befindet sich in der Kopfzeile des Dashboards der Button Clear Request History

Download Pixi*-Logdatei

Über das Dashboard ist es möglich die Logdatei des Pixi-Moduls herunterzuladen. Dies ist äußerst hilfreich, wenn das "erweiterte Logging" über die Konfiguration aktiviert ist um die Verarbeitungsvorgänge prüfen zu können.

Dazu befindet sich in der Kopfzeile des Dashboards der Button Download Pixi Log

Löschen Pixi*-Logdatei

Über das Dashboard ist es möglich die Logdatei des Pixi-Moduls zu löschen.

Dazu befindet sich in der Kopfzeile des Dashboards der Button Clear Log Files

Migration auf Pixi* Magento Connector 3.0.0

Die bisherigen Module Pixi* Connector und Pixi* MSI Addon wurden aufgrund von Kompatibilität und Effizienz für Kunden als einfache entkoppelte Lösung angeboten um den damaligen Umstieg und die Verwaltung von Magento MSI zu vereinfachen.

Das neue Modul Pixi* Magento Connector enthält den Source-Code der beiden "alten" Module und bietet einfache, moderne Kompatibilitätsprüfung für die Magento MSI Integration und deren Verwendung.

Die Zusammenführung der Module und eine Restrukturierung wurde durchgeführt, da Magento MSI die Standard-Lagerverwaltungslogik eines Magento-Shops darstellt.

Folgende einfache Schritte müssen bzgl. der Migration auf die Version 3.0.0 durchgeführt werden

  1. Entfernen der "alten" Pixi* Module

    composer remove techdivision/pixi && techdivision/pixi-msi
  2. Installation des "neuen" Pixi* Magento Connectors

    composer require techdivision/pixi-magento-connector ^3.0.0
  3. Aktualisierung der Magento-Instanz um Module zu registrieren

    bin/magento setup:upgrade

Nach diesen Schritten ist das Modul einsatzfähig und funktioniert. Alle bisherigen Konfigurationen und Optionen werden weiterhin verwendet, da die Konfigurationspfade nicht geändert wurden und der sog. "Namespace" gleich geblieben ist.