Loading...
Navigation überspringen
Bitte beachte, dass sich diese Dokumentation auf die neuste Version dieser Erweiterung bezieht. Wenn eine ältere Version eingesetzt wird, kann diese abweichen. Die jeweils passende Dokumentation befindet sich im Dokumentation-Verzeichnis der Erweiterung.

Integration

Du kannst die Funktionalität anderer Extensions um den UPS-Versand erweitern, indem Du Backend-Links zur Erstellungneuer UPS-Shipping-Einträge erstellst. Die Links, können Parameter enthalten, die den UPS-Shipping-Eintrag mit Werten voraus befüllen.

use TYPO3\CMS\Backend\Routing\UriBuilder;
use TYPO3\CMS\Core\Utility\GeneralUtility;
$returnUrl = 'Return url';
$shippingPageUid = 'Page uid des Containers mit UPS-Shipment-Einträgen';
$defVals = [];
$defVals['address_line'] = 'Beispieladresse 1';
$defVals['weight_unit'] = 'KGS';
$defVals['package_dimensions_unit'] = 'CM';
$uriParameter = [
    'returnUrl' => $returnUrl,
    'edit' => [
        'tx_ups_api_domain_model_shipping' => [
            $shippingPageUid => 'new'
        ]
    ],
    'defVals' => [
        'tx_ups_api_domain_model_shipping' => $defVals
        ]
    ];
$uriBuilder = GeneralUtility::makeInstance(UriBuilder::class);
$uri = (string)$uriBuilder->buildUriFromRoute('record_edit', $uriParameter);

Beispiel

In diesem Beispiel wird ein Button zur Erstellung eines UPS-Shipping-Eintrags in einen Record einer anderen Extension eingebunden.

1.Erstellung eines FormElements zur darstellung des Buttons und Erstellung eines Links zur Erstellung eines UPS-Shipping-Eintrags.

<?php
namespace Vendor\Extension\Form\Element;
use TYPO3\CMS\Backend\Form\Element\AbstractFormElement;
use TYPO3\CMS\Backend\Routing\UriBuilder;
use TYPO3\CMS\Core\Utility\GeneralUtility;
class CreateShippingButton extends AbstractFormElement
{
    public function render(): array
    {
        $shippingPageUid = $this->data['parentPageRow']['uid'];
        $returnUrl = $this->data['returnUrl'];
        $dbRow = $this->data['databaseRow'];
        // Hier werden die UPS-Shipping Felder befüllt
        // z.B.
        $defVals = [
            'address_line' => $dbRow['address']
        ];
        $uriParameter = [
            'returnUrl' => $returnUrl,
            'edit' => [
                'tx_ups_api_domain_model_shipping' => [
                    $shippingPageUid => 'new'
                ]
            ],
            'defVals' => [
                'tx_ups_api_domain_model_shipping' => $defVals
            ]
        ];
        /**@var UriBuilder $uriBuilder */
        $uriBuilder = GeneralUtility::makeInstance(UriBuilder::class);
        $uri = (string)$uriBuilder->buildUriFromRoute('record_edit', $uriParameter);
        $result = $this->initializeResultArray();
        $mainFieldHtml = [];
        $mainFieldHtml[] = '<div class="form-control-wrap">';
        $mainFieldHtml[] = '<div class="form-wizards-wrap">';
        $mainFieldHtml[] = '<div class="form-wizards-element">';
        $mainFieldHtml[] = '<a href="' . $uri . '" class="btn btn-default">New shipping</a>';
        $mainFieldHtml[] = '</div>';
        $mainFieldHtml[] = '</div>';
        $mainFieldHtml[] = '</div>';
        $result['html'] = implode(LF, $mainFieldHtml);
        return $result;
    }
}

2.Registrierung eines render-Typs in ext_localconf.php

$GLOBALS['TYPO3_CONF_VARS']['SYS']['formEngine']['nodeRegistry']['1610980654'] = [
    'nodeName' => 'createShippingButton',
    'priority' => 40,
    'class' => \Vendor\Extension\Form\Element\CreateShippingButton::class,
];

3.Hinzufügen des Buttons zum TCA in Configuration/TCA/Overrides/tx_extension_domain_model_tablename.php

<?php
defined('TYPO3_MODE') or die();
$extKey = 'extension';
$table = 'tx_extension_domain_model_tablename';
$lll = 'LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_db.xlf:' . $table;
if (\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('ups_api')){
    \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns(
        'tx_extension_domain_model_tablename',
        [
            'create_shipping' => [
                'label' => $lll . '.createShipping',
                'config' => [
                    'type' => 'none',
                    'renderType' => 'createShippingButton'
                ]
            ]
        ]
    );
    \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
        'tx_extension_domain_model_tablename',
        'create_shipping'
    );
}
Dokumentation
TYPO3 UPS-API Extension

TYPO3 UPS API

Die EXT:ups_api ist eine TYPO3-Backend-Erweiterung zur Erstellung und Verwaltung von UPS-Versandetiketten.

Menü

Kontaktanfrage

Du kannst uns jederzeit kontaktieren

Stop! Playing in the meantime?
Stop! Playing in the meantime?
Stop! Playing in the meantime?

Stop! Playing in the meantime?

Break the highscore

Press Start
Contact request
Screenreader label
Security question
O___________7LJ______
N_9____T______H___2GJ
A4O___GQG___FNR______
__2____G______6___8H4
__G_________IW2______

🎄 Bereits für's Weihnachtsmarketing?! 🎉

Entdecke den interaktiven Online-Adventskalender – perfekt für Websites, Shops und Kampagnen.

Gewinnspiele, Quiz, Gutscheine & mehr – alles, was Dein Weihnachtsmarketing braucht.

Für TYPO3-Websites Für andere Systeme