單狀態 JavaScript 資產
您可以通過使用 Shopify 后臺中的自定義腳本框,將 JavaScript 添加到結帳的訂單狀態頁面(以前稱為“感謝”頁面)。
Shopify.Checkout.OrderStatus JavaScript 資產可用于向訂單狀態頁面添加多種類型的內容,包括:
-特定產品的備注
-單個發貨方式的說明
-數字產品的下載鏈接。
也可以通過 ScriptTag 訪問此 JavaScript 資源。
如何實現
Shopify.Checkout.OrderStatus 包含用于生成新內容的函數:
addContentBox(params)
此函數添加一個內容框,從其中傳遞給該函數的每個參數都呈現為單獨的行。
函數內部支持 HTML5,并且您可以在函數外部使用 liquid。
示例
您可以在使用了特定的發貨方式時添加內容:
{% if checkout.shipping_method.title == 'Pick-up at the store' %}
Shopify.Checkout.OrderStatus.addContentBox(
'
'
We are open everyday from 9am to 5pm.
'
)
{% endif %}
(來源:Shopify)
以上內容屬作者個人觀點,不代表雨果網立場!如有侵權,請聯系我們。
相關鏈接:Shopify后臺怎么復制現有訂單?Shopify復制現有訂單操作一覽
之前我們在前端頁面的操作處,只是直接顯示了下載兩個字,現在我們要想實現點擊“下載”文本鏈接時將相應的文件下載到電腦中。我們先修改index.html文件:
<td><a href="download/?fileurl={{ row_data.fileObj }}">下載</a></td>
通過get方式向后臺download路由傳遞數據。
然后我們修改urls.py,注意這里由于要使用正則表達式,所以用的re_path:
re_path('download/(?P<fileurl>.*)',views.Download,name='download'),
注:fileurl不知為什么沒起使用
接著編寫了views.py中的代碼:
def Download(request,fileurl):
url = os.path.join("." + MEDIA_URL,request.GET['fileurl'])
file_name = re.findall(".*/(.*?$)",url)[0]
response = StreamingHttpResponse(file_iterator(url))
# 以流的形式下載文件,這樣可以實現任意格式的文件下載
response['Content-Type'] = 'application/octet-stream'
# Content-Disposition就是當用戶想把請求所得的內容存為一個文件的時候提供一個默認的文件名
response['Content-Disposition'] = 'attachment;filename="{}"'.format(file_name)
return response
這個函數的作用是取得url,注意url完整地址是:./upload/年/月/日/文件名,在這里我搞了很久很久。
網上還提供了一個文件生成器:
def file_iterator(file_path, chunk_size=512):
"""
文件生成器,防止文件過大,導致內存溢出
:param file_path: 文件絕對路徑
:param chunk_size: 塊大小
:return: 生成器
"""
with open(file_path, mode='rb') as f:
while True:
c = f.read(chunk_size)
if c:
yield c
else:
break
最后重啟服務,點擊下載,但毫不意外的又出現了意外,但凡文件名中有中文的,下載時僅顯示一個download:
上網搜索了一下:
導入一個方法:
from django.utils.encoding import escape_uri_path
然后在將該方法應用到file_name上:
response['Content-Disposition'] = 'attachment;filename="{}"'.format(escape_uri_path(file_name))
再次點擊下載,終于成功了!
目前為止,只有一個administrator帳號,為了交付給同事使用,需要創建幾個帳號。
首先我們通過127.0.0.1:8000/admin登錄后臺管理,在站點管理這里增加帳號:
增加了一個帳戶后,我們通過右上角的“注銷”來退出administrator,然后使用新的帳號進行登錄。
昨天創建帳號后,密碼是明文,我還特意去網上找了解決方法,本來今天要寫到這個文檔中,結果今天發現又正常了,不過我決定還是將其寫到這一步驟當中,只能說Django中真的是太多坑了!
先在models.py中創建一個UserProfile的表,該表繼承自AbstractUser,添加如下代碼:
from django.contrib.auth.models import AbstractUser
from django.db import models
class UserProfile(AbstractUser):
phone = models.CharField(max_length=11,verbose_name='手機號',null=True,blank=True)
然后在admini.py中添加如下代碼:
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.utils.translation import gettext_lazy
from .models import UserProfile
@admin.register(UserProfile)
class UserProfileAdmin(UserAdmin):
list_display = ['username','password']
list_per_page = 10
add_fieldsets = (
(None, {u'fields': ('username', 'password1', 'password2')}),
(gettext_lazy('User Information'), {'fields': ( 'phone',)}),
)
這樣添加后,在admin后臺創建用戶后就能解決了。
由于會有多個人參與附件管理,所以在修改用戶信息時,給創建了一個組,并為組選擇了如下幾個權限:
這樣的話以后新增加上傳用戶時只需要選擇這個組就可以了,更加方便管理。
天給大家演示的是一款由jsp+servlet+mysql實現的在線圖書商城系統,主要分為前臺后后臺管理員功能,前臺用戶可以瀏覽查看各類圖書信息,可自定義搜索,注冊登錄后可以將書添加到購物車,購物車中的商品可以提交訂單,本系統集成了在線支付的接口,但是個人沒有辦法申請在線支付的賬號,所以我在后臺加了個管理員可以模擬支付成功的按鈕,方便大家走完流程,如果你有可以申請在線支付的資格的話也可以申請后把appid和secret填到配置文件中就可以在線支付了。后臺管理員可以管理圖書分類信息、圖書信息、訂單信息等等。系統項目源代碼在【猿來入此】獲取!https://www.yuanlrc.com/product/details.html?pid=173&fuid=6666此外本系統配置有完整的論文、開題報告、前后臺詳細設計實現文檔及答辯細節提問答疑等,還有論文寫作指導教程,非常詳細,還配有視頻配置導入運行教程和快速修改系統教程,
*請認真填寫需求信息,我們會在24小時內與您取得聯系。