eCommerce Module zur Erstellung von Kundenattributen

webvisum GmbH IHK Köln
Mein Gesicht

Agenda

    Vorstellung
    Analyse
    Entwurf
    Implementierung
    Testing & Abschluss

Ausbildungsbetrieb

Tehnology Stack
Tehnology Stack
Tehnology Stack
webvisum
-10 Jahren Agentur für eCommerce Systeme -aktuell 8 Mitarbeiter -Shopsystem Magento -Magento Markanteil ~30%

Auftraggeber

80 Mitarbieter Physisches Geschäft Magento2 Onlineshop

Agenda

    Vorstellung
    Analyse
    Entwurf
    Implementierung
    Testing & Abschluss

Folgen der Expansion

Der Kunde Geldstrafe Kundenbetreuung
Unglückliche Endkunden Hohe Kosten Überlastete Mitarbeiter

Projektziel

Der Kunde automatisierung Kundenbetreuung
Glückliche Endkunden Fehler- reduktion Personal- entlastung

Wirtschaftlichkeits- betrachtung

Amortisationsgrafik

Prozessqualität

Geldstrafe

Produktqualität

Produktqualität ++ + o -
Funktionalität
Sicherheit
Zuverlässigkeit
Benutzbarkeit
Effizienz
Änderbarkeit
Übertragbarkeit

Die Meilensteine

Agenda

    Vorstellung
    Analyse
    Entwurf
    Implementierung
    Testing & Abschluss
Mockup back back front back
Kuchendiagramm

Die Meilensteine

Kuchendiagramm
Kuchendiagramm
Kuchendiagramm

Die Meilensteine

Agenda

    Vorstellung
    Analyse
    Entwurf
    Implementierung
    Testing & Abschluss
InstallSchema.php
                        
    $installer->startSetup();
    $tableInstance = $installer->getTable('webvisum_customer_attribute');

    /* Hier werden die Spalten der Tabelle definiert. Nach diesem Schema können weitere Attributmerkmale
       zu der Tabelle hinzugefügt werden*/
    $table = $installer->getConnection()
        ->newTable($tableInstance)
        ->addColumn('eav_id', Table::TYPE_INTEGER, null,['identity' => true, 'nullable' => false, 'primary' => true], 'Id')
        ->addColumn('attribute_code', Table::TYPE_TEXT, 255, ['nullable' => false], 'Attribute Code')
        ->addColumn('attr_id', Table::TYPE_INTEGER, 11, ['nullable' => false], 'Attribute Id')
        ->addColumn('store_code', Table::TYPE_TEXT, 255, ['nullable' => false], 'Store');

    /* Die Tabelle wird in der DB installiert*/
    $installer->getConnection()->createTable($table);
                        
                    
Save.php
                        $data = $this->getRequest()->getPostValue();
    /* Hier werden die Daten in das Model übergeben und notwendige Caches geleert */
    try {
        $model = $this->_cattributeFactory->create();
        $model->setData($data);
        $model->save();
        $this->cache->clean(["EAV", "EAV_ATTRIBUTE"]);

        $indexer = $this->indexerFactory->create();
        $indexer->load('customer_grid');
        $indexer->reindexAll();

        /* Ausgabe der Erfolgsnachticht und Weiterleitung zu der Attributübersicht */
        $this->messageManager->addSuccessMessage(__('Attribute has been saved.'));

        return $this->_redirect('*/*/');
    }
    catch (\Exception $e) {
        $this->messageManager->addErrorMessage(__('Something went wrong while saving attribute.'));
    }
                        
                    
customer_account_edit.xml
                        < block class="Webvisum\CustomerAttribute\Block\CustomerAttribute"
    name="customer_attribute_edit"
    as="customer.attribute.edit"
    template="Webvisum_CustomerAttribute::customer/edit.phtml"
    after="-"
/ >
                        
                    
CustomerAttribute.php
                        namespace Webvisum\CustomerAttribute\Block;

    use Magento\Framework\View\Element\Template;
    use Webvisum\CustomerAttribute\Model\CattributeFactory;
    use Magento\Eav\Model\Config;

    class CustomerAttribute extends Template
    {
        public function __construct(CattributeFactory $cattributeFactory, Config $eavConfig)
        {
            $this->_cattributeFactory = $cattributeFactory;
            $this->_eavConfig = $eavConfig;
        }
        public function getCustomerAttributes()
        {
            return $this->_cattributeFactory->create()->getCollection();
        }
        public function getAttributeData($entity, $code)
        {
            return $this->_eavConfig->getAttribute($entity, $code);
        }
    }
                        
                    
edit.phtml

Die Meilensteine

Agenda

    Vorstellung
    Analyse
    Entwurf
    Implementierung
    Testing & Abschluss

Soll-Ist-Vergleich

Phase geplante Zeit Abweichung
Analyse 9 +2
Definition 11 +1
Entwurf 9 -1
Implementierung 21 -2
Testen & Abschluss 8 -
Dokumentation 12 -

Lehren für die Zukunft

Quellen

Font Awesome Icons Einkaufswagen Büroräume Tech-Stack Expansion Kunden Bilder Technologisierung Hintergrund Expansion Codice Fiscal Geldstrafe Kundenbetreuung Bilder Galaxie

Aufgeregt ?