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 Erstellung neuer 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
TG1_________KEX______
U______5______F___C39
CZB___M5Q___17Y______
Y_6____K______J___TZI
P1G_________OA4______