我想在PS版1.5.x中的"功能选项卡","属性"选项卡等产品管理页面中添加一个新选项卡,其中包含自定义模块.我将此标签添加到产品编辑页面,以便我可以添加选项以将产品视频上传到管理员.
这是我想要实现的截图:

我在这里找到了一个解决方案:http://blog.belvg.com/how-to-create-a-custom-product-tab-in-prestashop.html
我已经通过FTP克隆了一个使用prestashop构建的整个在线网站并将其托管在XAMPP上.我已经下载了SQL转储并使用phpMyAdmin在本地导入它.我已将conf文件更改为使用本地数据库.
当我转到localhost/myProject时,它会将我重定向到网站网址.这是为什么 ?是否有其他配置设置要编辑?我已经查看了数据库中的conf表,并且域URL已经设置为"localhost",即使在在线版本上也是如此.
更新:我在表"ps_shop_url"中找到了对该网站的引用.我将其值更改为localhost,现在当我转到localhost它告诉我"此页面有一个无限的重定向循环"
我实际上面临一个基于Prestashop的几个网站(实际上是3个)的大问题.问题是PHP或Prestashop随机地将价格舍入到最接近的整数,并且它不是系统的.
大多数时候,它应该是完美的,但有时候(两个问题可能需要数周或数月),价格是四舍五入的.我的圆形模式选项被正确设置为显示两位小数.
在后台编辑产品价格或客户处于结账步骤时,可能会出现此问题.
我试图重现这个问题,所以我创建了一个基本测试:我检索购物车信息,然后显示它的价格.我多次刷新页面,我看到价格只有几次.最有趣的是,在测试的开始和结束之间,上下文和代码都没有变化.
我在谷歌搜索帮助,似乎没有人有这个问题......
有人遇到这个问题吗?你认为它是PHP问题还是Prestashop问题?在此先感谢您的帮助.
以下是Prestashop正在使用的循环函数的代码:
round($value, 2, PHP_ROUND_HALF_UP);
Run Code Online (Sandbox Code Playgroud)
有关信息,请参阅PHP 5.4.39的版本.
我创建了一个自定义支付模块,目前它validateOrder()在从支付网站重定向后调用,此方法创建订单,发送电子邮件等.但问题是,如果用户关闭支付网站,然后它可以重定向回PrestaShop网站在这种情况下不会创建订单.因此,我想"pending"在重定向到付款网站之前创建一个订单(比如说有状态),并且在从付款网站重定向后,我可以简单地标记相同的付款并发送邮件等.
目前为此我试图调用validateOrder两次,一次进入hookdisplayPayment(这里我将状态设置为"pending"),一次调用后重定向.但现在重定向后,我得到"购物车无法装载,或者已经使用此购物车下订单".我认为这是因为我不能使用相同的卡ID更新同一个订单两次.
请注意,付款成功后,我只想发送一次电子邮件.目前,我使用自定义付款状态'send_email'设置为0.
这有什么好的解决方法?
如果重要的话,我想支持1.5+和1.6+版本.
我想在不使用CMS的情况下在Prestashop 1.5.3中创建自定义页面.
不幸的是我找不到任何与1.5.3一起使用的教程.
到目前为止,我已在stores根目录中创建了一个test.php文件,其中包含以下内容:
<?php
include(dirname(__FILE__).'/config/config.inc.php');
include(dirname(__FILE__).'/header.php');
$smarty->display(_PS_THEME_DIR_.'test.tpl');
?>
Run Code Online (Sandbox Code Playgroud)
我将相应的test.tpl放在我的主题basefolder中.它只包含'你好世界'.
我更改了blockmenu.php并创建了一个指向我页面的自定义链接:
$this->_menu .= '<li><a href="test.php">TEST</a></li>'.PHP_EOL;
Run Code Online (Sandbox Code Playgroud)
如果我点击链接页面显示,但HTML是某种腐败.页面的body-id设置为pagenotfound,左列生成但未显示.有没有办法为我的自定义页面设置$ page_name,以便我可以检查我的自定义页面是否已加载并抑制左右列的生成?
有没有其他方法可以创建没有CMS的功能自定义页面?
我在PrestaShop上遇到很大问题,我使用自己创建的API为移动应用程序提供服务.
现在,我可以添加,删除,更新数量到第一个购物车.我也可以导航到类别和子类别,如我的网上商店.
但我有两个商店,我想在第二个商店添加一个特定的产品在multishop模式,脚本总是添加到第一个购物车.
这是我在购物车中添加的行.
第一店ID = 1
秒店= 4
$_shop = new Shop(_PS_SHOP_SELECTED_ID); //_PS_SHOP_SELECTED_ID = 4
$isAdded = $cart->updateQty((int)$product->quantity, (int)$producToAdd->id, $id_product_attribute, FALSE, 'up', 0,$_shop);
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Prestashop实例的图像产品更新页面.
我使用prestashop Web服务获取信息.问题是当我加载页面时,它会询问prestashop的令牌/密钥,但是我想要使用Url和我从CURL传递的密钥保存登录会话,而不是每次都输入密钥.然而输出 curl_exec 是一些奇怪的字符,如??#B??R??$3br?
以下是保存会话的功能:
function saveSession($url, $key){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERPWD, $key.':');
curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate,sdch');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
Run Code Online (Sandbox Code Playgroud)
我不知道问题是编码,标题还是有任何其他解决方案!?
我正在尝试获取prestashop产品的图像URL,具体取决于它的ID.我正在尝试使用prestashop提供的方法的代码,但我什么都没得到
<?php
//require('config/settings.inc.php');
//require('classes/Image.php');
require('classes/Link.php');
$ItemID=$_GET["catID"];
$db=mysql_connect(constant('_DB_SERVER_'),constant('_DB_USER_'), constant
$image = Image::getCover($ItemID);
$imagePath = Link::getImageLink($product->link_rewrite, $image['id_image'], 'home_default');
Run Code Online (Sandbox Code Playgroud)
这段代码不起作用,我试图添加所需的类,但它们也产生了问题.另外,如果我评论最后两行,则require本身会产生错误.我正在计划手动构建图像URL的其他工作代码正在运行
<?php
require('config/settings.inc.php');
$ItemID=$_GET["catID"];
$db=mysql_connect(constant('_DB_SERVER_'),constant('_DB_USER_'), constant
('_DB_PASSWD_')) or die('Could not connect');
mysql_select_db(constant('_DB_USER_'), $db) or die('');
if (is_numeric($ItemID)) {
$result = mysql_query("SELECT name,date_add,price , IFNULL(imageURL,'') as imageURL
FROM product inner join product_lang on product_lang.id_product=product.id_product
left join app_product_image on product.id_product=app_product_image.id_product where
id_lang=1 and product.id_product='$ItemID'") or die('Could not query');
$json = array();
if(mysql_num_rows($result)){
// $row=mysql_fetch_assoc($result);
while($row=mysql_fetch_row($result)){
// cast results to specific data types
//$test_data[]=$row;
$json['name']=$row[0];
$json['date']=$row[1];
$json['price']=$row[2]; …Run Code Online (Sandbox Code Playgroud) Prestashop 1.6
我创建了一个模板,将一个表单添加到产品页面.我使用prestashop模块生成器来创建一个基本的裸机模块.除了通过钩子向产品页面添加表单外,它不会执行任何操作.
我正在使用default-bootstrap主题.
表单是通过.tpl文件生成的,该文件基于产品所在的类别(即,如果它在类别A中,则表示形式A).表单如下所示:
<form id="engraving_selection">
<h3>Engraving Options</h3>
<input type="radio" name="engraving" value="Engrave-Different" id="engrave_different" checked="checked">Unique engraving for each item<br />
<input type="radio" name="engraving" value="Engrave-Same" id="engrave_same">The engraving would the same on each item<br />
<input type="radio" name="engraving" value="No-Engraving" id="no_engraving">I would not like engraving<br />
</form>
<form id="engraving_options">
<h4>Engraving Text</h4>
<div id="items">
<div class="item" data-position="1">
<h4 id="engraving-item">Item 1</h4>
<label>Engraving Line 1: </label>
<input type="text" class="engraving-input" name="line1-trophy" id="item1">
<br />
<label>Engraving Line 2: </label>
<input type="text" class="engraving-input" name="line2-trophy" id="item1">
<br />
<label>Engraving Line …Run Code Online (Sandbox Code Playgroud) 我正在使用Sublime文本编辑器.我要验证的一个的Prestashop模块验证.但它显示的错误就像
End of line character is invalid; expected "\n" but found "\r\n"
这行代码只包含<?php.我搜索并用"\n"替换为来自不同编辑器的"\n".但它根本不起作用.你能告诉我如何解决这个问题吗?任何帮助和建议都会非常明显.谢谢
prestashop ×10
php ×8
ajax ×1
curl ×1
e-commerce ×1
encoding ×1
javascript ×1
module ×1
mysql ×1
redirect ×1
replace ×1
session ×1
sublimetext3 ×1