ray-nl/sendcloud-for-simple-commerce

此包最新版本(v1.0.0)没有提供许可信息。

v1.0.0 2022-09-26 11:33 UTC

This package is not auto-updated.

Last update: 2024-09-26 03:28:47 UTC


README

直接从Statamic使用Simple Commerce创建Sendcloud的货运,可以直接下载标签并将订单标记为已发货。

获取运输方式

首先,您需要从Sendcloud选择您网店中要使用的运输方式。只需运行以下命令即可选择。

php artisan sendcloud:generate-shipping-methods

添加操作到控制面板

如果您想创建标签并将订单标记为已发货,请将以下操作添加到您的应用程序中

<?php

namespace App\Actions;

use DoubleThreeDigital\SimpleCommerce\Facades\Order;
use Illuminate\Support\Facades\Storage;
use RayNl\SendcloudForSimpleCommerce\Services\SendcloudService;
use Statamic\Actions\Action;
use Statamic\Contracts\Entries\Entry;

class DownloadLabel extends Action
{
    public function visibleTo($item)
    {
        if ($item instanceof Entry) {
            return $item->collection->handle === 'orders';
        }

        return false;
    }

    public function visibleToBulk($items)
    {
        return false;
    }

    public function download($items, $values)
    {
        foreach ($items as $item) {
            $shippingMethod = new ($item->shipping_method->first())();
            if ($shippingMethod->getSendCloudId() !== null) {
                if (!Storage::exists("labels/{$item->order_number}/label-{$item->order_number}.pdf")) {
                    if ($item->sendcloud_id !== null) {

                        $sendcloud = new SendcloudService();
                        $sendcloud->getParcelFromId($item->sendcloud_id);
                        $sendcloud->createLabel($shippingMethod->getSendCloudId());

                        Storage::put('labels/' . $item->order_number . '/label-' . $item->order_number . '.pdf', $sendcloud->createLabelPdf());
                    }
                }

                Order::find($item->id)->markAsShipped();

                return storage_path("app/labels/{$item->order_number}/label-{$item->order_number}.pdf");
            }
        }
    }
}