部署PrestaShop
- PrestaShop: https://hub.docker.com/r/prestashop/prestashop
vim startprestashop.sh
:
#/bin/bash
# create a network for containers to communicate
docker network create prestashop-net
# 启动MySQL5.7容器。注意,官方的说明不可靠,MySQL没有挂载数据卷,重启服务器后,数据可能丢失。
docker run --name santic-mysql --network prestashop-net -e MYSQL_ROOT_PASSWORD=admin -v ./mysql/mysql.cnf:/etc/mysql/conf.d/mysql.cnf:ro -v ./mysql/var/lib/mysql:/var/lib/mysql/:rw -p 3307:3306 -d mysql:5.7
# launch prestashop container
docker run --name santic-prestashop --network prestashop-net -e DB_SERVER=santic-mysql -p 8000:80 -v /root/prestashop:/var/www/html -d prestashop/prestashop:8.2.1
- 手动安装
- 数据库服务器地址:填写容器名:
santic-mysql
- 数据库名称:
prestashop
。数据库登录名:root
。 - 数据库用户密码:
admin
。实际是看启动容器时,MYSQL_ROOT_PASSWORD=admin
这个参数的具体数值。 - 服务器的
prestashop项目源码
, 里面有个admin
文件夹, 安装成功后,会被重命名。比如adminabc123456xxx
- 进入服务器,删除
install
文件夹。 - 访问链接:
http://xxxx.com/adminabc123456xxx
进管理后台。链接以被重命名的admin
文件夹名为准。
定制外部电商平台商品链接
需求:
我在PrestaShop的管理后台,`分类` - `属性和功能` - `特性` 这个选项卡中,定义了一个名为 `link_url` 的新特性,用来定义外部网页的字符串。在商品中使用这个特性。使用方法是:如果使用了这个特性,就创建一个按钮,跳转到这个特性对应的外部网页。
修改代码:
# vim themes/classic/templates/catalog/product.tpl
{if $product.features}
{foreach $product.features as $feature}
{if $feature.name == 'link_url' && $feature.value}
<a href="{$feature.value|escape:'html':'UTF-8'}"
class="btn btn-primary external-link"
target="_blank"
rel="noopener noreferrer">
{l s='访问亚马逊' d='Shop.Theme.Actions'}
</a>
{/if}
{/foreach}
{/if}
或者:
# vim themes/classic/templates/catalog/_partials/product-add-to-cart.tpl
{block name='product_quantity'}
<div class="product-quantity clearfix">
<div class="qty">
<input
type="number"
name="qty"
id="quantity_wanted"
inputmode="numeric"
pattern="[0-9]*"
{if $product.quantity_wanted}
value="{$product.quantity_wanted}"
min="{$product.minimal_quantity}"
{else}
value="1"
min="1"
{/if}
class="input-group"
aria-label="{l s='Quantity' d='Shop.Theme.Actions'}"
>
</div>
<div class="add">
{if $product.features}
{foreach $product.features as $feature}
{if $feature.name == 'LinkUrl' && $feature.value}
<a href="{$feature.value|escape:'html':'UTF-8'}"
class="btn btn-primary external-link"
target="_blank"
rel="noopener noreferrer">
<i class="material-icons shopping-cart"></i>
{l s='Buy' d='Shop.Theme.Actions'}
</a>
{/if}
{/foreach}
{/if}
<!--
<button
class="btn btn-primary add-to-cart"
data-button-action="add-to-cart"
type="submit"
{if !$product.add_to_cart_url}
disabled
{/if}
<i class="material-icons shopping-cart"></i>
{l s='Add to cart' d='Shop.Theme.Actions'}
</button>
-->
</div>
{hook h='displayProductActions' product=$product}
</div>
{/block}