Magento 2で注文をCSVに出力する方法

このガイドでは、Magento の注文を CSV ファイルにエクスポートする方法を、Magento のバックエンドを使用した最も簡単な方法から、スクリプトを使用したより高度な方法まで、順を追って説明します。いずれにしても、最終的には注文グリッドからのすべてのデータを含むCSVファイルを得ることができます。

1. Magentoバックエンドからの注文のエクスポート

Magentoのバックエンドでは、Sales > Ordersに進みます。

Sales orders

続いて表示されるOrdersパネルには、デフォルトで以下の列が表示されています:

  • ID
  • 購入ポイント
  • 購入日
  • 請求先名
  • 出荷先名
  • 合計金額(基本
  • 合計金額(購入金額)
  • ステータス
  • アクション
  • 割り当てられたソース
  • Braintree トランザクションソース

ここでは、エクスポートのドロップダウンをクリックし、CSVにチェックを入れることで、注文データをエクスポートすることができます。

magento 2 orders export

エクスポート」をクリックすると、生成されたCSVにはこのデフォルトビューのデータが含まれています。

2. カスタムデータを使ったプログラムによるオーダーのエクスポート

また、プログラムでOrdersグリッドに新しい列を追加し、Observerを実行してOrders CSVをエクスポートすることもできます。

vendor/magento/module-sales/view/adminhtml/ui_component/sales_order_grid.xmlに新しいカラムを作成します。

<column name="custom_product_name" class="Magento\Sales\Ui\Component\Listing\Column\Price">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="filter" xsi:type="string">textRange</item>
                    <item name="visible" xsi:type="boolean">false</item>
                    <item name="label" xsi:type="string" translate="true">Custom Product Name</item>
                </item>
            </argument>
</column>

以下のアップグレードスキーマを実行して、sales_order_gridテーブルに変更を加えます。

ALTER TABLE `sales_order_grid` ADD `custom_product_name` VARCHAR( 255 ) NOT NULL ;

注文の送信が成功したときにObserverを実行する

例えば、events.xml

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">

    <event name="checkout_submit_all_after">
        <observer name="yourcompany_yourmodule_checkout_submit_all_after" instance="YourCompany\YourModule\Observer\ProcessOrder" />
    </event>

</config>

そして、オブザーバーでは:

public function execute(\Magento\Framework\Event\Observer $observer)
{
    $order = $observer->getOrder();
    $quote = $observer->getQuote();

    // Do whatever you want here

    return $this;
}

「エクスポート」をクリックします。

3. 拡張機能を使った注文のエクスポート

Magento のデフォルトの注文エクスポートオプションはまだかなり制限されているので、エクステンションを使って仕事をしてもらうのが良い方法です。マーケットプレイスには様々なオーダーエクスポートエクステンションがあります (無料と有料の両方)。

デモを申し込む

弊社の専門家は最適なソリューションをサポートさせて頂きます。

►►►サービスについて