Skip to content

About

everysize Checkout for PrestaShop – import everysize orders into PrestaShop and report shipping, cancellations, returns and refunds back

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

everysize Checkout — Modul für PrestaShop 8/9

Bindet einen PrestaShop-Shop an den everysize-Direktkauf an: Bestellungen, die Kundinnen auf everysize.com aufgeben, landen als Bestellung im Shop; Bestellnummer, Versand, Storno, Retoure und Erstattungen gehen zurück an everysize.

Modul-Name everysize_checkout, Version 1.1.0, MIT.

Voraussetzungen

  • PrestaShop 8.1 bis 9.x (getestet mit 9.2.0 / PHP 8.4)
  • PHP ≥ 8.1 mit curl
  • ein Cronjob (PrestaShop hat keinen eigenen Scheduler für Module)

Kein PayPal-Modul nötig: bezahlt wird bei everysize. Erstattet wird im Reiter „everysize" der Bestellung über everysize oder direkt im PayPal-Konto des Händlers. Ab 1.1.0 zahlt auch eine Gutschrift im Shop (Teil-/Standarderstattung, Rücksendung) den Betrag über everysize an PayPal zurück — abschaltbar, ab PrestaShop 9.

Installation

  1. Im Backoffice unter Module → Modul-Manager → Modul hochladen das ZIP everysize-checkout-prestashop-vX.Y.Z.zip hochladen (es enthält den Ordner everysize_checkout/) und „everysize Checkout" installieren.

    Alternativ mit Composer im Verzeichnis des Shops:

    composer config allow-plugins.composer/installers true
    composer require everysize/checkout-prestashop

    Das Paket landet in modules/everysize_checkout/; danach im Modul-Manager installieren. Update: composer update everysize/checkout-prestashop, dann im Modul-Manager „Aktualisieren".

  2. Beim Update per ZIP das neue ZIP genauso hochladen; PrestaShop führt die Upgrade-Schritte des Moduls aus.

  3. Module → Modul-Manager → everysize Checkout → Konfigurieren: Client-ID und Client-Secret aus everysize Business („Shop-Integration" → PrestaShop) eintragen, Versanddienstleister und Status-Zuordnungen prüfen, mit „Verbindung testen" prüfen.

  4. Cronjob anlegen — alle 5 Minuten:

    */5 * * * * cd /pfad/zum/shop && php bin/console everysize:sync

    Ohne Console-Zugang (Webcron): https://<shop>/index.php?fc=module&module=everysize_checkout&controller=cron&token=<Token> (Token steht nach der Installation in den Moduleinstellungen.)

Ablauf

Richtung Was Wann
everysize → Shop neue Bestellungen (PROCESSING, auch bereits stornierte REVOKED) ohne Händler-Bestellnummer jeder Lauf
Shop → everysize PrestaShop-Bestellnummer direkt nach dem Import
Shop → everysize Versand mit Sendungsnummer und Versanddienstleister Bestellstatus = „Versandt" (einstellbar)
Shop → everysize Sendungsnummer nachgetragen oder korrigiert bis 14 Tage nach der Versandmeldung, nur wenn everysize sie noch nicht hat
Shop → everysize Erstattung (ganz oder teilweise) Button im Reiter „everysize"
Shop → everysize Erstattung über Gutschrift (Teil-/Standarderstattung, Rücksendung im Shop) Gutschrift im PS-Admin, abschaltbar (ab PrestaShop 9)
Shop → everysize volle Erstattung automatisch nach einem Storno vor dem Versand, nur wenn noch gar nichts erstattet wurde (abschaltbar)
Shop → everysize Storno MERCHANT_DECLINE Bestellung storniert, bevor der Versand gemeldet war
Shop → everysize Retoure RETOUR Rücksendung „Paket erhalten" oder Bestellstorno nachdem der Versand gemeldet war
  • Zuordnung: Bestellpositionen über sku = PrestaShop-Referenz der Kombination (z. B. CW2288-111-42.5); ohne Kombinationen die Artikel-Referenz. Exakter Treffer vor Groß-/Kleinschreibung, aktiver vor inaktivem Artikel; zwei gleich gute Treffer sind ein Fehler.
  • Preise: Bestellung mit den bei everysize bezahlten Bruttopreisen. Netto und Mehrwertsteuer rechnet das Modul mit dem Steuersatz des Produkts (Steuerregeln des Shops) zurück; Versandkosten erben den höchsten Positionssatz. Weicht die erwartete Gesamtsumme von grossPrice ab, landet eine Warnung im Protokoll (Import läuft trotzdem).
  • Bestand: wird beim Import reduziert, auch unter 0 (Warnung im Protokoll); ein Storno/Rücksendung im Shop bucht ihn wie gewohnt zurück.
  • Kunde: customer.email ist eine Weiterleitungsadresse von everysize, stabil je Kundin; ein Wiederkauf landet am selben (Gast-)Konto. Mails des Shops gehen dorthin und laufen über everysize. Die Original-Adresse (customer.originalEmail) steht nur zur Information im Reiter „everysize".
  • Zahlart: importierte Bestellungen tragen „everysize (PayPal)" mit der PayPal-Capture-ID als Transaktions-ID. Das Geld ist bei everysize bezahlt.
  • Status-Zuordnungen: welche Bestellstatus „bezahlt importiert", „storniert importiert", „versandt" und „storniert" bedeuten, ist in den Moduleinstellungen einstellbar (Defaults: „Zahlung akzeptiert", „Zahlung akzeptiert", „Versandt", „Storniert").
  • Atomar: Validierung (Produkt, Land, Beträge) vor dem ersten Schreiben; schlägt ein Import fehl, bleibt die Bestellung bei everysize und wird im nächsten Lauf erneut versucht.
  • Genau einmal: jede Meldung steht mit eindeutigem Schlüssel (Bestellung, Art, SKU) in everysize_report; ein zweiter Lauf meldet nichts doppelt.
  • Storno bei everysize: vor jeder Meldung fragt das Modul den Stand bei everysize ab. Ist die Bestellung dort schon storniert (PayPal-Erstattung, everysize Business), meldet es nichts: ein Versand würde sie auf COMPLETED zurücksetzen, ein Storno den Grund von everysize überschreiben.
  • Testumgebung: Umgebungsvariable EVERYSIZE_CHECKOUT_API_URL auf eine HTTPS-Adresse unter everysize.com setzen (z. B. im Docker-Compose); alles andere wird abgelehnt, nie still auf Produktion gefallen. Die Moduleinstellungen zeigen die aktive Umgebung.

CLI-Commands

Command Wirkung
everysize:sync Import und Export — der Cron-Job (empfohlen */5 * * * *)
everysize:order:import nur Bestellungen holen + Bestellnummer melden
everysize:order:export nur Versand/Storno/Retoure/Erstattungen melden

Cron einrichten

Der Sync holt Bestellungen und meldet Status zurück — er sollte alle 5 Minuten laufen. Voraussetzungen: PHP ≥ 8.1 mit pdo_mysql, curl, mbstring; PrestaShop 8.1 oder 9.x.

Empfohlen: System-Cron über die Konsole des Shops

*/5 * * * * php /pfad/zum/shop/bin/console everysize:sync --no-interaction >> /var/log/everysize-sync.log 2>&1

Der Befehl steht auch in den Moduleinstellungen („Sync“). Bei Fehlern landet ein Lauf nicht in einer Endlosschleife — nicht gemeldete Änderungen holen die nächsten Läufe nach.

Alternative: Webcron (Hoster ohne Konsole)

Die Moduleinstellungen zeigen die Webcron-URL mit Token (index.php?fc=module&module=everysize_checkout&controller=cron&token=…). Das Token wird bei der Installation erzeugt und kann alternativ im Header X-Everysize-Token: <Token> übergeben werden. Ein Beispiel für cron-job.org: URL eintragen, Intervall 5 Minuten, Header X-Everysize-Token mit dem Token aus den Moduleinstellungen.

Datenbank

Das Modul legt vier Tabellen an (Präfix des Shops, Default ps_):

Tabelle Inhalt
everysize_order Verlinkung Bestellung ↔ everysize-Order-ID, PayPal-Capture-ID, Original-E-Mail, Bestellnummer gemeldet
everysize_order_item Positionen mit SKU (exakt wie von everysize geschickt)
everysize_report jede Meldung genau einmal: (id_order, kind, sku) — fulfillment / revocation / tracking / refund
everysize_protocol Protokoll der Läufe (31 Tage Retention, Aufräumen am Ende jedes Laufs)

Bei der Deinstallation bleiben Tabellen und Zuordnungen erhalten („Daten behalten"); zum vollständigen Entfernen die vier Tabellen löschen.

Bekannte Grenzen

  • Eine Rücksendung oder ein Storno meldet die ganze Position einmal an everysize; Teilmengen werden nicht gemeldet. Die Meldung wird pro (Bestellung, Art, SKU) eindeutig gespeichert; eine weitere Rücksendung zur selben Position ändert die bereits gemeldete Revocation nicht. Einen Teilbetrag erstatten Sie über eine Gutschrift im Shop oder im Reiter „everysize" der Bestellung.
  • Die Bestellhistorie wird ab dem Stichtag der Installation (EVERYSIZE_CHECKOUT_HISTORY_SINCE, bei Installation/Upgrade auf „jetzt" gesetzt) durchsucht. Bestellungen, deren Historie vollständig davor liegt, werden nicht nachgemeldet — der erste Lauf nach der Installation meldet nicht den Altbestand.

Lizenz

MIT — siehe LICENSE.

About

everysize Checkout for PrestaShop – import everysize orders into PrestaShop and report shipping, cancellations, returns and refunds back

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages