EC-CUBE3 インボイス制度に対応した帳票出力(納品書・請求書・見積書・領収書)プラグイン

・納品書、見積書、請求書、領収書を作成することができます。
・「ロゴ画像」「印鑑枠」「その他のお問い合わせ」「配送業者」「お届け日・お届け時間」は表示・非表示の選択が可能です。
・宛名は会社名+注文者で表示されますが、出力時に「宛名欄」が入力されると入力内容が宛名として表示されます。(宛名の変更が可能)
・お買上げ明細表の「単価」は、税込み表示・税抜き表示の選択が可能です。
・注文数が多い明細表など、「フォントサイズ」「セルの高さ」を変更して調整することができます。
・インボイス制度に対応するため、「適格請求書発行事業者登録番号」「税率別の価格と消費税」「軽減税率適用の有無」が帳票に反映されます。

詳しくはマニュアルをご覧下さい。
EC-CUBE3_DocumentPdfManual.pdf

ご購入はこちら
https://kaiplus.com/

101

EC-CUBE3:個別税率(軽減税率)が商品詳細ページ、金額計算に反映されない点を解消

2019年9月2日に(1)について掲載しました。
その後、2019年10月4日にGitHub/EC-CUBEでの解消方法を確認しましたので、(3)にその情報を掲載します。
不具合を解消する場合は、(3)の方法で行うとよいでしょう。

既に、(1)の方法で修正されている場合は、(2)の方法で元にもどしてから、(3)の方法で修正を行ってください。

 

zeiritu

・ 商品別税率機能を有効
・ 税率一覧 ID:1の「編集」で税率を10%に変更

商品登録画面の「詳細な設定」に消費税率欄が表示されます。
軽減税率に該当する商品のみ、「8」を入力します。(入力しない商品は、10%が適用)

ところが、
個別税率(軽減税率)が商品詳細ページ、金額計算に反映されません。

(1)次のファイルの修正で、正常な動作になります。

■src/Eccube/Repository/TaxRuleRepository.php
157行目付近、変更。

// Product
if ($Product && $productId > 0) {
$qb->andWhere('t.Product IS NULL OR t.Product = :Product');
$parameters['Product'] = $Product;
} else {
$qb->andWhere('t.Product IS NULL');
}

↓【修正】

// Product
if ($Product && $productId > 0) {
$qb->andWhere('t.Product IS NULL OR t.Product = :Product');
$parameters['Product'] = $Product;
// ▼個別税率設定が商品詳細ページに反映されない点を解消(下の2行を追加)
} else if ($ProductClass && $productClassId > 0) {
// ProductClassが渡ってきているが、$Productがnullのタイミングがあった時の対応
} else {
$qb->andWhere('t.Product IS NULL');
}

(2)上記の修正を元に戻す

下記の記述が(1)の修正で追加した部分なので、この部分を削除してください。
—————————————————–
// ▼個別税率設定が商品詳細ページに反映されない点を解消(下の2行を追加)
} else if ($ProductClass && $productClassId > 0) {
// ProductClassが渡ってきているが、$Productがnullのタイミングがあった時の対応
—————————————————–
↓【削除して元に戻す】

// Product
if ($Product && $productId > 0) {
$qb->andWhere('t.Product IS NULL OR t.Product = :Product');
$parameters['Product'] = $Product;
} else {
$qb->andWhere('t.Product IS NULL');
}

(3) 修正ファイルは同じです。

■src/Eccube/Repository/TaxRuleRepository.php

86行目付近に下記コードを追加します。
—————————————————————
// Product が null の場合は正常に税率取得できないため, Product を取得し直す
if ($ProductClass instanceof \Eccube\Entity\ProductClass && $Product === null) {
$this->getEntityManager()->refresh($ProductClass);
$Product = $ProductClass->getProduct();
}
—————————————————————
↓【結果、追加コードを含めた前後の記述】


// Pref Country 設定
 if (!$Pref && !$Country && $this->app['security']->getToken() && $this->app['security']->isGranted('ROLE_USER')) {
 /* @var $Customer \Eccube\Entity\Customer */
 $Customer = $this->app['security']->getToken()->getUser();
 $Pref = $Customer->getPref();
 $Country = $Customer->getCountry();
 }

// Product が null の場合は正常に税率取得できないため, Product を取得し直す
 if ($ProductClass instanceof \Eccube\Entity\ProductClass && $Product === null) {
 $this->getEntityManager()->refresh($ProductClass);
 $Product = $ProductClass->getProduct();
 }

 // 商品単位税率設定がOFFの場合
 /** @var $BaseInfo \Eccube\Entity\BaseInfo */
 $BaseInfo = $this->app['eccube.repository.base_info']->get();
 if ($BaseInfo->getOptionProductTaxRule() !== Constant::ENABLED) {
 $Product = null;
 $ProductClass = null;
 }

▼参考
https://github.com/EC-CUBE/ec-cube/pull/4310/files

EC-CUBE3:3.0.17→3.0.18 バージョンアップファイルの一覧

(1)vendorフォルダを丸ごと入れ換え

現行サイトのvendorを削除し、新しいvendorと入れ替えてください。

(2)ファイルの入れ換え

以下、7点のファイルが修正されています。
下記ファイルについて、ご自身で編集されていない場合は、上書きされて構いませんが、編集されている場合は、編集箇所を追加してください。

直下
————————————
■composer.lock
————————————

src/Eccube/Common
————————————
■src/Eccube/Common/Constant.php
————————————

src/Eccube/Controller
————————————
■src/Eccube/Controller/ShoppingController.php
————————————

src/Eccube/Entity
————————————
■src/Eccube/Entity/Customer.php
■src/Eccube/Entity/Member.php
————————————

src/Eccube/Form
————————————
■src/Eccube/Form/Type/ShippingMultipleItemType.php
————————————

src/Eccube/Service
————————————
■src/Eccube/Service/ShoppingService.php
————————————

(3)上部のコメントエリアにおいて、下記の変更が行われているファイルが多数ありますが、プラグラム上問題が無いので、それらは変更ファイルとして扱っていません。

————————————
* Copyright(c) 2000-2015 LOCKON CO.,LTD. All Rights Reserved.
*
* http://www.lockon.co.jp/
————————————
↓【変更】
————————————
* Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
*
* http://www.ec-cube.co.jp/
————————————

 

EC-CUBE3データ移行:受注データ(MySQL)

 

 

EC-CUBE3→EC-CUBE3機能カスタマイズ版

機能カスタマイズ版はインストールと同時に機能が実装されます。
詳しくは↓こちらをご覧ください。
EC-CUBE3機能カスタマイズ版 
EC-CUBE4機能カスタマイズ版

Ⅰ 移行元の操作

各テーブルのsqlをダウンロード(エクスポート)します。
—————————————-
① dtb_order
② dtb_order_detail
③ dtb_shipment_item
④ dtb_shipping
—————————————-

Ⅱ 移行先の操作

1 dtb_order

外部キー制約あり。

dtb_shipping
① Constraint properties→「FK_2EBD22CE8D9F6D38」
② カラム→「order_id」

dtb_mail_history
① Constraint properties→「FK_4870AB118D9F6D38」
② カラム→「order_id」

dtb_order_detail
① Constraint properties→「FK_58FE35738D9F6D38」
② カラム→「order_id」

dtb_shipment_item
① Constraint properties→「FK_57C3C0398D9F6D38」
② カラム→「order_id」
(1)下記SQLを実行して外部キーを削除する。

ALTER TABLE dtb_shipping DROP FOREIGN KEY `FK_2EBD22CE8D9F6D38`;
ALTER TABLE dtb_mail_history DROP FOREIGN KEY `FK_4870AB118D9F6D38`;
ALTER TABLE dtb_order_detail DROP FOREIGN KEY `FK_58FE35738D9F6D38`;
ALTER TABLE dtb_shipment_item DROP FOREIGN KEY `FK_57C3C0398D9F6D38`;

(2)dtb_orderーブルを空にする。

(3)sqlをインポートする。アップロードファイル→参照、「実行」をクリック。

(4)下記SQLを実行して参照元テーブル「dtb_product_category」に外部キーを復元する。

DELETE FROM dtb_shipping WHERE order_id NOT IN( SELECT order_id FROM dtb_order );
DELETE FROM dtb_mail_history WHERE order_id NOT IN( SELECT order_id FROM dtb_order );
DELETE FROM dtb_order_detail WHERE order_id NOT IN( SELECT order_id FROM dtb_order );
DELETE FROM dtb_shipment_item WHERE order_id NOT IN( SELECT order_id FROM dtb_order );

ALTER TABLE dtb_shipping ADD CONSTRAINT FK_2EBD22CE8D9F6D38 FOREIGN KEY (order_id) REFERENCES dtb_order (order_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_mail_history ADD CONSTRAINT FK_4870AB118D9F6D38 FOREIGN KEY (order_id) REFERENCES dtb_order (order_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_order_detail ADD CONSTRAINT FK_58FE35738D9F6D38 FOREIGN KEY (order_id) REFERENCES dtb_order (order_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_shipment_item ADD CONSTRAINT FK_57C3C0398D9F6D38 FOREIGN KEY (order_id) REFERENCES dtb_order (order_id) ON DELETE RESTRICT ON UPDATE RESTRICT;

2 dtb_order_detail

外部キー制約なし

(1)空にする。

(2)sqlインポート

3 dtb_shipment_item

自身に設定されている外部キー制約を削除する。

dtb_shipping
・Constraint properties→「FK_57C3C0394887F3F8」
・カラム→「shipping_id」

(1)下記SQLを実行して外部キーを削除する。

ALTER TABLE dtb_shipment_item DROP FOREIGN KEY `FK_57C3C0394887F3F8`;

(2)dtb_shipment_itemテーブルを空にする。

(3)sqlをインポートする。アップロードファイル→参照、「実行」をクリック。

(4)下記SQLを実行して自身のテーブルに外部キーを復元する。

DELETE FROM dtb_shipment_item WHERE shipping_id NOT IN( SELECT shipping_id FROM dtb_shipping );

ALTER TABLE dtb_shipment_item ADD CONSTRAINT FK_57C3C0394887F3F8 FOREIGN KEY (shipping_id) REFERENCES dtb_shipping (shipping_id) ON DELETE RESTRICT ON UPDATE RESTRICT;

4 dtb_shipping

外部キー制約あり。

dtb_shipment_item
① Constraint properties→「FK_A0C8C3ED4887F3F8」
② カラム→「shipping_id」

(1)下記SQLを実行して外部キーを削除する。

ALTER TABLE dtb_shipment_item DROP FOREIGN KEY `FK_57C3C0394887F3F8`;

(2)dtb_shippingテーブルを空にする。

(3)sqlをインポートする。アップロードファイル→参照、「実行」をクリック。

(4)下記SQLを実行して参照元テーブルに外部キーを復元する。

DELETE FROM dtb_shipment_item WHERE shipping_id NOT IN( SELECT shipping_id FROM dtb_shipping );

ALTER TABLE dtb_shipment_item ADD CONSTRAINT FK_57C3C0394887F3F8 FOREIGN KEY (shipping_id) REFERENCES dtb_shipping (shipping_id) ON DELETE RESTRICT ON UPDATE RESTRICT;

 

EC-CUBE3データ移行:会員データ・管理者データ(MySQL)

 

 

EC-CUBE3→EC-CUBE3機能カスタマイズ版

機能カスタマイズ版はインストールと同時に機能が実装されます。
詳しくは↓こちらをご覧ください。
EC-CUBE3機能カスタマイズ版 
EC-CUBE4機能カスタマイズ版

※ ログイン暗号情報を移行するため、管理者のデータも移行する。

Ⅰ 移行元の操作

各テーブルのsqlをダウンロード(エクスポート)します。
—————————————-
① dtb_customer
② dtb_customer_address
③ dtb_customer_favorite_product
④ dtb_mail_history
⑤ dtb_member
—————————————-

Ⅱ 移行先の操作

1 dtb_customer

外部キー制約あり。

dtb_order
① Constraint properties→「FK_1D66D8079395C3F3」
② カラム→「customer_id」

dtb_customer_address
① Constraint properties→「FK_6C38C0F89395C3F3」
② カラム→「customer_id」

dtb_customer_favorite_product
① Constraint properties→「FK_ED6313839395C3F3」
② カラム→「customer_id」

(1)下記SQLを実行して外部キーを削除する。

ALTER TABLE dtb_order DROP FOREIGN KEY `FK_1D66D8079395C3F3`;
ALTER TABLE dtb_customer_address DROP FOREIGN KEY `FK_6C38C0F89395C3F3`;
ALTER TABLE dtb_customer_favorite_product DROP FOREIGN KEY `FK_ED6313839395C3F3`;

(2)dtb_customerテーブルを空にする。

(3)sqlをインポートする。アップロードファイル→参照、「実行」をクリック。

(4)下記SQLを実行して参照元テーブルに外部キーを復元する。

DELETE FROM dtb_order WHERE customer_id NOT IN( SELECT customer_id FROM dtb_customer );
DELETE FROM dtb_customer_address WHERE customer_id NOT IN( SELECT customer_id FROM dtb_customer );
DELETE FROM dtb_customer_favorite_product WHERE customer_id NOT IN( SELECT customer_id FROM dtb_customer );

ALTER TABLE dtb_order ADD CONSTRAINT FK_1D66D8079395C3F3 FOREIGN KEY (customer_id) REFERENCES dtb_customer (customer_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_customer_address ADD CONSTRAINT FK_6C38C0F89395C3F3 FOREIGN KEY (customer_id) REFERENCES dtb_customer (customer_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_customer_favorite_product ADD CONSTRAINT FK_ED6313839395C3F3 FOREIGN KEY (customer_id) REFERENCES dtb_customer (customer_id) ON DELETE RESTRICT ON UPDATE RESTRICT;

2 dtb_customer_address

外部キー制約なし

(1)空にする。

(2)sqlインポート

3 dtb_customer_favorite_product

外部キー制約なし

(1)空にする。

(2)sqlインポート

4 dtb_mail_history

dtb_mail_history自身に設定されている外部キー制約を削除する。

dtb_order
・Constraint properties→「FK_4870AB118D9F6D38」
・カラム→「order_id」

(1)下記SQLを実行して外部キーを削除する。

ALTER TABLE dtb_mail_history DROP FOREIGN KEY `FK_4870AB118D9F6D38`;

(2)dtb_mail_historyテーブルを空にする。

(3)sqlをインポートする。アップロードファイル→参照、「実行」をクリック。

(4)下記SQLを実行して自身のテーブルに外部キーを復元する。

DELETE FROM dtb_mail_history WHERE order_id NOT IN( SELECT order_id FROM dtb_order );

ALTER TABLE dtb_mail_history ADD CONSTRAINT FK_4870AB118D9F6D38 FOREIGN KEY (order_id) REFERENCES dtb_order (order_id) ON DELETE RESTRICT ON UPDATE RESTRICT;

5 dtb_member

外部キー制約あり。

dtb_faq
① Constraint properties→「FK_15046F5861220EA6」
② カラム→「creator_id」

dtb_class_name
① Constraint properties→「FK_187C95AD61220EA6」
② カラム→「creator_id」

dtb_product_class
① Constraint properties→「FK_1A11D1BA61220EA6」
② カラム→「creator_id」

dtb_mail_template
① Constraint properties→「FK_1CB16DB261220EA6」
② カラム→「creator_id」

dtb_ticker
① Constraint properties→「FK_1E9BC90861220EA6」
② カラム→「creator_id」

dtb_product_image
① Constraint properties→「FK_3267CC7A61220EA6」
② カラム→「creator_id」

dtb_delivery
① Constraint properties→「FK_3420D9FA61220EA6」
② カラム→「creator_id」

dtb_topimage
① Constraint properties→「FK_3B5AB76661220EA6」
② カラム→「creator_id」

dtb_lp
① Constraint properties→「FK_4177A97261220EA6」
② カラム→「creator_id」

dtb_product_tag
① Constraint properties→「FK_4433E72161220EA6」
② カラム→「creator_id」

dtb_mail_history
① Constraint properties→「FK_4870AB1161220EA6」
② カラム→「creator_id」

dtb_authority_role
① Constraint properties→「FK_4A1F70B161220EA6」
② カラム→「creator_id」

dtb_category
① Constraint properties→「FK_5ED2C2B61220EA6」
② カラム→「creator_id」

dtb_payment
① Constraint properties→「FK_7AFF628F61220EA6」
② カラム→「creator_id」

dtb_class_category
① Constraint properties→「FK_9B0D1DBA61220EA6」
② カラム→「creator_id」

dtb_product_stock
① Constraint properties→「FK_BC6C9E4561220EA6」
② カラム→「creator_id」

dtb_product
① Constraint properties→「FK_C49DE22F61220EA6」
② カラム→「creator_id」

dtb_news
① Constraint properties→「FK_EA4C351761220EA6」
② カラム→「creator_id」

dtb_csv
① Constraint properties→「FK_F55F48C361220EA6」
② カラム→「creator_id」

(1)下記SQLを実行して外部キーを削除する。

ALTER TABLE dtb_faq DROP FOREIGN KEY `FK_15046F5861220EA6`;
ALTER TABLE dtb_class_name DROP FOREIGN KEY `FK_187C95AD61220EA6`;
ALTER TABLE dtb_product_class DROP FOREIGN KEY `FK_1A11D1BA61220EA6`;
ALTER TABLE dtb_mail_template DROP FOREIGN KEY `FK_1CB16DB261220EA6`;
ALTER TABLE dtb_ticker DROP FOREIGN KEY `FK_1E9BC90861220EA6`;
ALTER TABLE dtb_product_image DROP FOREIGN KEY `FK_3267CC7A61220EA6`;
ALTER TABLE dtb_delivery DROP FOREIGN KEY `FK_3420D9FA61220EA6`;
ALTER TABLE dtb_topimage DROP FOREIGN KEY `FK_3B5AB76661220EA6`;
ALTER TABLE dtb_lp DROP FOREIGN KEY `FK_4177A97261220EA6`;
ALTER TABLE dtb_product_tag DROP FOREIGN KEY `FK_4433E72161220EA6`;
ALTER TABLE dtb_mail_history DROP FOREIGN KEY `FK_4870AB1161220EA6`;
ALTER TABLE dtb_authority_role DROP FOREIGN KEY `FK_4A1F70B161220EA6`;
ALTER TABLE dtb_tax_rule DROP FOREIGN KEY `FK_59F696DE61220EA6`;
ALTER TABLE dtb_category DROP FOREIGN KEY `FK_5ED2C2B61220EA6`;
ALTER TABLE dtb_payment DROP FOREIGN KEY `FK_7AFF628F61220EA6`;
ALTER TABLE dtb_class_category DROP FOREIGN KEY `FK_9B0D1DBA61220EA6`;
ALTER TABLE dtb_product_stock DROP FOREIGN KEY `FK_BC6C9E4561220EA6`;
ALTER TABLE dtb_product DROP FOREIGN KEY `FK_C49DE22F61220EA6`;
ALTER TABLE dtb_news DROP FOREIGN KEY `FK_EA4C351761220EA6`;
ALTER TABLE dtb_csv DROP FOREIGN KEY `FK_F55F48C361220EA6`;

(2)dtb_memberテーブルを空にする。

(3)sqlをインポートする。アップロードファイル→参照、「実行」をクリック。

(4)下記SQLを実行して参照元テーブルに外部キーを復元する。

DELETE FROM dtb_faq WHERE creator_id NOT IN( SELECT member_id FROM dtb_member );
DELETE FROM dtb_class_name WHERE creator_id NOT IN( SELECT member_id FROM dtb_member );
DELETE FROM dtb_product_class WHERE creator_id NOT IN( SELECT member_id FROM dtb_member );
DELETE FROM dtb_mail_template WHERE creator_id NOT IN( SELECT member_id FROM dtb_member );
DELETE FROM dtb_ticker WHERE creator_id NOT IN( SELECT member_id FROM dtb_member );
DELETE FROM dtb_product_image WHERE creator_id NOT IN( SELECT member_id FROM dtb_member );
DELETE FROM dtb_delivery WHERE creator_id NOT IN( SELECT member_id FROM dtb_member );
DELETE FROM dtb_topimage WHERE creator_id NOT IN( SELECT member_id FROM dtb_member );
DELETE FROM dtb_lp WHERE creator_id NOT IN( SELECT member_id FROM dtb_member );
DELETE FROM dtb_product_tag WHERE creator_id NOT IN( SELECT member_id FROM dtb_member );
DELETE FROM dtb_mail_history WHERE creator_id NOT IN( SELECT member_id FROM dtb_member );
DELETE FROM dtb_authority_role WHERE creator_id NOT IN( SELECT member_id FROM dtb_member );
DELETE FROM dtb_tax_rule WHERE creator_id NOT IN( SELECT member_id FROM dtb_member );
DELETE FROM dtb_category WHERE creator_id NOT IN( SELECT member_id FROM dtb_member );
DELETE FROM dtb_payment WHERE creator_id NOT IN( SELECT member_id FROM dtb_member );
DELETE FROM dtb_class_category WHERE creator_id NOT IN( SELECT member_id FROM dtb_member );
DELETE FROM dtb_product_stock WHERE creator_id NOT IN( SELECT member_id FROM dtb_member );
DELETE FROM dtb_product WHERE creator_id NOT IN( SELECT member_id FROM dtb_member );
DELETE FROM dtb_news WHERE creator_id NOT IN( SELECT member_id FROM dtb_member );
DELETE FROM dtb_csv WHERE creator_id NOT IN( SELECT member_id FROM dtb_member );

ALTER TABLE dtb_faq ADD CONSTRAINT FK_15046F5861220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (member_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_class_name ADD CONSTRAINT FK_187C95AD61220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (member_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product_class ADD CONSTRAINT FK_1A11D1BA61220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (member_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_mail_template ADD CONSTRAINT FK_1CB16DB261220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (member_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_ticker ADD CONSTRAINT FK_1E9BC90861220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (member_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product_image ADD CONSTRAINT FK_3267CC7A61220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (member_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_delivery ADD CONSTRAINT FK_3420D9FA61220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (member_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_topimage ADD CONSTRAINT FK_3B5AB76661220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (member_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_lp ADD CONSTRAINT FK_4177A97261220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (member_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product_tag ADD CONSTRAINT FK_4433E72161220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (member_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_mail_history ADD CONSTRAINT FK_4870AB1161220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (member_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_authority_role ADD CONSTRAINT FK_4A1F70B161220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (member_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_tax_rule ADD CONSTRAINT FK_59F696DE61220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (member_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_category ADD CONSTRAINT FK_5ED2C2B61220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (member_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_payment ADD CONSTRAINT FK_7AFF628F61220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (member_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_class_category ADD CONSTRAINT FK_9B0D1DBA61220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (member_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product_stock ADD CONSTRAINT FK_BC6C9E4561220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (member_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product ADD CONSTRAINT FK_C49DE22F61220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (member_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_news ADD CONSTRAINT FK_EA4C351761220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (member_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_csv ADD CONSTRAINT FK_F55F48C361220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (member_id) ON DELETE RESTRICT ON UPDATE RESTRICT;

6 移行元のパスワードでログインできるようにする

(1)移行元、生成されている「app/config/eccube/config.yml」をダウンロード
(2)auth_magic:*************************←コピー
(3)移行先、生成されている「app/config/eccube/config.yml」をダウンロード
(4)auth_magic:*************************←ペーストして、アップロード

つまり、移行元のauth_magicを移行先のauth_magicで使用するということです。

 

EC-CUBE3データ移行:カテゴリデータ・商品データ(MySQL)

 

 

EC-CUBE3→EC-CUBE3機能カスタマイズ版

機能カスタマイズ版はインストールと同時に機能が実装されます。
詳しくは↓こちらをご覧ください。
EC-CUBE3機能カスタマイズ版 
EC-CUBE4機能カスタマイズ版

Ⅰ 移行元の操作

(1)まずは、商品画像を移行先にコピーします。

・移行元/html/upload/save_image/ から画像をダウンロードします。
・移行先/html/upload/save_image/ にアップロード(コピーします)

(2)各テーブルのsqlをダウンロード(エクスポート)します。
—————————————-
① dtb_category
② dtb_category_count
③ dtb_category_total_count
④ dtb_class_category
⑤ dtb_class_name
⑥ dtb_product
⑦ dtb_product_category
⑧ dtb_product_class
⑨ dtb_product_image
⑩ dtb_product_stock
⑪ dtb_product_tag
—————————————-

Ⅱ 移行先の操作

1 dtb_category

外部キー制約あり。

dtb_product_category
① Constraint properties→「FK_B057789112469DE2」
② カラム→「category_id」

(1)下記SQLを実行して外部キーを削除する。

ALTER TABLE dtb_product_category DROP FOREIGN KEY `FK_B057789112469DE2`;

(2)dtb_categoryテーブルを空にする。

(3)sqlをインポートする。アップロードファイル→参照、「実行」をクリック。

(4)下記SQLを実行して参照元テーブル「dtb_product_category」に外部キーを復元する。

DELETE FROM dtb_product_category WHERE category_id NOT IN( SELECT category_id FROM dtb_category );
ALTER TABLE dtb_product_category ADD CONSTRAINT FK_B057789112469DE2 FOREIGN KEY (category_id) REFERENCES dtb_category (category_id) ON DELETE RESTRICT ON UPDATE RESTRICT;

2 dtb_category_count

外部キー制約なし

(1)空にする。

(2)sqlインポート

3 dtb_category_total_count

外部キー制約なし

(1)空にする。

(2)sqlインポート

4 dtb_class_category

外部キー制約あり。

dtb_product_class

① Constraint properties→「FK_1A11D1BA248D128」
② カラム→「class_category_id1」

③ Constraint properties→「FK_1A11D1BA9B418092」
④ カラム→「class_category_id2」

(1)下記SQLを実行して外部キーを削除する。

ALTER TABLE dtb_product_class DROP FOREIGN KEY `FK_1A11D1BA248D128`;
ALTER TABLE dtb_product_class DROP FOREIGN KEY `FK_1A11D1BA9B418092`;

(2)dtb_class_categoryテーブルを空にする。

(3)sqlをインポートする。アップロードファイル→参照、「実行」をクリック。

(4)下記SQLを実行して参照元テーブル「dtb_product_class」に外部キーを復元する。

DELETE FROM dtb_product_class WHERE class_category_id1 NOT IN( SELECT class_category_id FROM dtb_class_category );
DELETE FROM dtb_product_class WHERE class_category_id2 NOT IN( SELECT class_category_id FROM dtb_class_category );

ALTER TABLE dtb_product_class ADD CONSTRAINT FK_1A11D1BA248D128 FOREIGN KEY (class_category_id1) REFERENCES dtb_class_category (class_category_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product_class ADD CONSTRAINT FK_1A11D1BA9B418092 FOREIGN KEY (class_category_id2) REFERENCES dtb_class_category (class_category_id) ON DELETE RESTRICT ON UPDATE RESTRICT;

5 dtb_class_name

外部キー制約あり。

dtb_class_category
① Constraint properties→「FK_9B0D1DBAB462FB2A」
② カラム→「class_name_id」

(1)下記SQLを実行して外部キーを削除する。

ALTER TABLE dtb_class_category DROP FOREIGN KEY `FK_9B0D1DBAB462FB2A`;

(2)dtb_class_nameテーブルを空にする。

(3)sqlをインポートする。アップロードファイル→参照、「実行」をクリック。

(4)下記SQLを実行して参照元テーブル「dtb_class_category」に外部キーを復元する。

DELETE FROM dtb_class_category WHERE class_name_id NOT IN( SELECT class_name_id FROM dtb_class_name );

ALTER TABLE dtb_class_category ADD CONSTRAINT FK_9B0D1DBAB462FB2A FOREIGN KEY (class_name_id) REFERENCES dtb_class_name (class_name_id) ON DELETE RESTRICT ON UPDATE RESTRICT;

6 dtb_product

外部キー制約あり。

*********************************
① dtb_product_class
・Constraint properties→「FK_1A11D1BA4584665A」
・カラム→「product_id」

② dtb_product_image
・Constraint properties→「FK_3267CC7A4584665A」
・カラム→「product_id」

③ dtb_product_tag
・Constraint properties→「FK_4433E7214584665A」
・カラム→「product_id」

④  dtb_tax_rule
・Constraint properties→「FK_59F696DE4584665A」
・カラム→「product_id」

⑤ dtb_product_category
・Constraint properties→「FK_B05778914584665A」
・カラム→「product_id」

⑥ dtb_customer_favorite_product
・Constraint properties→「FK_ED6313834584665A」
・カラム→「product_id」

⑦ dtb_shipment_item
・Constraint properties→「FK_57C3C0394584665A」
・カラム→「product_id」

⑧ dtb_order_detail
・Constraint properties→「FK_58FE35734584665A」
・カラム→「product_id」

*********************************

(1)下記SQLを実行して外部キーを削除する。

ALTER TABLE dtb_product_class DROP FOREIGN KEY `FK_1A11D1BA4584665A`;
ALTER TABLE dtb_product_image DROP FOREIGN KEY `FK_3267CC7A4584665A`;
ALTER TABLE dtb_product_tag DROP FOREIGN KEY `FK_4433E7214584665A`;
ALTER TABLE dtb_tax_rule DROP FOREIGN KEY `FK_59F696DE4584665A`;
ALTER TABLE dtb_product_category DROP FOREIGN KEY `FK_B05778914584665A`;
ALTER TABLE dtb_customer_favorite_product DROP FOREIGN KEY `FK_ED6313834584665A`;
ALTER TABLE dtb_shipment_item DROP FOREIGN KEY `FK_57C3C0394584665A`;
ALTER TABLE dtb_order_detail DROP FOREIGN KEY `FK_58FE35734584665A`;

(2)dtb_productテーブルを空にする。

(3)sqlをインポートする。アップロードファイル→参照、「実行」をクリック。

(4)下記SQLを実行して参照元テーブルに外部キーを復元する。

DELETE FROM dtb_product_class WHERE product_id NOT IN( SELECT product_id FROM dtb_product );
DELETE FROM dtb_product_image WHERE product_id NOT IN( SELECT product_id FROM dtb_product );
DELETE FROM dtb_product_tag WHERE product_id NOT IN( SELECT product_id FROM dtb_product );
DELETE FROM dtb_product_tag WHERE product_id NOT IN( SELECT product_id FROM dtb_product );
DELETE FROM dtb_product_category WHERE product_id NOT IN( SELECT product_id FROM dtb_product );
DELETE FROM dtb_customer_favorite_product WHERE product_id NOT IN( SELECT product_id FROM dtb_product );
DELETE FROM dtb_shipment_item WHERE product_id NOT IN( SELECT product_id FROM dtb_product );
DELETE FROM dtb_order_detail WHERE product_id NOT IN( SELECT product_id FROM dtb_product );
ALTER TABLE dtb_product_class ADD CONSTRAINT FK_1A11D1BA4584665A FOREIGN KEY (product_id) REFERENCES dtb_product (product_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product_image ADD CONSTRAINT FK_3267CC7A4584665A FOREIGN KEY (product_id) REFERENCES dtb_product (product_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product_tag ADD CONSTRAINT FK_4433E7214584665A FOREIGN KEY (product_id) REFERENCES dtb_product (product_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product_tag ADD CONSTRAINT FK_59F696DE4584665A FOREIGN KEY (product_id) REFERENCES dtb_product (product_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product_category ADD CONSTRAINT FK_B05778914584665A FOREIGN KEY (product_id) REFERENCES dtb_product (product_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_customer_favorite_product ADD CONSTRAINT FK_ED6313834584665A FOREIGN KEY (product_id) REFERENCES dtb_product (product_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_shipment_item ADD CONSTRAINT FK_57C3C0394584665A FOREIGN KEY (product_id) REFERENCES dtb_product (product_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_order_detail ADD CONSTRAINT FK_58FE35734584665A FOREIGN KEY (product_id) REFERENCES dtb_product (product_id) ON DELETE RESTRICT ON UPDATE RESTRICT;

7 dtb_product_category

外部キー制約なし

(1)空にする。

(2)sqlインポート

8 dtb_product_class

外部キー制約あり。

① dtb_tax_rule
・Constraint properties→「FK_59F696DE21B06187」
・カラム→「product_class_id」

④ dtb_product_stock
・Constraint properties→「FK_BC6C9E4521B06187」
・カラム→「product_class_id」

④ dtb_shipment_item
・Constraint properties→「FK_57C3C03921B06187」
・カラム→「product_class_id」

④ dtb_order_detail
・Constraint properties→「FK_58FE357321B06187」
・カラム→「product_class_id」

(1)下記SQLを実行して外部キーを削除する。

ALTER TABLE dtb_tax_rule DROP FOREIGN KEY `FK_59F696DE21B06187`;
ALTER TABLE dtb_product_stock DROP FOREIGN KEY `FK_BC6C9E4521B06187`;
ALTER TABLE dtb_shipment_item DROP FOREIGN KEY `FK_57C3C03921B06187`;
ALTER TABLE dtb_order_detail DROP FOREIGN KEY `FK_58FE357321B06187`;

(2)dtb_product_classテーブルを空にする。

(3)sqlをインポートする。アップロードファイル→参照、「実行」をクリック。

(4)下記SQLを実行して参照元テーブルに外部キーを復元する。

DELETE FROM dtb_tax_rule WHERE product_class_id NOT IN( SELECT product_class_id FROM dtb_product_class );
DELETE FROM dtb_product_stock WHERE product_class_id NOT IN( SELECT product_class_id FROM dtb_product_class );
DELETE FROM dtb_shipment_item WHERE product_class_id NOT IN( SELECT product_class_id FROM dtb_product_class );
DELETE FROM dtb_order_detail WHERE product_class_id NOT IN( SELECT product_class_id FROM dtb_product_class );
ALTER TABLE dtb_tax_rule ADD CONSTRAINT FK_59F696DE21B06187 FOREIGN KEY (product_class_id) REFERENCES dtb_product_class (product_class_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product_stock ADD CONSTRAINT FK_BC6C9E4521B06187 FOREIGN KEY (product_class_id) REFERENCES dtb_product_class (product_class_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_shipment_item ADD CONSTRAINT FK_57C3C03921B06187 FOREIGN KEY (product_class_id) REFERENCES dtb_product_class (product_class_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_order_detail ADD CONSTRAINT FK_58FE357321B06187 FOREIGN KEY (product_class_id) REFERENCES dtb_product_class (product_class_id) ON DELETE RESTRICT ON UPDATE RESTRICT;

9 dtb_product_image

外部キー制約なし

(1)空にする。

(2)sqlインポート

10 dtb_product_stock

外部キー制約なし

(1)空にする。

(2)sqlインポート

11 dtb_product_tag

外部キー制約なし

(1)空にする。

(2)sqlインポート

 

EC-CUBE3データ移行:phpMyAdminの基本操作

 

 

EC-CUBE3→EC-CUBE3機能カスタマイズ版

機能カスタマイズ版はインストールと同時に機能が実装されます。
詳しくは↓こちらをご覧ください。
EC-CUBE3機能カスタマイズ版 
EC-CUBE4機能カスタマイズ版

移行元のsqlをダウンロード

001 (1)移行元テーブル(dtb_AAA)の「エクスポート」タブをクリック。(2)エクスポート方法の「詳細」をチェックする。(3)フォーマット特有のオプションで、「データ」をチェックする。

(4)「実行」をクリックしてダウンロードする。

カスタマイズ版のテーブルを空にして、移行元のCSVをインポート

002 (1)空にするテーブル(dtb_AAA)の「操作」タブをクリック、「テーブルを空にする」をクリック。
 003  (2)エラーが発生する場合(エラーなしの場合は→(8)へ)
外部キー制約が設定されているテーブルは空に出来ないのでエラーが発生。
エラー画面で表示されている参照元テーブル(dtb_product_category)を確認する。
 004 (3)参照元テーブル(dtb_product_category)を開く。
(4)「構造」タブをクリック、タブのすぐ下「Relation view」をクリックすると外部キー制約が確認できる。
(5)外部キー制約欄の「空にするテーブル(dtb_category)」の以下をコピーしておく。
① Constraint properties→「FK_B057789112469DE2」
② カラム→「category_id」
 005  (6)下記SQLを実行して外部キーを削除する。

ALTER TABLE dtb_product_category DROP FOREIGN KEY `FK_B057789112469DE2`;
 002  (7)空にするテーブル(dtb_category)の「操作」タブをクリック、「テーブルを空にする」をクリック。
 006  (8)CSVをインポートする。アップロードファイル→参照、「実行」をクリック。
 007  (9)下記SQLを実行して参照元テーブル(dtb_product_category)に外部キーを復元する。

DELETE FROM dtb_product_category WHERE category_id NOT IN( SELECT category_id FROM dtb_category );
ALTER TABLE dtb_product_category ADD CONSTRAINT FK_B057789112469DE2 FOREIGN KEY (category_id) REFERENCES dtb_category (category_id) ON DELETE RESTRICT ON UPDATE RESTRICT;

 

EC-CUBE3:商品をカレンダーに表示する

このカスタマイズを現行サイトへ実装したい方はこちら

カスタマイズ内容

・カレンダーはブロックとして配置します。
・カレンダーは、jQueryプラグイン「Zabuto Calendar」を利用しています。
・商品登録に「カレンダー日付」欄が設置されます。「カレンダー日付」欄が登録されていれば、カレンダーに表示されます。
・商品登録に「販売終了日時」欄が設置されます。「販売終了日時」を過ぎると、カートボタンは表示されません。
・商品ページ(詳細・一覧)に「カレンダー日付」と「販売終了日時」が表示されます。
・商品一覧ページでは、「カレンダー日付順」(昇順)で並び替えることができます。
・1日に登録できる商品は1点だけです。1日に複数の商品を登録することはできません。
・管理画面の商品マスターに検索条件「カレンダー日付」が追加され、「カレンダー日付」で検索した場合、検索結果では商品が「カレンダー日付」順(昇順)に並びます。
・モーダルウィンドウの項目の表示・非表示は、管理画面のショップマスターで指定できます。

商品のカレンダー表示

・1日に登録できる商品は1点だけです。1日に複数の商品を登録することはできません。

001

続きを読む EC-CUBE3:商品をカレンダーに表示する

EC-CUBE3.0.16→3.0.17バージョンアップ

バージョンアップの方法

順番通りに行わないと、画面が真っ白になるなどの不具合が発生するので注意して下さい。
不具合が発生した場合は、(1)のファイルを削除し、(2)のApplication.phpを以前のファイルに戻すと回復します。
しばらく時間をおき、再度、順番通りの手順でアップロードを行って下さい。

(1)まずは、次の新規ファイルを追加します。(フォルダとファイルのパーミッションがサーバ指定のものになっているか確認して下さい)

■src/Eccube/Security/Http/Authentication/EccubeAuthenticationFailureHandler.php
■src/Eccube/Security/Http/Authentication/EccubeAuthenticationSuccessHandler.php

ここで一旦、ページが表示されるか確認してください。
ブラウザの更新等を行うといいでしょう。

(2)下記ファイルを上書きします。念のため、上書き前のファイルをバックアップしてください。

■src/Eccube/Application.php

上書き後、ページが表示されるか確認してください。
問題なければ、これで脆弱性に関するアップデートは完了です。

(3)バージョン3.0.17へアップデート

下記ファイルをアップロードしてください。
③の.htaccess(★印)は、サーバによっては不要な場合があります。
現在、サーバに、html/.htaccessが存在しない場合は、アップロードしないでください。

①■.htaccess.sample
②■composer.json
③■html/.htaccess★
④■src/Eccube/Common/Constant.php
⑤■src/Eccube/Controller/Admin/AdminController.php
⑥■src/Eccube/Controller/Admin/Setting/System/SecurityController.php
⑦■src/Eccube/Form/Type/Install/Step3Type.php
⑧■src/Eccube/Resource/locale/message.ja.yml
⑨■src/Eccube/Resource/template/admin/error.twig
⑩■src/Eccube/Resource/template/admin/index.twig

(4)管理画面、コンテンツ管理>キャッシュ管理

「translator」をチェックしてキャッシュ削除を行って下さい。

 

EC-CUBE3 通常配達・店頭引取システム

このカスタマイズを現行サイトへ実装したい方はこちら

  • 「通常配達」「店頭引取」のどちらかの機能のみを有効にすることも可能です。
  • 通常配達と店頭引取の機能を無効にすると、通常のEC-CUBEとして動作します。
  • 配達可能なエリアは郵便番号で登録します。
  • 機能が有効の場合、ユーザーはエリア外のお届け先を登録することはできません。
  • 配達日・引取日はカレンダーで選択します。受注停止日は選択できないようになります。
  • 受注停止日、受注開始日、受注停止時刻、カレンダーで選択できる表示期間などは管理画面で設定します。
  • 管理画面(受注管理)で、「通常配達」「店頭引取」を条件にして絞り込み検索ができます。
  • 受注CSV ダウンロード・配送CSV ダウンロードに追加されます。
  • 管理画面から受注登録が可能です。
  • 管理画面:マスターデータ管理で、「配達時間」「引取時間」を設定します。
  • ユーザーへのお知らせ手段として、ブロックとページが作成されます。ブロックとページには、管理画面の設定が自動的に反映されるので、特にtplファイルを編集する必要はありません。
  • 複数配送機能は無効にしなければいけません。

マニュアル(PDF)もご覧いただけます。

1 通常配達:ユーザーの購入の流れ

001

ショッピングカート画面で、配達で注文をクリックします。
ログイン中であれば、「ご注文内容のご確認」画面へ移動します。
ログイン中でなければ、ログイン画面が表示されます。

続きを読む EC-CUBE3 通常配達・店頭引取システム