Install the Marketplace Shipment feature

Edit on GitHub

This document describes how to install the Marketplace Shipment feature.

Install feature core

Follow the steps below to install the Marketplace Shipment feature core.

Prerequisites

Install the required features:

NAME VERSION INSTALLATION GUIDE
Merchant 202212.0 Install the Merchant feature
Shipment 202212.0 Install the Shipment feature

1) Install the required modules

Install the required modules using Composer:

composer require spryker-feature/marketplace-shipment:"202212.0" --update-with-dependencies
Verification

Make sure the following modules have been installed:

MODULE EXPECTED DIRECTORY
MerchantShipment vendor/spryker/merchant-shipment
MerchantShipmentGui vendor/spryker/merchant-shipment-gui

2) Set up configuration

Add the following configuration to your project:

CONFIGURATION SPECIFICATION NAMESPACE
ShipmentConfig::getShipmentHashFields() Used to group items by shipment using merchant reference. \Pyz\Service\Shipment

src/Pyz/Service/Shipment/ShipmentConfig.php

<?php

namespace Pyz\Service\Shipment;

use Generated\Shared\Transfer\ShipmentTransfer;
use Spryker\Service\Shipment\ShipmentConfig as SprykerShipmentConfig;

class ShipmentConfig extends SprykerShipmentConfig
{
    /**
     * @return array<string>
     */
    public function getShipmentHashFields(): array
    {
        return array_merge(parent::getShipmentHashFields(), [ShipmentTransfer::MERCHANT_REFERENCE]);
    }
}
Verification

Place an order and check that items are grouped by merchant shipment in backoffice.

3) Set up the database schema and transfer definitions

Apply the database changes and generate entity and transfer changes:

console transfer:generate
console propel:install
console transfer:generate
Verification

Verify that the following changes have been applied by checking your database:

DATABASE ENTITY TYPE EVENT
spy_sales_shipment.merchant_reference column created

Make sure that the following changes were applied in transfer objects:

TRANSFER TYPE EVENT PATH
MerchantShipmentCriteria class created src/Generated/Shared/Transfer/MerchantShipmentCriteria
Shipment.merchantReference property created src/Generated/Shared/Transfer/ShipmentTransfer

4) Set up behavior

Enable the following behaviors by registering the plugins:

PLUGIN DESCRIPTION PREREQUISITES NAMESPACE
MerchantShipmentOrderItemTemplatePlugin Shows merchant shipment in shipment section of the ShipmentGui::SalesController Spryker\Zed\MerchantShipmentGui\Communication\ShipmentGui

src/Pyz/Zed/ShipmentGui/ShipmentGuiDependencyProvider.php

<?php

/**
 * This file is part of the Spryker Suite.
 * For full license information, please view the LICENSE file that was distributed with this source code.
 */

namespace Pyz\Zed\ShipmentGui;

use Spryker\Zed\MerchantShipmentGui\Communication\ShipmentGui\MerchantShipmentOrderItemTemplatePlugin;
use Spryker\Zed\ShipmentGui\ShipmentGuiDependencyProvider as SprykerShipmentGuiDependencyProvider;

class ShipmentGuiDependencyProvider extends SprykerShipmentGuiDependencyProvider
{
    /**
     * @return array<\Spryker\Zed\ShipmentGuiExtension\Dependency\Plugin\ShipmentOrderItemTemplatePluginInterface>
     */
    protected function getShipmentOrderItemTemplatePlugins(): array
    {
        return [
            new MerchantShipmentOrderItemTemplatePlugin(),
        ];
    }
}
FEATURE REQUIRED FOR THE CURRENT FEATURE INSTALLATION GUIDE
Marketplace Shipment + Cart Marketplace Shipment + Cart feature integration
Marketplace Shipment + Checkout Marketplace Shipment + Checkout feature integration
Marketplace Shipment + Customer Marketplace Shipment + Customer feature integration