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
_J__________O6F______
9Y_____5____7_4___RWF
_4____E7E___K1N______
_B_____9______5___J8L
O27_________98L______