pixiGetCustomersToRefund
Liefert Kunden mit positivem Rückerstattungsvorschlag aus dem Kundenkonto inklusive Saldo, offenen Aufträgen und Abgleichstatus, optional gefiltert nach Shop und Betrag.
Ermittelt, welche Kunden eine Rückerstattung aus ihrem Kundenkonto (CustomerAccount) erhalten sollten.
- Ein leerer
ShopIdwird alsNULLbehandelt.NULLfürAmountFrom/AmountTowird durch0/1000000ersetzt. - Als Kandidaten werden alle Kunden gewählt, deren Kundenkontobuchungen in Summe positiv sind.
- Für diese Kandidaten berechnet die interne Prozedur
Pixi_CA_GetSummaryListje Kunde:FinancialBalance: Summe aller Kundenkontobeträge.OpenOrders: Wert der Auftragspositionen in offenem Status (OrderStates.CA_IsOpenOrder = 1), die noch nicht in einer Rechnung stehen, abzüglich nicht eingelöster Gutscheine und zuzüglich Versandkosten. Berücksichtigt werden nur Aufträge, deren ZahlungsartCA_SubstractFromopenOrdersWhenRefund = 0hat; negative Werte je Währung werden auf 0 gesetzt.SuggestedRefund: erstattungsfähiger Kontobetrag (Buchungen ohneDoNotRefundsowie der abgeglichene Teil von Buchungen mitDoNotRefund) abzüglichOpenOrders.OpenToMatch: noch nicht abgeglichener Betrag.IsMatched: Abgleichkennzeichen, abgeleitet aus den offenen Abgleichsummen je Währung.CurrencyId: Währung der Werte.
- Zurückgegeben werden nur Kunden mit
SuggestedRefund > 0undSuggestedRefundzwischenAmountFromundAmountTo(inklusive). IstShopIdangegeben, nur Kunden dieses Shops (Customers.CustomerOf); istIsAccountMatchedangegeben, nur Kunden mit passendemIsMatched-Wert.
Eine Sortierung ist nicht definiert; Paging gibt es nicht.
Hinweise
- Nur lesend; alle Tabellen werden mit
NOLOCKgelesen, Werte können daher nicht festgeschriebene Daten enthalten. - Das Verhalten hängt von den Einstellungen
DoNOTChargeShipCostOnSecondDelivery(ob Versandkosten bei bereits teilweise berechneten Aufträgen zu den offenen Aufträgen addiert werden),MultiCurrencyEnabledundHomeCurrencyab. - Bei
MultiCurrencyEnabled = 1und Buchungen bzw. offenen Aufträgen eines Kunden in mehreren Währungen werden die Beträge mit dem Wechselkurs des aktuellen Tages (pixi.ExchRate) in die Basiswährung des Shops umgerechnet. Fehlt ein Kurs für heute, fallen die Beträge dieser Währung aus den Summen heraus. Ohne Mehrwährung istCurrencyIddie Hauswährung. - Die Berechnung läuft über alle Kunden mit positivem Kontosaldo, bevor die Filter greifen; der Aufruf kann daher bei großen Datenbanken auch mit einschränkendem
ShopIdaufwendig sein.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
ShopId
|
varchar(3) string |
NULL |
Shop der Kunden ( Beispiel: |
AmountFrom
|
money decimal |
0 |
Mindestbetrag des Rückerstattungsvorschlags (inklusive). Beispiel: |
AmountTo
|
money decimal |
1000000 |
Höchstbetrag des Rückerstattungsvorschlags (inklusive). Beispiel: |
IsAccountMatched
|
bit boolean |
NULL |
Filter auf das Abgleichkennzeichen Erlaubte Werte
Beispiel: |
Antwort
Result-Set 1 · Immer (kann leer sein).
Eine Zeile je Kunde mit positivem Rückerstattungsvorschlag, der den Filtern entspricht.
| Spalte | Typ | Beschreibung |
|---|---|---|
CustKey
|
int |
Kundenschlüssel. ex |
ShopId
Kann leer sein |
varchar(3) string |
Shop, zu dem der Kunde gehört ( |
IsMatched
Kann leer sein |
bit boolean |
Abgleichkennzeichen des Kundenkontos, abgeleitet aus den offenen Abgleichsummen je Währung. |
SuggestedRefund
|
money decimal |
Vorgeschlagener Rückerstattungsbetrag: erstattungsfähiger Kontobetrag abzüglich offener Aufträge. |
FinancialBalance
Kann leer sein |
money decimal |
Gesamtsaldo des Kundenkontos. |
OpenOrders
Kann leer sein |
money decimal |
Wert offener, noch nicht berechneter Aufträge (inkl. Versandkosten, abzüglich nicht eingelöster Gutscheine). |
OpenToMatch
Kann leer sein |
money decimal |
Noch nicht abgeglichener Betrag des Kundenkontos. |
CurrencyId
Kann leer sein |
int |
Währung der Beträge (Shop-Basiswährung, Kontowährung oder Hauswährung je nach Mehrwährungseinstellung). |
Beispielantwort
<SqlRowSet1>
<row>
<CustKey>10452</CustKey>
<ShopId>SHP</ShopId>
<IsMatched>true</IsMatched>
<SuggestedRefund>49.9000</SuggestedRefund>
<FinancialBalance>49.9000</FinancialBalance>
<OpenOrders>0.0000</OpenOrders>
<OpenToMatch>49.9000</OpenToMatch>
<CurrencyId>1</CurrencyId>
</row>
<row>
<CustKey>10988</CustKey>
<ShopId>SHP</ShopId>
<IsMatched>false</IsMatched>
<SuggestedRefund>15.0000</SuggestedRefund>
<FinancialBalance>40.0000</FinancialBalance>
<OpenOrders>25.0000</OpenOrders>
<OpenToMatch>40.0000</OpenToMatch>
<CurrencyId>1</CurrencyId>
</row>
</SqlRowSet1>
Beispiele
POST https://apigateway.descartes.com/tms/pixi/
Content-Type: text/xml; charset=utf-8
Authorization: Basic BASE64(USERNAME:PASSWORD)
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://apigateway.descartes.com/tms/pixi/">
<SOAP-ENV:Body>
<ns1:pixiGetCustomersToRefund>
<!-- <ShopId>SHP</ShopId> -->
<!-- <AmountFrom>10.00</AmountFrom> -->
<!-- <AmountTo>500.00</AmountTo> -->
<!-- <IsAccountMatched>1</IsAccountMatched> -->
</ns1:pixiGetCustomersToRefund>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
curl -X POST 'https://apigateway.descartes.com/tms/pixi/' \
--user 'USERNAME:PASSWORD' \
--header 'Content-Type: text/xml; charset=utf-8' \
--data-binary @- <<'XML'
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://apigateway.descartes.com/tms/pixi/">
<SOAP-ENV:Body>
<ns1:pixiGetCustomersToRefund>
<!-- <ShopId>SHP</ShopId> -->
<!-- <AmountFrom>10.00</AmountFrom> -->
<!-- <AmountTo>500.00</AmountTo> -->
<!-- <IsAccountMatched>1</IsAccountMatched> -->
</ns1:pixiGetCustomersToRefund>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
XML
<?php
$soapClient = new SoapClient(null, [
'login' => 'USERNAME',
'password' => 'PASSWORD',
'location' => 'https://apigateway.descartes.com/tms/pixi/',
'uri' => 'https://apigateway.descartes.com/tms/pixi/',
]);
$arguments = [
// 'ShopId' => 'SHP',
// 'AmountFrom' => '10.00',
// 'AmountTo' => '500.00',
// 'IsAccountMatched' => '1',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetCustomersToRefund', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetCustomersToRefund