FROM CACHE - de_header
Gelöst

Rechnung und Erstattung

PRINT21
Forscher
81 5 36

Hallo Leute,

es wird technisch und zwar folgendes Problem oder ich bin einfach zu doof. Wenn ich einem Kunden den Kaufbetrag erstatte, egal ob ich erst storniere und dann erstatte oder erst erstatte und später storniere, dann stimmen meine automatisch generierten Rechnungen nicht mehr. Hat vor einiger Zeit noch funktioniert, warum dass jetzt nicht mehr geht keine Ahnung.

Wenn ich also erstatte, dann steht die Gesamtsumme der einzelnen Positionen auf der Rechnung, alles andere wird jedoch auf 0 Euro gesetzt bis auf die Versandkosten. Heißt also ich habe eine Rechnung mit 0 Euro, was natürlich dem Steuerberater und dem FA nicht gefällt.

Früher blieb die Rechnung unberührt und es wurde separat ein Refund Beleg erzeugt, so wie es richtig wäre. Den Refund Beleg erzeugt es auch noch, nur die Rechnung ist unbrauchbar. Mache ich da irgendwas an irgendeiner Stelle falsch??? Anbei ein Screenshot, so sieht es nach einer Erstattung oder Stornierung aus...

rechnung.JPG

Gruß Steffen

VG Steffen
Print21.de | Mega-Print.de
1 AKZEPTIERTE LÖSUNG
Gabe
Shopify Staff
16357 2587 3853

Erfolg.

Oder hier den Erstattungscode so geändert, dass der Gesamtbetrag der Bestellung angezeigt wird, ca. ab Zeile 556 (einfach die relevanten Codezeilen rüberkopieren und testen):

Spoiler
 

<!-- REFUND / CREDIT NOTE -->

{% assign SETTING_shop_logo = "" %}

{% assign SETTING_shop_logo_width = 240 %}

{% assign SETTING_date_format = "%b %e, %Y" %}

{% assign SETTING_product_image_size = 58 %}

{% assign SETTING_show_order_number_barcode = true %}

{% assign SETTING_show_product_barcodes = false %}

{% assign SETTING_show_refund_note = false %}

 

{% comment %}

TRANSLATE TEXT

You can translate or change wording in the document by updating

the words below. Only change the words between the quotes "".

{% endcomment %}

 

{% assign TEXT_refund_for_order = "Refund for Order" %}

{% assign TEXT_refund_from = "Refund from" %}

{% assign TEXT_customer = "Customer" %}

{% assign TEXT_tel = "Tel." %}

{% assign TEXT_no_customer_information = "No customer information" %}

{% assign TEXT_refund_method = "Refund method" %}

{% assign TEXT_items = "Items" %}

{% assign TEXT_price = "Price" %}

{% assign TEXT_tax = "Tax" %}

{% assign TEXT_qty = "Qty" %}

{% assign TEXT_item_total = "Item total" %}

{% assign TEXT_sku = "SKU: " %}

{% assign TEXT_no_items_refunded = "No items in this refund" %}

{% assign TEXT_notes = "Notes" %}

{% assign TEXT_subtotal = "Subtotal" %}

 

{% assign TEXT_shipping = "Shipping" %}

{% assign TEXT_vat = "VAT" %}

{% assign TEXT_tax_included = "(Included)" %}

{% assign TEXT_total_refund = "Total refund" %}

 

{% if SETTING_show_product_barcodes == true or SETTING_show_order_number_barcode == true %}

{% include "barcodes" %}

{% endif %}

 

<div class="template-139216">

<div class="header">

<div class="shop-title to-uppercase">

{% if SETTING_shop_logo != blank %}

{{ SETTING_shop_logo | img_tag: '', 'shop-logo'}}

{% else %}

{{ shop.name }}

{% endif %}

</div>

<div class="order-title text-align-right">

<p>

{% if SETTING_show_order_number_barcode == true %}

<img class="barcode" data-barcode="{{ name }}"/><br>

{% endif %}

{{ TEXT_refund_for_order }} {{ name }}

</p>

<p>

{{ latest_refund.created_at | date: SETTING_date_format }}

</p>

</div>

</div>

 

<div class="customer-addresses">

<div class="shipping-address">

<p class="subtitle-bold to-uppercase">

{{ TEXT_refund_from }}

</p>

<p class="address-detail">

{{ shop.name }}

<br>{{ shop.address1 }}

<br>{{ shop.city }}, {{ shop.province_code }} {{ shop.zip }}

<br>{{ shop.country }}

</p>

</div>

<div class="billing-address">

<p class="subtitle-bold to-uppercase">

{{ TEXT_customer }}

</p>

<p class="address-detail">

{% if billing_address != blank %}

{{ billing_address.name }}

{% if billing_address.company != blank %}

<br>

{{ billing_address.company }}

{% endif %}

<br>

{{ billing_address.address1 }}

{% if billing_address.address2 != blank %}

<br>

{{ billing_address.address2 }}

{% endif %}

{% if billing_address.city_province_zip != blank %}

 

<br>

{{ billing_address.city_province_zip }}

{% endif %}

<br>

{{ billing_address.country }}

{% elsif customer != blank %}

{{ customer.name }}

{% if customer.email != blank %}

<br>

{{ customer.email }}

{% endif %}

{% if customer.phone != blank %}

<br>

{{ customer.phone }}

{% endif %}

{% else %}

{{ TEXT_no_customer_information }}

{% endif %}

</p>

</div>

<div class="order-details">

{% if latest_refund.payment_method != blank %}

<p class="subtitle-bold to-uppercase">

{{ TEXT_refund_method }}

</p>

<p class="order-detail">

{{ latest_refund.payment_method }}

</p>

{% endif %}

</div>

 

</div>

 

<hr>

 

<div class="order-table">

<div class="order-table-row order-table-header">

<div class="order-table-cell item-image-and-description subtitle-bold to-uppercase">

{{ TEXT_items }}

</div>

<div class="order-table-cell item-price text-align-right subtitle-bold to-uppercase">

{{ TEXT_price }}

</div>

{% if show_line_item_taxes == true %}

<div class="order-table-cell item-tax text-align-right subtitle-bold to-uppercase">

{{ TEXT_tax }}

</div>

{% endif %}

<div class="order-table-cell item-quantity text-align-right subtitle-bold to-uppercase">

{{ TEXT_qty }}

</div>

<div class="order-table-cell item-line-price text-align-right subtitle-bold to-uppercase">

{{ TEXT_item_total }}

</div>

</div>

 

{% comment %}

These variables make sure your images print at high quality.

{% endcomment %}

{% assign resolution_adjusted_size = SETTING_product_image_size | times: 300 | divided_by: 72 | ceil %}

{% capture effective_image_dimensions %}{{ resolution_adjusted_size }}x{{

 

resolution_adjusted_size }}{% endcapture %}

 

<table>

<tbody>

{% for refund_item in latest_refund.refund_line_items %}

<tr>

<td>

<div class="order-table-row order-table-body">

<div class="order-table-cell item-image">

{% if SETTING_product_image_size != 0 %}

<div class="aspect-ratio aspect-ratio-square" style="width: {{ SETTING_product_image_size }}px; height: {{ SETTING_product_image_size }}px;">

{% if refund_item.line_item.image != blank %}

{{ refund_item.line_item.image | img_url: effective_image_dimensions | img_tag: '', 'aspect-ratio__content' }}

{% else %}

{{ '/product_image_placeholder.svg' | img_tag: '', 'aspect-ratio__content placeholder' }}

{% endif %}

</div>

{% endif %}

</div>

<div class="order-table-cell item-description">

<p>

<span class="item-description-line">

{{ refund_item.line_item.product_title }}

</span>

{% if refund_item.line_item.variant_title != blank %}

<span class="item-description-line">

{{ refund_item.line_item.variant_title }}

</span>

 

{% endif %}

{% if refund_item.line_item.sku != blank %}

<span class="item-description-line">

{{ TEXT_sku }}{{ refund_item.line_item.sku }}

</span>

{% endif %}

{% for p in refund_item.line_item.properties %}

{% assign p_internal = p.first | slice: 0 %}

{% unless p.first contains "builder_id" or p.first contains "builder_info" or p.first contains "master_builder" or p_internal == "_" or p.last == "" or p.last == blank %}

<span class="item-description-line">{{ p.first }}: {{ p.last }}</span>

{% endunless %}

{% endfor %}

{% if SETTING_show_product_barcodes == true and line_item.variant.barcode != blank %}

<img class="barcode" data-barcode="{{ line_item.variant.barcode }}">

{% endif %}

</p>

</div>

<div class="order-table-cell item-price text-align-right">

{{ refund_item.subtotal | divided_by: refund_item.quantity | money }}

</div>

{% if show_line_item_taxes == true %}

<div class="order-table-cell item-tax text-align-right">

{% if total_tax != 0.0 %}

{{ refund_item.total_tax | divided_by: refund_item.quantity | money }}

{% else %}

{{ 0.0 | money }}

{% endif %}

</div>

{% endif %}

 

<div class="order-table-cell item-quantity text-align-right">

{{ refund_item.quantity }}

</div>

<div class="order-table-cell item-line-price text-align-right">

{% if shop.taxes_included == true %}

{{ refund_item.subtotal | money }}

{% else %}

{{ refund_item.subtotal | plus: refund_item.total_tax | money }}

{% endif %}

</div>

</div>

</td>

</tr>

{% else %}

<tr>

<td>

<div class="order-table-row order-table-body">

<p>{{ TEXT_no_items_refunded }}</p>

</div>

</td>

</tr>

{% endfor %}

</tbody>

</table>

</div>

 

<hr>

 

 

 

 

<div class="notes-and-pricing">

<div class="notes">

{% if SETTING_show_refund_note == true and latest_refund.note != blank %}

<div class="notes-row">

<div class="notes-title subtitle-bold to-uppercase">

{{ TEXT_notes }}

</div>

<div class="notes-details">

{{ latest_refund.note }}

</div>

</div>

{% endif %}

</div>

<div class="pricing">

{% if latest_refund.refund_line_items != blank %}

<div class="pricing-row text-align-right">

<div class="pricing-title">

{{ TEXT_subtotal }}

</div>

<div class="pricing-details">

{{ latest_refund.subtotal | money }}

</div>

</div>

{% endif %}

{% for adjustment in latest_refund.order_adjustments %}

{% if adjustment.kind == "shipping_refund" %}

<div class="pricing-row text-align-right">

<div class="pricing-title">

{{ TEXT_shipping }}

</div>

 

<div class="pricing-details">

{{ adjustment.amount | plus: adjustment.total_tax | money }}

</div>

</div>

{% endif %}

{% endfor %}

{% if latest_refund.total_tax != 0.0 %}

<div class="pricing-row text-align-right">

<div class="pricing-title">

{{ TEXT_vat }} {% if shop.taxes_included == true %}{{ TEXT_tax_included }}{% endif %}

</div>

<div class="pricing-details">

{{ latest_refund.total_tax | money }}

</div>

</div>

{% endif %}

<div class="pricing-row text-align-right">

<div class="pricing-title subtitle-bold to-uppercase">

{{ TEXT_total_refund }}

</div>

<div class="pricing-details subtitle-bold to-uppercase">

{{ latest_refund.total | money }}

</div>

</div>

<!-- TSH -->

{% assign total = 0 %}

{% for item in line_items %}

{% assign total = total | plus: item.price %}

{% endfor %}

<div class="pricing-row text-align-right">

 

<div class="pricing-title subtitle-bold to-uppercase">

{{ "Original Items Price" }}

</div>

<div class="pricing-details subtitle-bold to-uppercase">

{{ total | money }}

</div>

</div>

<!-- TSH END -->

<hr>

</div>

</div>

<div class="footer">

<p>

<strong>

{{ shop.name }}

</strong>

<br>

{{ shop.address1 }}{% if shop.address2 != blank %}, {{ shop.address2 }}{% endif %}, {{ shop.city }}, {{ shop.province_code }}, {{ shop.zip }}, {{ shop.country }}

<br>

<a href="mailto:{{ shop.customer_email }}" target="_blank">{{ shop.customer_email }}</a>

<br>

<a href="https://{{ shop.domain }}" target="_blank">{{ shop.domain }}</a>

</p>

</div>

</div>

 

 

<style>

 

 

 

.template-139216 * {

font-family: "Open Sans", sans-serif !important;

font-size: 14px;

box-sizing: border-box;

font-weight: 300;

}

 

.template-139216 {

margin: auto;

padding: 10px 30px 0 30px;

min-height: 600px;

}

 

.template-139216 p {

margin: 0 0 7px 0;

}

 

.template-139216 a,

.template-139216 a:link,

.template-139216 a:visited {

color: #000;

font-weight: 300;

text-decoration: none;

}

 

.template-139216 .header {

width: 100%;

display: -webkit-box;

display: -webkit-flex;

display: flex;

 

flex-direction: row;

align-items: top;

margin-bottom: 30px;

}

 

.template-139216 .header p {

margin: 0

}

 

.template-139216 .shop-title {

-webkit-box-flex: 6;

-webkit-flex: 6;

flex: 6;

font-size: 30px;

font-weight: 400;

}

 

.template-139216 .shop-logo {

max-width: {{ SETTING_shop_logo_width }}px;

}

 

.template-139216 .order-title {

-webkit-box-flex: 4;

-webkit-flex: 4;

flex: 4;

}

 

.template-139216 .customer-addresses {

width: 100%;

display: -webkit-box;

 

display: -webkit-flex;

display: flex;

flex-direction: row;

align-items: top;

margin-bottom: 15px;

}

 

.template-139216 .shipping-address {

flex-grow: 1;

flex-basis: 0;

}

 

.template-139216 .billing-address {

flex-grow: 1;

flex-basis: 0;

}

 

.template-139216 .order-details {

text-align: right;

flex-grow: 1;

flex-basis: 0;

}

 

.template-139216 .address-detail,

.template-139216 .order-detail {

margin: 15px 0 0;

line-height: 1.5;

}

 

.template-139216 .subtitle-bold {

 

font-weight: bold;

margin: 0;

font-size: 13px;

}

 

.template-139216 .order-detail + .subtitle-bold {

margin-top: 15px;

}

 

.template-139216 .to-uppercase {

text-transform: uppercase;

}

 

.template-139216 .text-align-right {

text-align: right;

}

 

.template-139216 .order-table {

display: block;

}

 

.template-139216 .order-table-row {

display: -webkit-box;

display: -webkit-flex;

display: flex;

flex-direction: row;

align-items: center;

margin: 15px 0;

page-break-inside: avoid;

}

 

 

.template-139216 .order-table-header {

margin-bottom: 0;

}

 

.template-139216 .order-table-header .item-image-and-description {

-webkit-box-flex: 8;

-webkit-flex: 8;

flex: 8;

margin-right: 30px;

}

 

.template-139216 .order-table-header .order-table-cell {

white-space: nowrap;

}

 

 

.template-139216 .order-table-cell {

-webkit-box-flex: 2;

-webkit-flex: 2;

flex: 2;

margin: 0;

}

 

.template-139216 .item-image {

-webkit-box-flex: 1;

-webkit-flex: 1;

flex: 1;

margin-right: 15px;

min-width: {{ SETTING_product_image_size }}px;

 

}

 

.template-139216 .item-description {

-webkit-box-flex: 7;

-webkit-flex: 7;

flex: 7;

}

 

.template-139216 .item-description-line {

display: block;

}

 

.template-139216 .item-description p {

margin: 0;

line-height: 1.5;

}

 

.template-139216 .item-line-price {

-webkit-box-flex: 3;

-webkit-flex: 3;

flex: 3;

}

 

.template-139216 .missing-line-items-text {

margin: 15px 0;

padding: 0 7px;

}

 

.template-139216 .notes-and-pricing {

width: 100%;

 

display: -webkit-box;

display: -webkit-flex;

display: flex;

flex-direction: row;

align-items: top;

margin-bottom: 15px;

}

 

.template-139216 .notes {

flex-grow: 2;

flex-basis: 0;

}

 

.template-139216 .notes-row {

display: -webkit-box;

display: -webkit-flex;

display: flex;

flex-direction: row;

align-items: top;

margin: 15px 0;

page-break-inside: avoid;

}

 

.template-139216 .notes-title {

-webkit-box-flex: 1;

-webkit-flex: 1;

flex: 1;

}

 

.template-139216 .notes-details {

 

-webkit-box-flex: 3;

-webkit-flex: 3;

flex: 3;

margin-right: 30px;

}

 

.template-139216 .footer {

margin-top: 30px;

text-align: center;

line-height: 1.5;

}

 

.template-139216 .footer p {

margin: 0;

margin-bottom: 15px;

}

 

.template-139216 hr {

height: 2px;

border-bottom: 2px solid #e1e1e1;

margin: 0;

}

 

.template-139216 .aspect-ratio {

position: relative;

display: block;

background: #fafbfc;

padding: 0;

}

 

 

.template-139216 .aspect-ratio::before {

z-index: 1;

content: "";

position: absolute;

top: 0;

right: 0;

bottom: 0;

left: 0;

border: 1px solid rgba(195,207,216,0.3);

}

 

.template-139216 .aspect-ratio--square {

width: 100%;

padding-bottom: 100%;

}

 

.template-139216 .aspect-ratio__content {

position: absolute;

max-width: 100%;

max-height: 100%;

display: block;

top: 0;

right: 0;

bottom: 0;

left: 0;

margin: auto;

}

 

 

.template-139216 .pricing {

 

flex-grow: 1;

flex-basis: 0;

}

 

.template-139216 .pricing-row {

display: -webkit-box;

display: -webkit-flex;

display: flex;

flex-direction: row;

align-items: center;

margin: 15px 0;

page-break-inside: avoid;

}

 

.template-139216 .pricing-title {

-webkit-box-flex: 1;

-webkit-flex: 1;

flex: 1;

}

 

.template-139216 .pricing-details {

-webkit-box-flex: 1;

-webkit-flex: 1;

flex: 1;

}

 

</style>

Gabe | Social Care @ Shopify
 - War meine Antwort hilfreich? Klicke Like um es mich wissen zu lassen! 
 - Wurde deine Frage beantwortet? Markiere es als Akzeptierte Lösung 
 - Um mehr zu erfahren, besuche das Shopify Help Center oder den Shopify Blog

Lösung in ursprünglichem Beitrag anzeigen

14 ANTWORTEN 14