發佈於

OPENCART 3.0.1.2 版中文化修正

//***********************************************************************************************//
中文化操作
//***********************************************************************************************//
選擇: [System] > [Localisation] > [Languages] > [Insert]

填入如下資料:

Language Name: 正體中文
Code: zh-TW
Locale: zh-TW,zh_TW.UTF-8,zh_TW,zh-tw,chinese
Status: Enabled
Sort Order: (建議輸入 2)

填好點擊 [Save] 儲存
—————————————————————

3. 把中文語系設置為預設語系。

選擇: [System] > [Settings] > [(Store) Edit] > [Local]

找到以下項目,都設定為 [正體中文]

前台語言Language: 正體中文
後台語言Administration Language: 正體中文

填好點擊 [Save] 儲存,儲存後後台介面將立即切換為正體中文。
//***********************************************************************************************//

#繁體中文修正
TRUNCATE `oc_language`;
INSERT INTO `oc_language` (`language_id`, `name`, `code`, `locale`, `image`, `directory`, `sort_order`, `status`) VALUES
(1, ‘繁體中文’, ‘zh-TW’, ‘zh-TW,zh_TW.UTF-8,zh_TW,zh-tw,chinese’, ‘zh-TW.png’, ‘zh-TW’, 1, 1);

#雙語的話
(1, ‘English’, ‘en-gb’, ‘en-US,en_US.UTF-8,en_US,en-gb,english’, ‘gb.png’, ‘english’, 1, 1);
(2, ‘正體中文’, ‘zh-TW’, ‘zh-TW,zh_TW.UTF-8,zh_TW,zh-tw,chinese’, ‘zh-TW.png’, ‘zh-TW’, 2, 1);

#前後台語言預設為1

//***********************************************************************************************//
#缺貨狀態名稱修正
TRUNCATE `oc_stock_status`;
INSERT INTO `oc_stock_status` (`stock_status_id`, `language_id`, `name`) VALUES
(7, 1, ‘有貨’),
(8, 1, ‘預購’),
(5, 1, ‘缺貨’),
(6, 1, ‘等待2 – 3天’);

TRUNCATE `oc_return_reason`;
INSERT INTO `oc_return_reason` (`return_reason_id`, `language_id`, `name`) VALUES
(1, 1, ‘商品運送途中已毀損’),
(2, 1, ‘商品不符’),
(3, 1, ‘訂單有錯誤’),
(4, 1, ‘故障, 請詳述’),
(5, 1, ‘其它, 請詳述’);

TRUNCATE `oc_return_status`;
INSERT INTO `oc_return_status` (`return_status_id`, `language_id`, `name`) VALUES
(1, 1, ‘待處理’),
(3, 1, ‘完成’),
(2, 1, ‘等待商品到貨’);

TRUNCATE `oc_return_action`;
INSERT INTO `oc_return_action` (`return_action_id`, `language_id`, `name`) VALUES
(1, 1, ‘退款’),
(2, 1, ‘退款至信用帳戶’),
(3, 1, ‘更換商品’);

#節日名稱修正
TRUNCATE `oc_voucher_theme_description`;
INSERT INTO `oc_voucher_theme_description` (`voucher_theme_id`, `language_id`, `name`) VALUES
(6, 1, ‘聖誕節’),
(7, 1, ‘生日’),
(8, 1, ‘基本’);

#尺寸名稱修正
TRUNCATE `oc_length_class_description`;
INSERT INTO `oc_length_class_description` (`length_class_id`, `language_id`, `title`, `unit`) VALUES
(1, 1, ‘公分’, ‘cm’),
(2, 1, ‘公厘’, ‘mm’),
(3, 1, ‘英吋’, ‘in’);

#重量名稱修正
TRUNCATE `oc_weight_class_description`;
INSERT INTO `oc_weight_class_description` (`weight_class_id`, `language_id`, `title`, `unit`) VALUES
(1, 1, ‘公斤’, ‘kg’),
(2, 1, ‘公克’, ‘g’),
(5, 1, ‘磅 ‘, ‘lb’),
(6, 1, ‘盎司’, ‘oz’);

#錢幣修正
TRUNCATE `oc_currency`;
INSERT INTO `oc_currency` (`currency_id`, `title`, `code`, `symbol_left`, `symbol_right`, `decimal_place`, `value`, `status`, `date_modified`) VALUES
(1, ‘新台幣’, ‘TWD’, ‘NT’, ”, ‘0’, 1.00000000, 1, ‘2017-07-13 12:13:16’),
(2, ‘人民幣’, ‘CNY’, ‘¥’, ”, ‘2’, 0.22229999, 1, ‘2017-07-12 16:24:23’),
(3, ‘港幣’, ‘HKD’, ‘HK’, ”, ‘2’, 0.25590000, 1, ‘2017-07-12 16:24:23’),
(4, ‘英鎊’, ‘GBP’, ‘£’, ”, ‘2’, 0.02560000, 1, ‘2017-07-12 16:24:23’),
(5, ‘美元’, ‘USD’, ‘$’, ”, ‘2’, 0.03280000, 1, ‘2017-07-12 16:24:23’),
(6, ‘歐元’, ‘EUR’, ”, ‘€’, ‘2’, 0.02870000, 1, ‘2017-07-12 16:24:23’);

#幣別預設

#商店資訊修正
TRUNCATE `oc_information_description`;
INSERT INTO `oc_information_description` (`information_id`, `language_id`, `title`, `description`, `meta_title`, `meta_description`, `meta_keyword`) VALUES
(4, 1, ‘關於我們’, ‘<p>\r\n 關於我們</p>\r\n’, ‘關於我們’, ”, ”),
(5, 1, ‘政策 & 條款’, ‘<p>\r\n 政策 & 條款</p>\r\n’, ‘政策 & 條款’, ”, ”),
(3, 1, ‘隱私權聲明’, ‘<p>\r\n 隱私權聲明</p>\r\n’, ‘隱私權聲明’, ”, ”),
(6, 1, ‘配送說明’, ‘<p>\r\n 配送說明</p>\r\n’, ‘配送說明’, ”, ”);

#模板名稱修正
TRUNCATE `oc_layout`;
INSERT INTO `oc_layout` (`layout_id`, `name`) VALUES
(1, ‘首頁(Home)’),
(2, ‘商品(Product)’),
(3, ‘目錄(Category)’),
(4, ‘預設(Default)’),
(5, ‘品牌(Manufacturer)’),
(6, ‘帳戶(Account)’),
(7, ‘結帳(Checkout)’),
(8, ‘聯絡(Contact)’),
(9, ‘網站導覽(Sitemap)’),
(10, ‘推薦帳戶(Affiliate)’),
(11, ‘商店訊息(Information)’),
(12, ‘商品比較(Compare)’),
(13, ‘商品搜尋(Search)’);

UPDATE `oc_layout` SET `name` = ‘快速結帳Quick Checkout’ WHERE `oc_layout`.`name` = ‘Quick Checkout’;

#訂單狀態
#SELECT * FROM `oc_order_status` 保留原版 16狀態
#修改 注意 狀態3 已出貨 和狀態5 已完成交易 不能更動名稱
TRUNCATE oc_order_status;
INSERT INTO `oc_order_status` (`order_status_id`, `language_id`, `name`) VALUES
(1, 1, ‘待處理’),
(2, 1, ‘訂單處理中’),
(3, 1, ‘已出貨 ‘),
(4, 1, ‘到店取貨–等待中’),
(5, 1, ‘已完成交易’),
(6, 1, ‘貨到付款–處理中’),
(7, 1, ‘已取消’),
(8, 1, ‘已拒絕’),
(9, 1, ‘取消恢復’),
(10, 1, ‘失敗’),
(11, 1, ‘已返還’),
(12, 1, ‘退款處理中…’),
(13, 1, ‘已退款’),
(14, 1, ‘已過期’),
(15, 1, ‘已處理’),
(16, 1, ‘空訂單’),
(17, 1, ‘ATM轉帳–請匯款’);

//***********************************************************************************************//
#國家修正
UPDATE `oc_country` SET `name` = ‘台灣’ WHERE `oc_country`.`country_id` = 206;

#`oc_geo_zone` 原本有2筆資料
#(3, ‘UK VAT Zone’, ‘UK VAT’, ‘2009-01-06 23:26:25’, ‘2010-02-26 22:33:24’),
#(4, ‘UK Shipping’, ‘UK Shipping Zones’, ‘2009-06-23 01:14:53’, ‘2010-12-15 15:18:13’);
TRUNCATE `oc_geo_zone`;
INSERT INTO `oc_geo_zone` (`geo_zone_id`, `name`, `description`, `date_modified`, `date_added`) VALUES
(1, ‘台灣本島’, ‘台灣本島’, ‘2016-01-26 15:39:54’, ‘2015-09-22 23:13:56’),
(2, ‘離島地區’, ‘澎湖金門離島地區’, ‘2016-01-26 15:40:49’, ‘2016-11-07 23:13:56’),
(3, ‘中國大陸’, ‘中華人民共和國’, ‘2016-11-07 23:05:47’, ‘2016-01-26 16:16:44’),
(4, ‘香港區’, ‘香港自治區’, ‘2016-11-07 23:09:55’, ‘2016-11-07 23:06:38’);

#地區修正3135~3159 舊中文版 3135~3156
#全台灣有22個縣市 英文版卻說我們有26個縣市
#先刪除再新增
DELETE FROM `oc_zone` WHERE `country_id` = 206;
INSERT INTO `oc_zone` (`zone_id`, `country_id`, `name`, `code`, `status`) VALUES
(3135, 206, ‘台北市’, ‘TPC’, 1),
(3136, 206, ‘基隆市’, ‘KLC’, 1),
(3137, 206, ‘新北市’, ‘NPC’, 1);
(3138, 206, ‘宜蘭縣’, ‘YL’, 1),
(3139, 206, ‘新竹市’, ‘HCC’, 1),
(3140, 206, ‘新竹縣’, ‘HC’, 1),
(3141, 206, ‘桃園市’, ‘TYC’, 1),
(3142, 206, ‘苗栗縣’, ‘ML’, 1),
(3143, 206, ‘台中市’, ‘TCC’, 1),
(3144, 206, ‘彰化縣’, ‘CH’, 1),
(3145, 206, ‘南投縣’, ‘NT’, 1),
(3146, 206, ‘嘉義市’, ‘CYC’, 1),
(3147, 206, ‘嘉義縣’, ‘CY’, 1),
(3148, 206, ‘雲林縣’, ‘YLI’, 1),
(3149, 206, ‘台南市’, ‘TNC’, 1),
(3150, 206, ‘高雄市’, ‘KHC’, 1),
(3151, 206, ‘澎湖縣’, ‘PH’, 1),
(3152, 206, ‘屏東縣’, ‘PT’, 1),
(3153, 206, ‘台東縣’, ‘TT’, 1),
(3154, 206, ‘花蓮縣’, ‘HL’, 1),
(3155, 206, ‘金門縣’, ‘KM’, 1),
(3156, 206, ‘連江縣’, ‘LC’, 1);
SELECT * FROM `oc_zone` WHERE `country_id` = 206

/*****************************************************************************************/
英文版卻有 25個
(3135, 206, ‘Chang-hua’, ‘CH’, 1),
(3136, 206, ‘Chia-i’, ‘CI’, 1);
(3137, 206, ‘Hsin-chu’, ‘HS’, 1),
(3138, 206, ‘Hua-lien’, ‘HL’, 1),
(3139, 206, ‘I-lan’, ‘IL’, 1),
(3140, 206, ‘Kao-hsiung county’, ‘KH’, 1),
(3141, 206, ‘Kin-men’, ‘KM’, 1),
(3142, 206, ‘Lien-chiang’, ‘LC’, 1),
(3143, 206, ‘Miao-li’, ‘ML’, 1),
(3144, 206, ‘Nan-t\’ou’, ‘NT’, 1),
(3145, 206, ‘P\’eng-hu’, ‘PH’, 1),
(3146, 206, ‘P\’ing-tung’, ‘PT’, 1),
(3147, 206, ‘T\’ai-chung’, ‘TG’, 1),
(3148, 206, ‘T\’ai-nan’, ‘TA’, 1),
(3149, 206, ‘T\’ai-pei county’, ‘TP’, 1),
(3150, 206, ‘T\’ai-tung’, ‘TT’, 1),
(3151, 206, ‘T\’ao-yuan’, ‘TY’, 1),
(3152, 206, ‘Yun-lin’, ‘YL’, 1),
(3153, 206, ‘Chia-i city’, ‘CC’, 1),
(3154, 206, ‘Chi-lung’, ‘CL’, 1),
(3155, 206, ‘Hsin-chu’, ‘HC’, 1),
(3156, 206, ‘T\’ai-chung’, ‘TH’, 1),
(3157, 206, ‘T\’ai-nan’, ‘TN’, 1),
(3158, 206, ‘Kao-hsiung city’, ‘KC’, 1),
(3159, 206, ‘T\’ai-pei city’, ‘TC’, 1),
英文版卻有 25個 非常神奇
3135 Chang-hua
3154 Chi-lung
3136 Chia-i
3153 Chia-i city
3137 Hsin-chu
3155 Hsin-chu
3138 Hua-lien
3139 I-lan
3158 Kao-hsiung city
3140 Kao-hsiung county
3141 Kin-men
3142 Lien-chiang
3143 Miao-li
3144 Nan-t’ou
3145 P’eng-hu
3146 P’ing-tung
3147 T’ai-chung
3156 T’ai-chung
3148 T’ai-nan
3157 T’ai-nan
3159 T’ai-pei city
3149 T’ai-pei county
3150 T’ai-tung
3151 T’ao-yuan
3152 Yun-lin 雲林
/*****************************************/
好奇多了哪3個
2010年12月25日,直轄市高雄市與臺灣省高雄縣合併為一新直轄市,仍名為「高雄市」
臺中縣市合併改制為臺中市。
臺南縣市合併改制為臺南市。
高雄縣市合併改制為高雄市。
/*****************************************/
#英文版卻有 25個
#先刪除再新增
DELETE FROM `oc_zone` WHERE `country_id` = 206;
INSERT INTO `oc_zone` (`zone_id`, `country_id`, `name`, `code`, `status`) VALUES
(3135, 206, ‘彰化縣’, ‘CH’, 1),
(3136, 206, ‘嘉義縣’, ‘CI’, 1),
(3137, 206, ‘新竹縣’, ‘HS’, 1),
(3138, 206, ‘花蓮縣’, ‘HL’, 1),
(3139, 206, ‘宜蘭縣’, ‘IL’, 1),
(3140, 206, ‘高雄縣’, ‘KH’, 0),
(3141, 206, ‘金門縣’, ‘KM’, 1),
(3142, 206, ‘連江縣’, ‘LC’, 1),
(3143, 206, ‘苗栗縣’, ‘ML’, 1),
(3144, 206, ‘南投縣’, ‘NT’, 1),
(3145, 206, ‘澎湖縣’, ‘PH’, 1),
(3146, 206, ‘屏東縣’, ‘PT’, 1),
(3147, 206, ‘臺中縣’, ‘TG’, 0),
(3148, 206, ‘臺南縣’, ‘TA’, 0),
(3149, 206, ‘新北市’, ‘TP’, 1),
(3150, 206, ‘台東縣’, ‘TT’, 1),
(3151, 206, ‘桃園市’, ‘TY’, 1),
(3152, 206, ‘雲林縣’, ‘YL’, 1),
(3153, 206, ‘嘉義市’, ‘CC’, 1),
(3154, 206, ‘基隆市’, ‘CL’, 1),
(3155, 206, ‘新竹市’, ‘HC’, 1),
(3156, 206, ‘台中市’, ‘TCC’, 1),
(3157, 206, ‘台南市’, ‘TNC’, 1),
(3158, 206, ‘高雄市’, ‘KHC’, 1),
(3159, 206, ‘台北市’, ‘TPC’, 1);

發佈於

2進位換算

<?php
/*
2進位換算
*/
class abc{
    const MAGIC = 0xA4424225;
    const BUYER = 0xAA;
    public $id =45;
    public function convS2H($id) {
        $id = self::MAGIC ^ ($id * self::BUYER);
        return strtoupper(dechex($id));
    }
    public function convH2S($hid) {
        $hid = hexdec($hid);
        return (self::MAGIC ^ $hid) / self::BUYER;
    }
}
$id=45;
$abc2= new abc;
$a01=$abc2->convS2H($id);
$a02=$abc2->convH2S($a01);
print_r($a01);
echo “<br>\n”;
print_r($a02);
echo “<br>”;
$id=45;
$MAGIC=0xA4424225;
$BUYER=0xAA;
        $id = $MAGIC ^ ($id * $BUYER);
        $a01= strtoupper(dechex($id));
        $hid = hexdec($a01);
        $a02= ($MAGIC ^ $hid) /$BUYER;
print_r($a01);
echo “<br>\n”;
print_r($a02);

#答案


A4425FC7
45
A4425FC7
45

發佈於

OPENCART 後台自己修改的部分

2017/07/06
=======================================
OPENCART 自寫後台-修正加權限簡化插件 累計修改
=======================================
admin/controller/common/dashboard.php            v1.0.0     後台首頁修改
admin/controller/catalog/product.php            v1.0.1    新增商品頁-簡化
admin/controller/catalog/category.php            v1.0.1    商品分類頁-簡化
admin/controller/common/column_left.php            v1.0.1    左選單區塊-簡化
admin/controller/common/header.php            v1.0.1    上區塊 改圖示加連結
admin/view/template/common/header.tpl            v1.0.2    上區塊 改圖示加連結
admin/view/javascript/common2.js            v1.0.2    上區塊 改圖示加連結
admin/view/template/common/dashboard2.tpl        v1.0.3    修改LOGO尺寸加版本號
======================================
#v1.0.2    20170706更動
admin/view/template/common/header.tpl
admin/view/javascript/common2.js
#v1.0.3    20170707更動
admin/view/template/common/dashboard2.tpl
———————————–
#翻譯修正再修正
———————————–
catalog/category/edit
 商品目錄=>商品分類
 上層目錄=>上層商品分類
 頂部目錄=>頂部
catalog/product/edit
 目錄=>商品分類
 型號=>產品代碼
 折扣=>團購
———————————–
#訂單狀態名稱修正
———————————–
保留原版 修改 注意 狀態3 已出貨 和狀態5 已完成交易 不能更動名稱
TRUNCATE oc_order_status          #清空舊表
INSERT INTO `oc_order_status` (`order_status_id`, `language_id`, `name`) VALUES
(1, 1, ‘待處理’),
(2, 1, ‘訂單處理中’),
(3, 1, ‘已出貨 ‘),
(4, 1, ‘到店取貨–等待中’),
(5, 1, ‘已完成交易’),
(6, 1, ‘貨到付款–處理中’),
(7, 1, ‘已取消’),
(8, 1, ‘已拒絕’),
(9, 1, ‘取消恢復’),
(10, 1, ‘失敗’),
(11, 1, ‘已返還’),
(12, 1, ‘退款處理中…’),
(13, 1, ‘已退款’),
(14, 1, ‘已過期’),
(15, 1, ‘已處理’),
(16, 1, ‘空訂單’),
(17, 1, ‘ATM轉帳–請匯款’);
發佈於

困擾300萬程式開發者的問題

困擾100萬開發者的程式問題 有100萬人 不知道要如何退出vim

我今天要嚴肅地講一個比如何退出vim更難的問題,這個 Git軟體操作 問題困老了300萬 開發者

那就是-到現在-還不會更換 GIT自己的大頭圖


關於大頭圖的說明
https://support.gitkraken.com/getting-started/profiles
大頭圖要去這網站申請
https://zh-tw.gravatar.com/
gravatar 是wordpress.com的服務所以要先有WordPress.com帳號
你好!使用您的WordPress.com帳戶登錄Gravatar。
=======================================
#論壇wordpress
=======================================
https://zh-tw.wordpress.com/
suffixbig@gmail.com  (密碼13碼且有大寫英文字母混用)
注意:註冊wordpress.com帳號需要 認證 EMAIL
=======================================
#結論

git軟體裡面沒有可以設你大頭圖的地方,你能設定的東西是你的信箱帳號,
而他會用你EMail帳號 去抓 你在gravatar.com 網站 所設定的大頭圖
以下附上換圖成功的拮圖
 
換圖成功
發佈於

網址解析

parse_url($data, PHP_URL_SCHEME); //切出 http 的部分
$url = ‘http://username:password@hostname/path?arg1=value1&arg2=value2#anchor’;
print_r(parse_url($url));
首先,先看一下這個程式的輸出結果
Array (
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg1=value1&arg2=value2
[fragment] => anchor )
其中,scheme是指他走的路線,而host則是站台網址,user則是使用者名稱,pass則是密碼,path則是路徑,query則是參數,fragment則是錨點。
而在「$component」的部份,則是有以下的參數可供傳遞。
PHP_URL_SCHEME
PHP_URL_HOST
PHP_URL_USER
PHP_URL_PASS
PHP_URL_PATH
PHP_URL_QUERY
PHP_URL_FRAGMENT
而這幾個參數則分別代表了Array中的scheme、host、user、pass、path、query和fragment。

發佈於

OPENCART購物車-電子票劵下載檔案系統購買流程SOP與可能發生錯誤之原因

OPENCART購物車-電子票劵下載檔案系統購買流程SOP與可能發生錯誤之原因

OPENCART
您沒有購買過任何可下載的數位商品
下載文件
尚無含有下載文件的訂單!

原因

他是用訂單狀態去判斷你能否下載檔案
(3,’貨到付款–處理中’)或(5,’線上刷卡–處理中’)這2個狀態才會有下載檔案
而你增加一個訂單狀態如(7, 1, ‘已完成交易’)的話
會員下載文件資料就會變成不能下載,因為不論有幾個狀態,最後的狀態為準
OPENCART 下載檔案系統必定修改的地方 就是
\catalog\model\account\download.php 裡面 AND (o.order_status_id = ‘5’ OR o.order_status_id = ‘3’)
應該改成7和8才對
—————————————–
(1, 1, ‘待處理’),
(2, 1, ‘訂單處理中’),
(3, 1, ‘貨到付款–處理中’),
(4, 1, ‘ATM轉帳–請匯款’),
(5, 1, ‘線上刷卡–處理中’),
(6, 1, ‘到店取貨–等待中’),
(7, 1, ‘已完成交易’),
(8, 1, ‘已出貨’),
(9, 1, ‘已取消’),
(10, 1, ‘退款處理中…’);
〠▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧
#假設你要賣 電子票劵‎
〠▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧
1.別的網站如何賣票券
    http://support.accupass.com/knowledgebase/articles/150617-%E9%9B%BB%E5%AD%90%E7%A5%A8%E5%88%B8%E4%BD%BF%E7%94%A8%E6%87%B6%E4%BA%BA%E5%8C%85
    https://www.okbon.com/
    https://www.okbon.com/detail.php?unit=34 內容大致如下
〠▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧
#後台 電子票劵 下載型數位商品 功能 設定流程‎
〠▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧
登入後台=>商品管理=>數位商品下載
        新增
            檔案名稱
            偽裝
#檔案真實位置 和檔名
\system\storage\download
\system\storage\download\qrcode.png.TQGptDfUmZyLZbkWQukscwJ9F2Xd482k
〠▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧
#前台 電子票劵‎ 購買流程
〠▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧▧
已完成訂購
    您的訂單已成功送出,我們會在儘快處理!
    您可以到 會員專區, 或點擊 訂購記錄 查看訂單記錄。
    如果您的購買有相關的下載,您可以到 下載頁面 下載。
    如有任何問題或意見,請 連絡我們。
    感謝您的訂購!
=============================================
#訂單狀態 要哪一種才會出現下載文件
=============================================
訂單狀態 已出貨     無用
訂單狀態 已完成交易     無用
OPENCART
您沒有購買過任何可下載的數位商品
下載文件
尚無含有下載文件的訂單!
————————————————————————-
(1, 1, ‘待處理’),
(2, 1, ‘訂單處理中’),
(3, 1, ‘貨到付款–處理中’),
(4, 1, ‘ATM轉帳–請匯款’),
(5, 1, ‘線上刷卡–處理中’),
(6, 1, ‘到店取貨–等待中’),
(7, 1, ‘已完成交易’),
(8, 1, ‘已出貨’),
(9, 1, ‘已取消’),
(10, 1, ‘退款處理中…’);
訂單狀態要 3 和 5 才會有下載文件
後台
    智付寶Pay2go的訂單初始狀態(Order Default Status):要設為線上刷卡–處理中’
    編輯貨到付款模組-訂單狀態-貨到付款–處理中
=============================================
#程式位置
=============================================
/index.php?route=account/download                下載清單
/index.php?route=account/download/download&download_id=1    下載程式
=============================================
#相關資料表
SELECT * FROM     `oc_upload`        上傳檔案
SELECT * FROM    `oc_product_to_download`    商品下載資料表
=============================================
上傳檔案
INSERT INTO `oc_upload` (`upload_id`, `name`, `filename`, `code`, `date_added`) VALUES
(1, ‘0006.jpg’, ‘0006.jpg.rKbDQeXofbieNRQddYQZyLjinABdX246′, ’25ce74194786aad9690ecc7b2e83040e27ed80f3’, ‘2017-05-04 16:45:08’);
#商品id,下載id 對應表 product_to_download=>download_id對應upload=>upload_id
INSERT INTO `oc_product_to_download` (`product_id`, `download_id`) VALUES
(10, 1),
(12, 1);
=============================================
#撈資料的條件
=============================================
SELECT DISTINCT d.download_id, o.order_id, o.date_added, dd.name, d.filename FROM `oc_order` o LEFT JOIN oc_order_product op ON (o.order_id = op.order_id) LEFT JOIN oc_product_to_download p2d ON (op.product_id = p2d.product_id) LEFT JOIN oc_download d ON (p2d.download_id = d.download_id) LEFT JOIN oc_download_description dd ON (d.download_id = dd.download_id) WHERE o.customer_id = ‘4’ AND dd.language_id = ‘1’ AND (o.order_status_id = ‘5’ OR o.order_status_id = ‘3’) ORDER BY o.date_added DESC LIMIT 0,15
#分析
SELECT DISTINCT d.download_id, o.order_id, o.date_added, dd.name, d.filename FROM `oc_order` o
LEFT JOIN oc_order_product op ON (o.order_id = op.order_id) LEFT JOIN oc_product_to_download p2d ON (op.product_id = p2d.product_id) LEFT JOIN oc_download d ON (p2d.download_id = d.download_id) LEFT JOIN oc_download_description dd ON (d.download_id = dd.download_id) WHERE o.customer_id = ‘4’ AND dd.language_id = ‘1’ AND (o.order_status_id = ‘5’ OR o.order_status_id = ‘3’)
ORDER BY o.date_added DESC LIMIT 0,15
使用資料表
oc_order        訂單
oc_order_product    購買的商品
oc_product_to_download    商品下載資料表
oc_download
———————————————————–
order_status_id 訂單狀態(關聯order_status主鍵)
(1, 1, ‘待處理’),
(2, 1, ‘訂單處理中’),
(3, 1, ‘貨到付款–處理中’),
(4, 1, ‘ATM轉帳–請匯款’),
(5, 1, ‘線上刷卡–處理中’),
(6, 1, ‘到店取貨–等待中’),
(7, 1, ‘已完成交易’),
(8, 1, ‘已出貨’),
(9, 1, ‘已取消’),
(10, 1, ‘退款處理中…’);
條件
o.customer_id = ‘4’ AND dd.language_id = ‘1’
o.order_status_id = ‘5’ OR o.order_status_id = ‘3’
表示
SELECT * FROM `oc_order` 這裡面 會員的註冊ID 和 order_status_id 要為5或3
=============================================
#錯誤的原因
=============================================
SELECT * FROM `oc_order` 這裡面的 order_status_id 要為5或3
也就是
(3,’貨到付款–處理中’)或(5,’線上刷卡–處理中’)這2個狀態才會有下載檔案
而你增加一個訂單狀態如(7, 1, ‘已完成交易’)的話
會員下載文件資料就會變成不能下載,因為不論有幾個狀態,最後的狀態為準
=============================================
#進階修正法
=============================================
OPENCART 下載檔案系統必定修改的地方 就是
\catalog\model\account\download.php 裡面 AND (o.order_status_id = ‘5’ OR o.order_status_id = ‘3’)
應該改成7和8才對
—————————————–
或是不改程式你修正資料庫的資料也可以
SELECT * FROM `oc_order_status`
資深工程師重整版
(1, 1, ‘待處理’),
(2, 1, ‘訂單處理中’),
(3, 1, ‘貨到付款–處理中’),
(4, 1, ‘ATM轉帳–請匯款’),
(5, 1, ‘線上刷卡–處理中’),
(6, 1, ‘到店取貨–等待中’),
(7, 1, ‘已完成交易’),
(8, 1, ‘已出貨’),
(9, 1, ‘已取消’),
(10, 1, ‘退款處理中…’);
原版-少了4和6
(2, 1, ‘處理中’),
(3, 1, ‘已配送’),
(7, 1, ‘已取消’),
(5, 1, ‘已完成’),
(8, 1, ‘已拒絕’),
(9, 1, ‘取消恢復’),
(10, 1, ‘失敗’),
(11, 1, ‘已返還’),
(12, 1, ‘Reversed’),
(13, 1, ‘已退款’),
(1, 1, ‘待處理’),
(16, 1, ‘空訂單’),
(15, 1, ‘已處理’),
(14, 1, ‘已過期’);
#英文對照
(1, 1, ‘Pending’),
(2, 1, ‘Processing’),
(3, 1, ‘Shipped’),
(7, 1, ‘Canceled’),
(5, 1, ‘Complete’),
(8, 1, ‘Denied’),
(9, 1, ‘Canceled Reversal’),
(10, 1, ‘Failed’),
(11, 1, ‘Refunded’),
(12, 1, ‘Reversed’),
(13, 1, ‘Chargeback’),
(14, 1, ‘Expired’),
(15, 1, ‘Processed’),
(16, 1, ‘Voided’),
#本人作法1
保留原版 修改 注意 狀態3 已出貨 和狀態5 已完成交易 不能更動名稱
TRUNCATE oc_order_status          #清空舊表
INSERT INTO `oc_order_status` (`order_status_id`, `language_id`, `name`) VALUES
(1, 1, ‘待處理’),
(2, 1, ‘訂單處理中’),
(3, 1, ‘已出貨 ‘),
(4, 1, ‘到店取貨–等待中’),
(5, 1, ‘已完成交易’),
(6, 1, ‘貨到付款–處理中’),
(7, 1, ‘已取消’),
(8, 1, ‘已拒絕’),
(9, 1, ‘取消恢復’),
(10, 1, ‘失敗’),
(11, 1, ‘已返還’),
(12, 1, ‘退款處理中…’),
(13, 1, ‘已退款’),
(14, 1, ‘已過期’),
(15, 1, ‘已處理’),
(16, 1, ‘空訂單’),
(17, 1, ‘ATM轉帳–請匯款’);
—————————————————————–
#本人作法2
#使用修改\catalog\model\account\download.php 裡面 AND (o.order_status_id = ‘7’ OR o.order_status_id = ‘8’)
TRUNCATE oc_order_status
INSERT INTO `oc_order_status` (`order_status_id`, `language_id`, `name`) VALUES
(1, 1, ‘待處理’),
(2, 1, ‘訂單處理中’),
(3, 1, ‘貨到付款–處理中’),
(4, 1, ‘ATM轉帳–請匯款’),
(5, 1, ‘線上刷卡–處理中’),
(6, 1, ‘到店取貨–等待中’),
(7, 1, ‘已完成交易’),
(8, 1, ‘已出貨’),
(9, 1, ‘已取消’),
(10, 1, ‘已返還’),
(11, 1, ‘退款處理中…’),
(12, 1, ‘已退款’),
(13, 1, ‘已過期’),
(14, 1, ‘已處理’),
(15, 1, ‘空訂單’);
發佈於

OPENCART一頁式結帳模組-中文化與認證機制皆被我研究出來了

2017/05/31******************************************************************************************************
一頁式結帳-前台啟動條件
if ($this->config->get(‘quickcheckout_status’) && $this->validated()) {
1.$this->config->get(‘quickcheckout_status’) 該商店啟用
2.$this->validated 憑證通過vendor/equotix/quickcheckout/equotix.php 155行 用curl送值和接收
//==============================================================================================================
protected function validated() {
$this->callbackServer($this->config->get($this->code . ‘_license_license_key’), false);
return $this->config->get($this->code . ‘_license_license_key’) ? true : false;
}
//==============================================================================================================

#寫了一隻測試程式 看$this->config->get(‘quickcheckout_status’) 和 $this->validated
view-source:http://o03.test.com/index.php?route=test
========================================================================================================
protected $code = ‘quickcheckout’;
protected $extension_id = ’58’;

[quickcheckout_license_date_expired] => 29 May 2018
[quickcheckout_license_license_key] => xxxxxxx-xxxxxx-fabb673-9c40513-3b17864-ff16b4b
[quickcheckout_license_order_id] => 876666
[quickcheckout_license_name] => gggg
[quickcheckout_license_date_purchased] => 29 May 2017
[quickcheckout_field_address_1] => Array

http://o03.test.com/index.php?route=test
http://o03.test.com/index.php?route=quickcheckout/checkout #一頁結帳頁面 -手動過去
正常會返回8個值

=======================================
#POST送出的值
=======================================
[license_key] => oc52284-ceba4f2-fabb673-9c40513-3b17864-ff16b4b
[extension_id] => 58
[domain] => apm013.surehigh.com.tw //去除www.// 去除http://// 去除/ //轉小寫
=======================================
#CURL返回的值
[success] => 1 #成功或失敗
[license_key] => xxxxxxx-xxxxxx-fabb673-9c40513-3b17864-ff16b4b
[order_id] => 876666 #訂單號
[name] => gggg #購買人
[date_purchased] => 26 May 2017 #授權購買日
[date_expired] => 26 May 2018 #授權到期日
[domains] => Array([0] => Array(
[domain] => apm013.surehigh.com.tw
[date_added] => 26 May 2017
))
[services] => Array
[service] => Change Admin URL
[cost] => Only $39

[service] => OpenCart Upgrade
[cost] => Only $69

[service] => Professional Extension Installation
[cost] => Only $99

[service] => Custom Development
[cost] => From $139

[service] => Resolve Errors in Error Log
[cost] => Only $299

[service] => Website Audit
[cost] => Only $699
=======================================

//自行製造返回內容 S**********************************************************/
$response=array(‘success’ => 1,//#成功或失敗
‘license_key’=> ‘xxxxxxx-xxxxxx-fabb673-9c40513-3b17864-ff16b4b’,//許可證號
‘order_id’=> ‘874189’,//#訂單號
‘name’=> ‘gggg’,//#購買人
‘date_purchased’=> ’26 May 2017’,//#授權購買日
‘date_expired’=> ’26 May 2018’);//#授權到期日
$response[‘domains’][]=array(‘domain’ => ‘apm013.surehigh.com.tw’,’date_added’ => ’29 May 2017′);//允許授權網址
$response[‘services’][]=array(‘service’ => ‘更改管理後台網址’,’cost’=>’$39′);
$response[‘services’][]=array(‘service’ => ‘升級 OpenCart’,’cost’=>’$69′);
$response[‘services’][]=array(‘service’ => ‘專業擴展包安裝’,’cost’=>’$99′);
//自行製造返回內容 END**********************************************************/
=======================================
#有8個值 要寫入設定
=======================================
$this->code . ‘_license_license_key’ => ”,
$this->code . ‘_license_order_id’ => ”,
$this->code . ‘_license_name’ => ”,
$this->code . ‘_license_date_purchased’ => ”,
$this->code . ‘_license_date_expired’ => ”,
$this->code . ‘_license_domains’ => array(),
$this->code . ‘_license_check’ => time(),
$this->code . ‘_license_services’ => ”

=======================================
#資料表記的位置
=======================================
SELECT * FROM `OPENCART`.`oc_setting` WHERE code =’quickcheckout_license’

setting_idstore_idcodekeyvalueserialized2690quickcheckout_licensequickcheckout_license_date_expired26 May 201802700quickcheckout_licensequickcheckout_license_domains[{“domain”:”apm013.surehigh.com.tw”,”date_added”:”…12710quickcheckout_licensequickcheckout_license_check149622471302720quickcheckout_licensequickcheckout_license_services[{“service”:”\u66f4\u6539\u7ba1\u7406\u5f8c\u53f0\…12680quickcheckout_licensequickcheckout_license_date_purchased26 May 201702670quickcheckout_licensequickcheckout_license_namesuffix NO.1002650quickcheckout_licensequickcheckout_license_license_keyoc52284-ceba4f2-fabb673-9c40513-3b17864-ff16b4b02660quickcheckout_licensequickcheckout_license_order_id874189

[{“domain”:”apm013.surehigh.com.tw”,”date_added”:”26 May 2017″}]

——————————————————————————————-
#手動看他有幾種訊息
——————————————————————————————-
http://license.marketinsg.com/index.php?load=common/home/checkUpdate #按下Update時
http://license.marketinsg.com/index.php?load=common/home/validatelicense #檢查全縣 每48小時檢查一次
——————————————————————————————-
http://apm013.surehigh.com.tw/index.php?route=test #手動執行-強制認證 不等48小時
http://license.marketinsg.com/index.php?load=common/home/validatelicense #目標
成功只會返回
Array ( [error] => [success] => 1 ) {“success”:true}
失敗狀況
——————————————————————————————-
#domain 密鑰通過 網址不對 比對部分 surehigh.com.tw apm013.surehigh.com.tw 子網域也不行
Array ( [error] => License key has reached its limit. Please verify your license key and its usage on http://license.marketinsg.com. [success] => ) {“error”:”License key has reached its limit. Please verify your license key and its usage on http:\/\/license.marketinsg.com.”}
許可證密鑰已經達到極限。 請驗證您的許可證密鑰及其在http://license.marketinsg.com上的用途。
——————————————————————————————-
#沒POST license_key 過去
Array ( [error] => Invalid license key entered. [success] => ) {“error”:”Invalid license key entered.”}
輸入的許可證密鑰無效
——————————————————————————————-
D:\wamp\www\o03\catalog\controller\test.php 的內容
$license_key=”oc52284-ceba4f2-fabb673-9c40513-3b17864-ff16b4b”;
$license_info = $this->callbackServer($license_key, true); //呼叫權限檢查

——————————————————————————————-
目標
http://license.marketinsg.com/index.php?load=common/home/checkUpdate #按下Update時
//按下Update的動作
/*
正常送出
Array ( [license_key] => oc52284-ceba4f2-fabb673-9c40513-3b17864- [version] => 10.1.0
正常傳回
恭喜!您正在使用最新版本的擴展名。
{“type”:”alert alert-success”,”message”:”Congratulations! You are using the latest version of the extension.”}
——————————————————————————————-
結果
正常
{“type”:”alert alert-success”,”message”:”Congratulations! You are using the latest version of the extension.”}
{“type”:“alert alert-success”,“message”:“恭喜!您正在使用最新版本的擴展名。”}
——————————————————————————————-
{“type”:”alert-danger”,”message”:”We are unable to retrieve your license information. Please contact us if you require assistance.”}
{“type”:“alert-danger”,“message”:“我們無法檢索您的許可證信息,如果需要幫助,請與我們聯繫。”}

發佈於

自架購物平台-OpenCart購物商城1-檔案篇

免費的電子購物車系統很多,包括OpenCart, Magento, osCommerce, zenCart, PrestaShop等等,在華文世界中OpenCart由於中文化的很早,而且有一些人無償在推廣(以http://blog.dnono.com最為著名)

下載

OpenCart 2.0.2.0 中文化的版本請至opencart 2 中文版 (www.opencart.idv.tw)下載。
版本2.3.0.2
發佈日期2016/09/19
更新日期2016/09/19

注意:以下步驟適用於全新安裝,如果您要升級現有的購物車請觀看Upgrade.txt文件
——-
INSTALL
——-
此安裝指南適用FTP、cPanel 或其他的主機操作介面。
– Linux 安裝方式 –
1. 上傳 “Upload” 文件夾內的所有檔案至你的主機空間根目錄下,根目錄名稱會因主機所使用的管理程式而有所差異,例如:cPanel 的根目錄應該是 public_html/ 、而 Plesk 的根目錄則是httpdocs/
2. 將”網站根目錄”和”admin目錄”下的config-dist.php檔案,名稱修改為config.php
3. 如果您是使用 Linux/Unix 系統,請確定以下檔案和文件夾是可寫入的狀態
        chmod 0755 or 0777 system/storage/cache/
        chmod 0755 or 0777 system/storage/logs/
        chmod 0755 or 0777 system/storage/download/
        chmod 0755 or 0777 system/storage/upload/
        chmod 0755 or 0777 system/storage/modification/
        chmod 0755 or 0777 image/
        chmod 0755 or 0777 image/cache/
        chmod 0755 or 0777 image/catalog/
        chmod 0755 or 0777 config.php
        chmod 0755 or 0777 admin/config.php
        如果 0755 權限尚無法正常運作,可嘗試使用 0777 權限
4. 請確定您已經創建了MySQL的資料庫,並取得該資料庫的用戶資格
    (為了安全,請不要使用root用戶和密碼)
5. 瀏覽網站 例如: http://www.example.com 或 http://www.example.com/store/
6. 按照網頁指示的步驟進行安裝
7. 安裝完成後請刪除主機內的install目錄資料
8. 如果您已下載包含vendor資料夾的compiled版本且需要使用此功能,則vendor資料夾應該上傳至網站根目錄的上層目錄(和public_html or httpdocs目錄同一層)
– Windows 安裝方式 –
1. 上傳 “Upload” 文件夾內的所有檔案至你的主機空間根目錄下,例如:/wwwroot/store 或 /wwwroot
2. 將”網站根目錄”和”admin目錄”下的config-dist.php檔案,名稱修改為config.php
3. 請確定以下檔案和文件夾是可讀寫的狀態
        system/cache/
        system/logs/
        system/download/
        system/upload/
        image/
        image/cache/
        image/catalog/
        config.php
        admin/config.php
4. 請確定您已經創建了MySQL的資料庫,並取得該資料庫的用戶資格
    (為了安全,請不要使用root用戶和密碼)
5. 瀏覽網站 例如: http://www.example.com 或 http://www.example.com/store/
6. 按照網頁指示的步驟進行安裝
7. 安裝完成後請刪除主機內的install目錄資料
– 本地安裝方式 –
下面列出一些可幫助您快速建構本地運作環境的程式。
http://www.apachefriends.org/en/xampp.html
http://www.ampps.com/
http://www.usbwebserver.net
http://www.wampserver.com/en/
 – 備註 –
Godaddy 虛擬主機問題
如果使用 godaddy 的虛擬主機,您可能需要將”網站根目錄”和”admin目錄”下的php.ini檔案,名稱修改為 user.ini
—————————-
COMPOSER OR NOT TO COMPOSER
—————————-
從2.2版加入了有助於開發者的composer。同時有兩個版本(已編譯和未編譯)可依需求使用。
我們強烈建議將vendor資料夾放置於非網站根目錄下以確保檔案不會被直接訪問
Composer installing is extremely simple – https://getcomposer.org