Initial xentral_oss_20.3.c9ffacf

This commit is contained in:
Alex
2021-05-21 08:49:41 +02:00
parent 5406e4a551
commit 34e5ac43d9
18884 changed files with 2109867 additions and 0 deletions
@@ -0,0 +1,35 @@
<?php
declare(strict_types=1);
namespace Xentral\Modules\Onlineshop\Data;
class ShopConnectorOrderStatusUpdateResponse implements ShopConnectorResponseInterface
{
/** @var bool $success */
protected $success;
/** @var string $message */
protected $message;
public function __construct(bool $success, string $message)
{
$this->success = $success;
$this->message = $message;
}
/**
* @return bool
*/
public function isSuccessful(): bool
{
return $this->success;
}
/**
* @return string
*/
public function getMessage(): string
{
return $this->message;
}
}
@@ -0,0 +1,18 @@
<?php
declare(strict_types=1);
namespace Xentral\Modules\Onlineshop\Data;
interface ShopConnectorResponseInterface
{
/**
* @return bool
*/
public function isSuccessful(): bool;
/**
* @return string
*/
public function getMessage(): string;
}
@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?><xml>
{*START PREPARING*}
{assign var=orderData value=$cart->order}
{*END PREPARING*}
{*START FILLING THE CART*}
<auftrag><![CDATA[{$orderData->id}]]></auftrag>
<onlinebestellnummer><![CDATA[{$orderData->id}]]></onlinebestellnummer>
<zahlungsweise><![CDATA[{$orderData->paymentType->module}]]></zahlungsweise>
<bestelldatum><![CDATA[{$orderData->purchaseDate|truncate:10:""}]]></bestelldatum>
<email><![CDATA[{$orderData->customer->email}]]></email>
<lieferung><![CDATA[{$orderData->shippingType->module}]]></lieferung>
<waehrung><![CDATA[{$orderData->currencyCode}]]></waehrung>
{foreach key=detailKey item=detail from=$orderData->totals}
{if $detail->class == "ot_total"}
<gesamtsumme><![CDATA[{$detail->value}]]></gesamtsumme>
{/if}
{if $detail->class == "ot_shipping"}
<versandkostenbrutto><![CDATA[{$detail->value}]]></versandkostenbrutto>
{/if}
{if $detail->class == "ot_discount"}
<rabattbrutto><![CDATA[{$detail->value}]]></rabattbrutto>
{/if}
{/foreach}
<transaktionsnummer><![CDATA[{$orderData->transactionId}]]></transaktionsnummer>
{*ADDRESS LOGIC*}
<anrede>herr</anrede>
{if $orderData->addresses->billing->gender == 'f'}
<anrede>frau</anrede>
{/if}
<name><![CDATA[{$orderData->addresses->billing->firstname} {$orderData->addresses->billing->lastname}]]></name>
{if $orderData->addresses->billing->company != ""}
<anrede>firma</anrede>
<name><![CDATA[{$orderData->addresses->billing->company}]]></name>
<ansprechpartner><![CDATA[{$orderData->addresses->billing->firstname} {$orderData->addresses->billing->lastname}]]></ansprechpartner>
{/if}
<strasse><![CDATA[{$orderData->addresses->billing->street}]]></strasse>
<plz><![CDATA[{$orderData->addresses->billing->postcode}]]></plz>
<ort><![CDATA[{$orderData->addresses->billing->city}]]></ort>
<ustid><![CDATA[{$orderData->customer->vatId}]]></ustid>
<land><![CDATA[{$orderData->country->iso2}]]></land>
{if $orderData->addresses->billing->firstname != $orderData->addresses->delivery->firstname || $orderData->addresses->billing->street != $orderData->addresses->delivery->street || $orderData->addresses->billing->city !=$orderData->addresses->delivery->city}
<lieferadresse_name><![CDATA[{$orderData->addresses->delivery->firstname} {$orderData->addresses->delivery->lastname}]]></lieferadresse_name>
{if $orderData->addresses->delivery->company != ""}
<lieferadresse_name><![CDATA[{$orderData->addresses->delivery->company}]]></lieferadresse_name>
<lieferadresse_ansprechpartner><![CDATA[{$orderData->addresses->delivery->firstname} {$orderData->addresses->delivery->lastname}]]></lieferadresse_ansprechpartner>
{/if}
<lieferadresse_strasse><![CDATA[{$orderData->addresses->delivery->street}]]></lieferadresse_strasse>
<lieferadresse_plz><![CDATA[{$orderData->addresses->delivery->postcode}]]></lieferadresse_plz>
<lieferadresse_ort><![CDATA[{$orderData->addresses->delivery->city}]]></lieferadresse_ort>
<lieferadresse_ustid><![CDATA[{$orderData->addresses->delivery->vatId}]]></lieferadresse_ustid>
<lieferadresse_land><![CDATA[{$orderData->deliveryCountry->iso2}]]></lieferadresse_land>
{/if}
{*ITEM LOGIC*}
<articlelist>
{foreach key=lineItemKey item=detail from=$orderData->items}
<{$lineItemKey}>
<articleid><![CDATA[{$detail->model}]]></articleid>
<name><![CDATA[{$detail->name}]]></name>
<quantity><![CDATA[{$detail->quantity}]]></quantity>
<price><![CDATA[{$detail->price}]]></price>
<steuersatz><![CDATA[{$detail->tax}]]></steuersatz>
</{$lineItemKey}>
{/foreach}
</articlelist>
</xml>
@@ -0,0 +1,106 @@
<?xml version="1.0" encoding="UTF-8"?><xml>
{*START PREPARING*}
{assign var=orderData value=$cart->orderData}
{assign var=transactionNumber1 value=$orderData->token}
{assign var=transactionNumber2 value=$orderData->transactions->token}
{assign var=timeStamp value=$orderData->created_at|truncate:20:" "}
{*PREPARE BILLING ADDRESS*}
{assign var=billingAddressFirstName value=$orderData->billing_address->first_name}
{assign var=billingAddressLastName value=$orderData->billing_address->last_name}
{assign var=billingAddressName value="$billingAddressFirstName $billingAddressLastName"}
{assign var=billingAddress1 value=$orderData->billing_address->address1}
{assign var=billingAddress2 value=$orderData->billing_address->address2}
{if $billingAddress2}
{assign var=billingAddress value="$billingAddress1 $billingAddress2"}
{else}
{assign var=billingAddress value="$billingAddress1"}
{/if}
{*PREPARE SHIPPING ADDRESS*}
{assign var=shippingAddressFirstName value=$orderData->shipping_address->first_name}
{assign var=shippingAddressLastName value=$orderData->shipping_address->last_name}
{assign var=shippingAddressName value="$shippingAddressFirstName $shippingAddressLastName"}
{assign var=shippingAddress1 value=$orderData->shipping_address->address1}
{assign var=shippingAddress2 value=$orderData->shipping_address->address2}
{if $shippingAddress2 != ""}
{assign var=shippingAddress value="$shippingAddress1 $shippingAddress2"}
{else}
{assign var=shippingAddress value="$shippingAddress1"}
{/if}
{*END PREPARING*}
{*START FILLING THE CART*}
<auftrag><![CDATA[{$orderData->id}]]></auftrag>
<onlinebestellnummer><![CDATA[{$orderData->order_number}]]></onlinebestellnummer>
{if $transactionNumber2 != ""}
<transaktionsnummer><![CDATA[{$transactionNumber2}]]></transaktionsnummer>
{else}
<transaktionsnummer><![CDATA[{$transactionNumber1}]]></transaktionsnummer>
{/if}
<gesamtsumme><![CDATA[{$orderData->total_price}]]></gesamtsumme>
<zahlungsweise><![CDATA[{$orderData->gateway}]]></zahlungsweise>
<waehrung><![CDATA[{$orderData->currency}]]></waehrung>
<bestelldatum><![CDATA[{$timeStamp|truncate:10:""}]]></bestelldatum>
<zeitstempel><![CDATA[{$timeStamp|replace:"T":" "}]]></zeitstempel>
{foreach key=key item=item from=$orderData->shipping_lines}
<versandkostenbrutto><![CDATA[{$item->price}]]></versandkostenbrutto>
{/foreach}
{foreach key=noteKey item=note from=$orderData->note_attributes}
{if $note->name == "vat_id"}
<ustid>$note->value}]]></ustid>
{/if}
{/foreach}
{if $orderData->taxes_included == 1}
<rabattbrutto><![CDATA[{$orderData->total_discounts}]]></rabattbrutto>
{else}
<rabattnetto><![CDATA[{$orderData->total_discounts}]]></rabattnetto>
{/if}
{*ADDRESS LOGIC*}
<anrede>herr</anrede>
{if $orderData->billing_address->company != ""}
<anrede>firma</anrede>
<name><![CDATA[{$orderData->billing_address->company}]]></name>
<ansprechpartner><![CDATA[{$billingAddressName}]]></ansprechpartner>
{else}
<name><![CDATA[{$billingAddressName}]]></name>
{/if}
<strasse><![CDATA[{$billingAddress}]]></strasse>
<plz><![CDATA[{$orderData->billing_address->zip}]]></plz>
<ort><![CDATA[{$orderData->billing_address->city}]]></ort>
<land><![CDATA[{$orderData->billing_address->country_code}]]></land>
<email><![CDATA[{$orderData->contact_email}]]></email>
<telefon><![CDATA[{$orderData->billing_address->phone}]]></telefon>
{if $billingAddressName != $shippingAddressName || $billingAddress != $shippingAddress}
<abweichendelieferadresse>1</abweichendelieferadresse>
{if $orderData->shipping_address->company != ""}
<lieferadresse_name><![CDATA[{$orderData->shipping_address->company}]]></lieferadresse_name>
<lieferadresse_ansprechpartner><![CDATA[{$shippingAddressName}]]></lieferadresse_ansprechpartner>
{else}
<lieferadresse_name><![CDATA[{$shippingAddressName}]]></lieferadresse_name>
{/if}
<lieferadresse_strasse><![CDATA[{$shippingAddress}]]></lieferadresse_strasse>
<lieferadresse_plz><![CDATA[{$orderData->shipping_address->zip}]]></lieferadresse_plz>
<lieferadresse_ort><![CDATA[{$orderData->shipping_address->city}]]></lieferadresse_ort>
<lieferadresse_land><![CDATA[{$orderData->shipping_address->country_code}]]></lieferadresse_land>
<telefon><![CDATA[{$orderData->shipping_address->phone}]]></telefon>
{/if}
{*ITEM LOGIC*}
<articlelist>
{foreach key=lineItemKey item=lineItem from=$orderData->line_items}
<{$lineItemKey}>
<articleid><![CDATA[{$lineItem->sku}]]></articleid>
<fremdnummer><![CDATA[{$lineItem->variant_id}]]></fremdnummer>
<name><![CDATA[{$lineItem->name}]]></name>
<quantity><![CDATA[{$lineItem->quantity}]]></quantity>
<price><![CDATA[{$lineItem->price}]]></price>
{foreach key=taxKey item=taxItem from=$lineItem->tax_lines}
<steuersatz><![CDATA[{$taxItem->rate * 100}]]></steuersatz>
{/foreach}
</{$lineItemKey}>
{/foreach}
</articlelist>
</xml>
@@ -0,0 +1,90 @@
<?xml version="1.0" encoding="UTF-8"?><xml>
{*START PREPARING*}
{assign var=orderData value=$cart->order}
{*PREPARE ADDRESS*}
{assign var=billingAddressId value=$orderData->attributes->billingAddressId}
{*END PREPARING*}
{*START FILLING THE CART*}
<auftrag><![CDATA[{$orderData->id}]]></auftrag>
<onlinebestellnummer><![CDATA[{$orderData->attributes->orderNumber}]]></onlinebestellnummer>
<gesamtsumme><![CDATA[{$orderData->attributes->amountTotal}]]></gesamtsumme>
<zahlungsweise><![CDATA[{$orderData->paymentMethod->data->attributes->name}]]></zahlungsweise>
<bestelldatum><![CDATA[{$orderData->attributes->orderDate|truncate:10:""}]]></bestelldatum>
<versandkostenbrutto><![CDATA[{$orderData->attributes->shippingTotal}]]></versandkostenbrutto>
{foreach key=customerKey item=customer from=$orderData->customer->data}
<email><![CDATA[{$customer->attributes->email}]]></email>
{/foreach}
<lieferung></lieferung>
{foreach key=shippingKey item=shipping from=$orderData->shippingMethod->data}
<lieferung><![CDATA[{$shipping->attributes->name}]]></lieferung>
{/foreach}
<transaktionsnummer></transaktionsnummer>
{foreach key=addressKey item=address from=$orderData->transactions->data}
<transaktionsnummer><![CDATA[{$orderData->transactionId}]]></transaktionsnummer>
{/foreach}
{*ADDRESS LOGIC*}
<anrede>herr</anrede>
{foreach key=salutationKey item=salutation from=$orderData->addresses->included}
{if $salutation->type == "salutation"}
{if $salutation->attributes->salutationKey != 'mr'}
<anrede>frau</anrede>
{/if}
{/if}
{/foreach}
{foreach key=addressKey item=address from=$orderData->addresses->data}
{if $address->id == $billingAddressId}
{if $address->attributes->company != ""}
<anrede>firma</anrede>
<name><![CDATA[{$address->attributes->company}]]></name>
<ansprechpartner><![CDATA[{$address->attributes->firstName} {$address->attributes->lastName}]]></ansprechpartner>
{else}
<name><![CDATA[{$address->attributes->firstName} {$address->attributes->lastName}]]></name>
{/if}
<strasse><![CDATA[{$address->attributes->street}]]></strasse>
<plz><![CDATA[{$address->attributes->zipcode}]]></plz>
<ort><![CDATA[{$address->attributes->city}]]></ort>
<ustid><![CDATA[{$address->attributes->vatId}]]></ustid>
{foreach key=countryKey item=country from=$orderData->addresses->included}
{if $country->id == $address->attributes->countryId}
<land><![CDATA[{$country->attributes->iso}]]></land>
{/if}
{/foreach}
{else}
{if $address->attributes->company != ""}
<lieferadresse_name><![CDATA[{$address->attributes->company}]]></lieferadresse_name>
<lieferadresse_ansprechpartner><![CDATA[{$address->attributes->firstName} {$address->attributes->lastName}]]></lieferadresse_ansprechpartner>
{else}
<lieferadresse_name><![CDATA[{$address->attributes->firstName} {$address->attributes->lastName}]]></lieferadresse_name>
{/if}
<lieferadresse_strasse><![CDATA[{$address->attributes->street}]]></lieferadresse_strasse>
<lieferadresse_plz><![CDATA[{$address->attributes->zipcode}]]></lieferadresse_plz>
<lieferadresse_ort><![CDATA[{$address->attributes->city}]]></lieferadresse_ort>
<lieferadresse_ustid><![CDATA[{$address->attributes->vatId}]]></lieferadresse_ustid>
{foreach key=countryKey item=country from=$orderData->addresses->included}
{if $country->id == $address->attributes->countryId}
<lieferadresse_land><![CDATA[{$country->attributes->iso}]]></lieferadresse_land>
{/if}
{/foreach}
{/if}
{/foreach}
{*ITEM LOGIC*}
<articlelist>
{foreach key=lineItemKey item=lineItem from=$orderData->lineItems->data}
<{$lineItemKey}>
<articleid><![CDATA[{$lineItem->attributes->payload->productNumber}]]></articleid>
<name><![CDATA[{$lineItem->attributes->label}]]></name>
<quantity><![CDATA[{$lineItem->attributes->quantity}]]></quantity>
<price><![CDATA[{$lineItem->attributes->price->unitPrice}]]></price>
{foreach key=taxKey item=tax from=$lineItem->attributes->price->calculatedTaxes}
<steuersatz><![CDATA[{$tax->taxRate}]]></steuersatz>
{/foreach}
</{$lineItemKey}>
{/foreach}
</articlelist>
</xml>
@@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8"?><xml>
{*START PREPARING*}
{assign var=orderData value=$cart->order}
{*END PREPARING*}
{*START FILLING THE CART*}
<auftrag><![CDATA[{$orderData->id}]]></auftrag>
<subshop><![CDATA[{$orderData->shopId}]]></subshop>
<onlinebestellnummer><![CDATA[{$orderData->number}]]></onlinebestellnummer>
<gesamtsumme><![CDATA[{$orderData->invoiceAmount}]]></gesamtsumme>
<zahlungsweise><![CDATA[{$orderData->payment->name}]]></zahlungsweise>
<bestelldatum><![CDATA[{$orderData->orderTime|truncate:10:""}]]></bestelldatum>
<versandkostenbrutto><![CDATA[{$orderData->invoiceShipping}]]></versandkostenbrutto>
<email><![CDATA[{$orderData->customer->email}]]></email>
<lieferung><![CDATA[{$orderData->dispatch->name}]]></lieferung>
<transaktionsnummer><![CDATA[{$orderData->transactionId}]]></transaktionsnummer>
<waehrung><![CDATA[{$orderData->currency}]]></waehrung>
{*ADDRESS LOGIC*}
<anrede>herr</anrede>
{if $orderData->billing->salutation == 'mrs'}
<anrede>frau</anrede>
{/if}
{if $orderData->billing->company != ""}
<anrede>firma</anrede>
<name><![CDATA[{$orderData->billing->company}]]></name>
<ansprechpartner><![CDATA[{$orderData->billing->firstName} {$orderData->billing->lastName}]]></ansprechpartner>
{else}
<name><![CDATA[{$orderData->billing->firstName} {$orderData->billing->lastName}]]></name>
{/if}
<strasse><![CDATA[{$orderData->billing->street}]]></strasse>
<plz><![CDATA[{$orderData->billing->zipCode}]]></plz>
<ort><![CDATA[{$orderData->billing->city}]]></ort>
<ustid><![CDATA[{$orderData->billing->vatId}]]></ustid>
<land><![CDATA[{$orderData->billing->country->iso}]]></land>
{if $orderData->shipping->firstName != $orderData->billing->firstName || $orderData->shipping->street != $orderData->billing->street || $orderData->shipping->country->iso != $orderData->billing->country->iso}
{if $address->attributes->company != ""}
<lieferadresse_name><![CDATA[{$orderData->shipping->company}]]></lieferadresse_name>
<lieferadresse_ansprechpartner><![CDATA[{$orderData->shipping->firstName} {$orderData->shipping->lastName}]]></lieferadresse_ansprechpartner>
{else}
<lieferadresse_name><![CDATA[{$orderData->shipping->firstName} {$orderData->shipping->lastName}]]></lieferadresse_name>
{/if}
<lieferadresse_strasse><![CDATA[{$orderData->shipping->street}]]></lieferadresse_strasse>
<lieferadresse_plz><![CDATA[{$orderData->shipping->zipCode}]]></lieferadresse_plz>
<lieferadresse_ort><![CDATA[{$orderData->shipping->city}]]></lieferadresse_ort>
<lieferadresse_ustid><![CDATA[{$orderData->shipping->vatId}]]></lieferadresse_ustid>
<lieferadresse_land><![CDATA[{$orderData->shipping->country->iso}]]></lieferadresse_land>
{/if}
{*ITEM LOGIC*}
<articlelist>
{foreach key=lineItemKey item=detail from=$orderData->details}
<{$lineItemKey}>
<articleid><![CDATA[{$detail->articleNumber}]]></articleid>
<name><![CDATA[{$detail->articleName}]]></name>
<quantity><![CDATA[{$detail->quantity}]]></quantity>
<price><![CDATA[{$detail->price}]]></price>
<steuersatz><![CDATA[{$detail->taxRate}]]></steuersatz>
</{$lineItemKey}>
{/foreach}
</articlelist>
</xml>
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 605 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 774 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 768 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 566 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 709 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 818 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 721 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 884 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 742 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 598 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 818 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 775 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 768 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 707 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 742 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 724 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 883 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 565 KiB

@@ -0,0 +1,129 @@
{namespace key='onlineshops'}
{block name="featuretable"}
{foreach from=$features key=arrayname item=data}
{if $arrayname eq "shop"}
<div id="tabs-1">
{elseif $arrayname eq "market"}
<div id="tabs-2">
{elseif $arrayname eq "misc"}
<div id="tabs-3">
{/if}
{foreach from=$data key=keytab item=tab}
<table class="onlineshopsfeatures">
{foreach from=$tab key=keyrow item=row}
{if $keyrow eq "tabheader"}
{foreach from=$row key=keycol item=col}
<th>{$col}</th>
{/foreach}
{else}
<tr>
{foreach from=$row key=keycol item=col}
{if $keycol eq "tabdescription"}
<td>{translate key='{keycol}'}{$col|default:$col}{/translate}</td>
{else}
<td>
{if $col['export'] eq "1" && $col['import'] eq "1"}
<img src="themes/new/images/unavailable.png" border="0"
alt="{translate key='not available'}{'nicht verfügbar'|default:'nicht verfügbar'}{/translate}"
title="{translate key='not available'}{'nicht verfügbar'|default:'nicht verfügbar'}{/translate}" />
{elseif $col['export'] eq "5"}
<img src="themes/new/images/not_in_shop.png" border="0"
alt="{translate key='not available in shop'}{'wird vom Shop nicht unterstützt'|default:'wird vom Shop nicht unterstützt'}{/translate}"
title="{translate key='not available in shop'}{'wird vom Shop nicht unterstützt'|default:'wird vom Shop nicht unterstützt'}{/translate}" />
{elseif ($col['export'] eq "2" || $col['export'] eq "3") && ($col['import'] eq "2" || $col['import'] eq "3")}
<img src="themes/new/images/matrix_ok.png" border="0"
alt="{translate key='available'}{'verfügbar'|default:'verfügbar'}{/translate}"
title="{translate key='available'}{'verfügbar'|default:'verfügbar'}{/translate}" />
{elseif ($col['export'] eq "2" || $col['export'] eq "3") && $col['import'] ne "2" && $col['import'] ne "3"}
<img src="themes/new/images/exportable.png" border="0"
alt="{translate key='can be exported'}{'kann exportiert werden'|default:'kann exportiert werden'}{/translate}"
title="{translate key='can be exported'}{'kann exportiert werden'|default:'kann exportiert werden'}{/translate}" />
{elseif $col['import'] eq "2" || $col['import'] eq "3"}
<img src="themes/new/images/importable.png" border="0"
alt="{translate key='can be imported'}{'kann importiert werden'|default:'kann importiert werden'}{/translate}"
title="{translate key='can be imported'}{'kann importiert werden'|default:'kann importiert werden'}{/translate}" />
{elseif $col['export'] eq "4" && $col['import'] eq "4"}
<img src="themes/new/images/unknown.png" border="0"
alt="{translate key='unknown'}{'unbekannt'|default:'unbekannt'}{/translate}"
title="{translate key='unknown'}{'unbekannt'|default:'unbekannt'}{/translate}" />
{else}
<img/>
{/if}
{if $col['export'] eq "2" || $col['import'] eq "2"}
<img src="themes/new/images/editable.png" border="0"
alt="{translate key='edtitable'}{'editierbar'|default:'editierbar'}{/translate}"
title="{translate key='edtitable'}{'editierbar'|default:'editierbar'}{/translate}" />
{else}
<img/>
{/if}
</td>
{/if}
{/foreach}
{/if}
</tr>
{/foreach}
</table>
{/foreach}
<fieldset>
<legend>{translate key='legend'}{'Legende'|default:'Legende'}{/translate}</legend>
<table class="onlineshopsfeatureslegend">
<tr>
<td>
<img src="themes/new/images/matrix_ok.png" border="0"
alt="{translate key='available'}{'Import und Export verfügbar'|default:'Import und Export verfügbar'}{/translate}"
title="{translate key='available'}{'Import und Export verfügbar'|default:'Import und Export verfügbar'}{/translate}" />
{translate key='available'}{'Import und Export verfügbar'|default:'Import und Export verfügbar'}{/translate}
</td>
<td>
<img src="themes/new/images/unavailable.png" border="0"
alt="{translate key='not available'}{'Nicht verfügbar'|default:'Nicht verfügbar'}{/translate}"
title="{translate key='not available'}{'Nicht verfügbar'|default:'Nicht verfügbar'}{/translate}" />
{translate key='not available'}{'Nicht verfügbar'|default:'Nicht verfügbar'}{/translate}
</td>
<td>
<img src="themes/new/images/exportable.png" border="0"
alt="{translate key='export available'}{'Export aus Xentral verfügbar'|default:'Export aus Xentral verfügbar'}{/translate}"
title="{translate key='export available'}{'Export aus Xentral verfügbar'|default:'Export aus Xentral verfügbar'}{/translate}" />
{translate key='export available'}{'Export aus Xentral verfügbar'|default:'Export aus Xentral verfügbar'}{/translate}
</td>
<td></td>
</tr>
<tr>
<td>
<img src="themes/new/images/editable.png" border="0"
alt="{translate key='toggleable'}{'Ein-/Ausschaltbar'|default:'Ein-/Ausschaltbar'}{/translate}"
title="{translate key='toggleable'}{'Ein-/Ausschaltbar'|default:'Ein-/Ausschaltbar'}{/translate}" />
{translate key='toggleable'}{'Ein-/Ausschaltbar'|default:'Ein-/Ausschaltbar'}{/translate}
</td>
<td>
<img src="themes/new/images/not_in_shop.png" border="0"
alt="{translate key='not available in shop'}{'Im Shop nicht verfügbar'|default:'Im Shop nicht verfügbar'}{/translate}"
title="{translate key='not available in shop'}{'Im Shop nicht verfügbar'|default:'Im Shop nicht verfügbar'}{/translate}" />
{translate key='not available in shop'}{'Im Shop nicht verfügbar'|default:'Im Shop nicht verfügbar'}{/translate}
</td>
<td>
<img src="themes/new/images/importable.png" border="0"
alt="{translate key='import available'}{'Import in Xentral verfügbar'|default:'Import in Xentral verfügbar'}{/translate}"
title="{translate key='import available'}{'Import in Xentral verfügbar'|default:'Import in Xentral verfügbar'}{/translate}" />
{translate key='import available'}{'Import in Xentral verfügbar'|default:'Import in Xentral verfügbar'}{/translate}
</td>
<td>
<img src="themes/new/images/unknown.png" border="0"
alt="{translate key='unknown'}{'Unbekannt'|default:'Unbekannt'}{/translate}"
title="{translate key='unknown'}{'Unbekannt'|default:'Unbekannt'}{/translate}" />
{translate key='unknown'}{'Unbekannt'|default:'Unbekannt'}{/translate}
</td>
</tr>
</table>
</fieldset>
</div>
{/foreach}
{/block}
@@ -0,0 +1,37 @@
table.onlineshopsfeatures {
width: 99%;
}
table.onlineshopsfeatures tr:nth-child(odd)
{
background-color: lightgrey;
}
table.onlineshopsfeatures th:not(:first-child) {
min-width: 80px;
}
table.onlineshopsfeatures th:first-child {
max-width: 200px;
min-width: 200px;
width: 200px;
}
table.onlineshopsfeatures {
margin-bottom: 2em;
}
table.onlineshopsfeatures tr td:first-child {
padding-left: .5em;
text-transform: capitalize;
}
table.onlineshopsfeatures tr td:not(:first-child) {
text-align: center;
}
table.onlineshopsfeatures img,
table.onlineshopsfeatureslegend img {
width: 16px;
margin-right:5px;
}
@@ -0,0 +1,45 @@
#smartyinput #textareasmartyincomming {
width: 100%;
}
#smartyinput #textareasmartyincomminginput,
#smartyinput #dataincommingpreview
{
width: 100%;
min-height: 30vh;
}
.mlmTreeContainerLeft {
width: 40%;
float: left;
}
.aciTree {
padding-left: 50px;
}
.mlmTreeContainerRight {
width: 59%;
float: right;
position: relative;
padding: 5px;
margin-top: 5px;
background-color: #f0f1f0;
min-height: 600px;
}
.mlmClear {
clear: both;
}
.mlmTreeSuche {
padding: 10px 10px 5px 10px;
}
.mlmintranet_minidetail_layer {
width: 100%;
}
.searched > div {
background-color: #E5F5D2;
}
@@ -0,0 +1,135 @@
var ShopimportAppNew = function ($) {
'use strict';
var me = {
selector: {
vueAppNewError: '#onlineshop-appnew-error',
vueAppNew: '#onlineshop-appnew',
vueAppNewJson: '#onlineshop-appnewjson'
},
initAppNewErrorVue: function () {
new Vue({
el: me.selector.vueAppNewError,
data: {
showAssistant: true,
pagination: true,
allowClose: true,
pages: [
{
type: 'defaultPage',
icon: 'password-icon',
headline: 'Request ungültig',
subHeadline: $(me.selector.vueAppNewError).data('errormsg'),
ctaButtons: [
{
title: 'OK',
action: 'close'
}]
}
]
}
});
},
initAppNewVue: function () {
new Vue({
el: me.selector.vueAppNew,
data: {
showAssistant: true,
pagination: true,
allowClose: true,
pages: [
{
type: 'form',
dataRequiredForSubmit: {
data: JSON.stringify($(me.selector.vueAppNew).data('appnewdata'))
},
submitType: 'submit',
submitUrl: 'index.php?module=onlineshops&action=appnew&cmd=createdata',
headline: $(me.selector.vueAppNew).data('heading'),
subHeadline: $(me.selector.vueAppNew).data('info'),
form:
[
{
id: 0,
name: 'create-shop',
inputs: [
{
type: 'select',
name: 'shopId',
label: 'Auswahl',
validation: true,
options: JSON.parse($(me.selector.vueAppNewJson).html())
}]
}]
,
ctaButtons: [
{
title: 'Weiter',
type: 'submit',
action: 'submit'
}]
}
]
}
});
},
init: function () {
if ($(me.selector.vueAppNewError).length) {
me.initAppNewErrorVue();
}
if ($(me.selector.vueAppNew).length) {
me.initAppNewVue();
}
if ($('#frmappnew').length === 0) {
return;
}
$('#data').on('paste', function (e) {
$.ajax({
type: 'POST',
dataType: 'json',
url: 'index.php?module=onlineshops&action=appnew&cmd=checkdata',
data: {
data: e.originalEvent.clipboardData.getData('text')
},
success: function (data) {
$('#msgwrapper').html(data.html);
},
error: function (data) {
if (typeof data.responseJSON !== 'undefined') {
$('#msgwrapper').html('<div class="error">' + data.responseJSON.error + '</div>');
}
}
});
});
$('#data').on('change', function () {
$.ajax({
type: 'POST',
dataType: 'json',
url: 'index.php?module=onlineshops&action=appnew&cmd=checkdata',
data: {
data: $(this).val()
},
success: function (data) {
$('#msgwrapper').html(data.html);
},
error: function (data) {
if (typeof data.responseJSON !== 'undefined') {
$('#msgwrapper').html('<div class="error">' + data.responseJSON.error + '</div>');
}
}
});
});
}
};
return {
init: me.init
};
}(jQuery);
$(document).ready(function () {
ShopimportAppNew.init();
});
@@ -0,0 +1,113 @@
var ShopCreate = function ($) {
'use strict';
var me = {
storage: {
vueElement: null
},
search:function (el)
{
var wert = $(el).val();
$.ajax({
url: 'index.php?module=onlineshops&action=create&cmd=suche',
type: 'POST',
dataType: 'json',
data: { val: wert}})
.done( function(data) {
if(typeof data != 'undefined' && data != null)
{
if(typeof data.ausblenden != 'undefined' && data.ausblenden != null)
{
var ausblenden = data.ausblenden.split(';');
$.each(ausblenden, function(k,v){
if(v != '')$('#'+v).hide();
});
}
if(typeof data.anzeigen != 'undefined' && data.anzeigen != null)
{
var anzeigen = data.anzeigen.split(';');
$.each(anzeigen, function(k,v){
if(v != '')$('#'+v).show();
});
}
}
});
},
init:function () {
$('#suche').on('keyup', function(){
me.search(this);
});
me.storage.vueElement = $('#onlineshop-create').clone();
$('.createbutton').on('click', function(){
$.ajax({
url: 'index.php?module=onlineshops&action=create&cmd=getassistant',
type: 'POST',
dataType: 'json',
data: {
shopmodule: $(this).data('module'),
}
}).done( function(data) {
if(typeof data.pages == 'undefined' && typeof data.location != 'undefined') {
window.location = data.location;
return;
}
if($('#onlineshop-create').length === 0) {
$('body').append(me.storage.vueElement);
}
new Vue({
el: '#onlineshop-create',
data: {
showAssistant: true,
pagination: true,
allowClose: true,
pages: data.pages
}
});
});
});
$('.autoOpenModule').first().each(function(){
$(".createbutton[data-module='"+ $(this).data('module') +"']").first().trigger('click');
$(this).remove();
});
$('.booster').first().each(function(){
$.ajax({
url: 'index.php?module=onlineshops&action=create&cmd=getbooster',
type: 'POST',
dataType: 'json',
data: {
shopmodule: $(this).data('module'),
}
}).done( function(data) {
if(typeof data.pages == 'undefined' && typeof data.location != 'undefined') {
window.location = data.location;
return;
}
if($('#onlineshop-create').length === 0) {
$('body').append(me.storage.vueElement);
}
new Vue({
el: '#onlineshop-booster',
data: {
showAssistant: true,
pagination: true,
allowClose: true,
pages: data.pages
}
});
});
//$(".createbutton[data-module='"+ $(this).data('module') +"']").first().trigger('click');
$(this).remove();
});
}
};
return {
init: me.init
};
}(jQuery);
$(document).ready(function () {
ShopCreate.init();
});
@@ -0,0 +1,273 @@
var ShopSettings = function ($) {
'use strict';
var me = {
storage: {
exampleTemplate: null,
treeApi: null,
lastTreeSearch: ''
},
openTransformationPopup: function () {
//$('#smartyinput').dialog('open');
$('#textareasmartyincomming').val($('#transform_cart').val());
$('#textareasmartyincomminginput').val($('#textareasmartyincomminginput').val());
},
loadCart: function (shopId) {
if ($('#cart').val() + '' === '') {
return;
}
$.ajax({
type: 'POST',
url: 'index.php?module=onlineshops&action=edit&cmd=loadCart',
data: {
shopid: shopId,
extid: $('#cart').val(),
format: $('#smartyinputtype').val(),
replacecart: $('#replacecart').prop('checked') ? 1 : 0,
content: $('#textareasmartyincomming').val()
},
success: function (data) {
$('#textareasmartyincomminginput').val(data.input);
$('#dataincommingobject').html(data.object);
$('#dataincommingpreview').val(data.preview);
}
});
},
initCategoryTree: function () {
$('#mlmTree').aciTree({
autoInit: false,
checkboxChain: false,
ajax: {
url: 'index.php?module=onlineshops&action=edit&cmd=loadTree&id=' + $('#mlmTree').data('id')
},
checkbox: true,
multiSelectable: true,
itemHook: function (parent, item, itemData, level) {
//console.log(itemData);
},
filterHook: function (item, search, regexp) {
if (search.length) {
var parent = this.parent(item);
if (parent.length) {
var label = this.getLabel(parent);
if (regexp.test(String(label))) {
this.setVisible(item);
return true;
}
this.setVisible(item);
}
if (regexp.test(String(this.getLabel(item)))) {
item.addClass('searched');
return true;
} else {
return false;
}
//return regexp.test(String(this.getLabel(item)));
} else {
return true;
}
}
});
me.storage.treeApi = $('#mlmTree').aciTree('api');
$('#search').val('');
me.storage.lastTreeSearch = '';
$('#search').on('keyup', function () {
if ($(this).val() === me.storage.lastTreeSearch) {
return;
}
$('.aciTreeLi').removeClass('searched');
me.storage.lastTreeSearch = $(this).val();
api.filter(null, {
search: $(this).val(),
callback: function () {
},
success: function (item, options) {
if (!options.first) {
//alert('No results found!');
}
}
});
});
$('#mlmTree').on('acitree', function (event, api, item, eventName, options) {
switch (eventName) {
case 'checked':
var ajaxData = {
id: api.getId(item),
shopId: $('#mlmTree').data('id'),
name: api.getLabel(item),
checked: true,
todo: 'check'
};
var dataid = api.getId(item);
var allChildren = api.children(null, true, true);
$(allChildren).each(function () {
if (api.getId($(this)) != dataid) {
api.uncheck($(this));
}
});
$('#category_root_id').val(dataid);
$.ajax({
url: 'index.php?module=onlineshops&action=edit&cmd=checkTreeNode',
data: ajaxData,
success: function (data) {
}
});
break;
case 'unchecked':
var ajaxData = {
id: api.getId(item),
shopId: $('#mlmTree').data('id'),
name: api.getLabel(item),
checked: false,
todo: 'uncheck'
};
$('#category_root_id').val(0);
$.ajax({
url: 'index.php?module=onlineshops&action=edit&cmd=uncheckTreeNode',
data: ajaxData,
success: function (data) {
}
});
break;
}
});
$('#mlmTree').aciTree('init');
$(window).on('scroll', function () {
checkContainerPos();
});
},
initSmarty: function () {
$('#editcarttransformation').on('click', function () {
me.openTransformationPopup();
});
$('#runincomming').on('click', function () {
$('#transform_cart').val($('#textareasmartyincomming').val());
$('#transform_cart_data').val($('#textareasmartyincomminginput').val());
$.ajax({
url: 'index.php?module=onlineshops&action=edit&cmd=runincomming',
type: 'POST',
dataType: 'json',
data: {
content: $('#textareasmartyincomming').val(),
input: $('#textareasmartyincomminginput').val(),
shopid: $('#loadCart').data('shopid'),
format: $('#smartyinputtype').val(),
replacecart: $('#replacecart').prop('checked') ? 1 : 0
},
success: function (data) {
$('#dataincommingobject').html(data.object);
$('#dataincommingpreview').val(data.preview);
}
});
});
$('#saveincomming').on('click', function () {
$.ajax({
url: 'index.php?module=onlineshops&action=edit&cmd=savesmartyincomming',
type: 'POST',
dataType: 'json',
data: {
content: $('#textareasmartyincomming').val(),
input: $('#textareasmartyincomminginput').val(),
shopid: $('#loadCart').data('shopid'),
format: $('#smartyinputtype').val(),
replacecart: $('#replacecart').prop('checked') ? 1 : 0,
active: $('#transferactive').prop('checked') ? '1' : '0'
},
success: function () {
$('#transform_cart_format').val($('#smartyinputtype').val());
$('#transform_cart_replace').val($('#replacecart').prop('checked') ? 1 : 0);
$('#transform_cart').val($('#textareasmartyincomming').val());
$('#transform_cart_data').val($('#textareasmartyincomminginput').val());
$('#transform_cart_active').val($('#transferactive').prop('checked') ? '1' : '0');
}
});
});
$('#transferactive').on('change', function () {
$('#transform_cart_active').val($('#transferactive').prop('checked') ? '1' : '0');
});
$('#smartyinputtype').on('change', function () {
me.loadDefaultTemplate();
});
me.loadDefaultTemplate();
$('#loadDefaultTemplate').on('click', function () {
if (me.storage.loadDefaultTemplate + '' === '') {
return;
}
if (($('#textareasmartyincomming').val() + '').trim() !== '' && !confirm('Das bisherige Template wird ersetzt. Fortfahren?')) {
return;
}
$('#textareasmartyincomming').val(me.storage.loadDefaultTemplate);
});
$('#loadCart').on('click', function () {
var cart = $('#cart').val() + '';
if (cart === '') {
return;
}
me.loadCart($(this).data('shopid'));
});
},
loadDefaultTemplate: function () {
me.storage.loadDefaultTemplate = '';
$.ajax({
url: 'index.php?module=onlineshops&action=edit&cmd=loadDefaultTemplate',
type: 'POST',
dataType: 'json',
data: {
content: $('#textareasmartyincomming').val(),
input: $('#textareasmartyincomminginput').val(),
shopid: $('#loadCart').data('shopid'),
format: $('#smartyinputtype').val(),
replacecart: $('#replacecart').prop('checked') ? 1 : 0,
active: $('#transferactive').prop('checked') ? '1' : '0'
},
success: function (data) {
if (typeof data.template != 'undefined' && data.template !== '') {
me.storage.loadDefaultTemplate = data.template;
$('#loadDefaultTemplate').toggleClass('hidden', false);
$('#loadDefaultTemplate').show();
} else {
me.storage.loadDefaultTemplate = '';
$('#loadDefaultTemplate').hide();
}
}
});
},
init: function () {
if ($('#smartyinput').length) {
me.initSmarty();
}
if ($('#mlmTree').length) {
me.initCategoryTree();
}
}
};
return {
init: me.init
};
}(jQuery);
$(document).ready(function () {
ShopSettings.init();
});