Realiseret dato på Magento 2 salg og betalinger

Når en ordre skifter til en state, som er angivet som bogføringstrigger, skal der sættes en realiseret dato på omsætningen og på en eventuelle betaling. 

Her tager vi datoen fra det seneste objekt i status_histories

Det gør vi da dette er det eneste sted i Magento 2, hvor der findes et bud på hvornår ordren er betalt. Det skyldes, at betalingsgatewayen indsætter et objekt, når betalingen gennemføres, selvom det som sådan modstrider tanken med objektet, da det reelt kun bør angive tidspunkter for ændrede status.

Eksempel

I nedenstående eksempel har vi fået en ordre ind, som aktuelt har state complete (som er valgt som bogføringstrigger). 

I dette tilfælde vil realiseret dato og dato for betalingen blive sat til: 30. sep 2022

Det gør den fordi den seneste status update angivet i status_histories.created_at har denne værdi. 

"state": "complete",
"status": "complete",
"status_histories": [
  {
    "comment": "Captured amount of DKK10,798.00 online. Transaction ID: \"337939822-capture\"",
    "created_at": "2022-09-30 06:12:52",
    "entity_id": 117169,
    "entity_name": "invoice",
    "is_customer_notified": null,
    "is_visible_on_front": 0,
    "parent_id": 54015,
    "status": "processing"
  },
  {
    "comment": "Order confirmation email sent to customer",
    "created_at": "2022-09-29 18:14:35",
    "entity_id": 117122,
    "entity_name": "order",
    "is_customer_notified": 1,
    "is_visible_on_front": 0,
    "parent_id": 54015,
    "status": "processing"
  },
  {
    "comment": "The authorized amount is 10.798,00\u00a0kr. Transaction ID: \"337939822\"",
    "created_at": "2022-09-29 18:14:35",
    "entity_id": 117121,
    "entity_name": "order",
    "is_customer_notified": null,
    "is_visible_on_front": 0,
    "parent_id": 54015,
    "status": "processing"
  }
],
Undgå at hæve penge unden om shopsystemet

Vi oplever ind i mellem, at webshops hæver pengene uden om Magento. Det betyder desværre, at den realiserede dato bliver forkert. Det skyldes, at der i Magento 2 mangler en status-history objekt, der angivet, at der er foretaget en betaling.