Fecshop

第 2 位会员

会员
个人信息
个人简介
Terry
个人成就
  • 发表文章次数 277
  • 发布回复次数 2495
  • 个人主页浏览次数 268
如何做多 sku 商品的捆绑销售1天前

@successgdc #4楼

嗯,别忘记提交的bug问题和步骤,我本地重现一下你说的那个多语言的问题,后台界面修改快做完了,想近期发版。

英文搜索运行搜索索引时的问题1天前

1.Could not open input file: /cygdrive/f/PhpstormProjects/fecshop/vendor/fancyecommerce/fecshop/shell/search/../../../../../yii,那么你可以看看这个文件是否存在,如果没有存在,可能你没有在安装的时候执行 ./init (windows下执行yii.bat)

2.这个是您没有安装 php-mongodb扩展,可以 php -m看一下

composer create-project fancyecommerce/fecshop-app-advanced fecshop 后卡住不动了1天前

可能是网络问题,阿里云主机一般没有问题

或者翻墙试试吧

蓝灯(每天有免费额度):https://github.com/getlantern/lantern/

请下载1.6.3.0版本(目前最新)

如何做多 sku 商品的捆绑销售2天前

我有一个简单实现你的这种需求的思路

1.产品添加字段组合价格,用来填写组合产品子项的组合后的价格

2.产品添加字段组合sku,也就是组合产品中的子项产品

3.产品页面下面显示组合产品的子项产品,可以勾选一起加入购物车

4.购物车中产品的价格计算,需要查询产品的组合sku,是否存在于购物车中,如果存在,则价格计算将组合产品考虑进去。计算在购物车中产品的价格。(购物车产品的价格是动态计算的)

当然,最简单的实现,还是新建一个sku,当做一个新产品对待,这种处理起来也是非常的容易,可以在这个产品中记录子项产品的sku,方便订单发货,另外作为整体销售的产品,如果发生退货问题,需要考虑全退和部分退货的问题,因为整体销售存在优惠,是否允许部分产品退货,如果允许如何计算退款等等。

2.产品页面加入购物车,

appserver 中的 /customer/login/account 接口无法识别fetch提交的post数据2天前

@tgy3300 #25楼 无论是vue,还是其他客户端,这些都是无关的, 主要看请求方式,如果ajax的请求是form表单的方式,那么不需要做改动,如果是json的格式,就需要加上这个配置。

如何做多 sku 商品的捆绑销售2天前

如果你一起销售,需要做价格调整,也就是这种买更优惠,建议新建一个sku,这样产品的图片,描述,价格等都可以单独编辑

如果你一起销售,并没有什么优惠,譬如买一个电脑,下面有键盘和鼠标可以勾选, 可以在产品加入购物车下面显示几个产品,然后勾选,一起加入购物车的方式解决。

目前没有做这种复杂的 group product 类型

appserver 中的 /customer/login/account 接口无法识别fetch提交的post数据2天前

我明白你的问题了,fecshop的vue使用的是form提交的数据,而你提交的是json格式数据

因此需要配置,打开文件

@appserver/config/main-local.php

<?php
$config = [
	'components' => [
        'request' => [
            // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
            'cookieValidationKey' => 'xxxxxxxxxxxxx',
            'parsers' => [
                 'application/json' => 'yii\web\JsonParser',
            ],
        ],
    ],
];

这里添加上试一下是否可以。

appserver 中的 /customer/login/account 接口无法识别fetch提交的post数据2天前

因此,导致你这个问题的原因,要么是 请求类型不是 application/json

要么request组件中没有配置parsers

'request' => [
            'class' => 'yii\web\Request',
            'parsers' => [
                 'application/json' => 'yii\web\JsonParser',
            ],
        ],
appserver 中的 /customer/login/account 接口无法识别fetch提交的post数据2天前

@tgy3300 [#13楼](#comment13)

关于三楼部分的代码,先看:http://www.fecshop.com/topic/413

public function getBodyParams()
    {
        if ($this->_bodyParams === null) {
            if (isset($_POST[$this->methodParam])) {
                $this->_bodyParams = $_POST;
                unset($this->_bodyParams[$this->methodParam]);
                return $this->_bodyParams;
            }

            $rawContentType = $this->getContentType();
            if (($pos = strpos($rawContentType, ';')) !== false) {
                // e.g. application/json; charset=UTF-8
                $contentType = substr($rawContentType, 0, $pos);
            } else {
                $contentType = $rawContentType;
            }

            if (isset($this->parsers[$contentType])) {
                $parser = Yii::createObject($this->parsers[$contentType]);
                if (!($parser instanceof RequestParserInterface)) {
                    throw new InvalidConfigException("The '$contentType' request parser is invalid. It must implement the yii\\web\\RequestParserInterface.");
                }
                $this->_bodyParams = $parser->parse($this->getRawBody(), $rawContentType);
            } elseif (isset($this->parsers['*'])) {
                $parser = Yii::createObject($this->parsers['*']);
                if (!($parser instanceof RequestParserInterface)) {
                    throw new InvalidConfigException("The fallback request parser is invalid. It must implement the yii\\web\\RequestParserInterface.");
                }
                $this->_bodyParams = $parser->parse($this->getRawBody(), $rawContentType);
            } elseif ($this->getMethod() === 'POST') {
                // PHP has already parsed the body so we have all params in $_POST
                $this->_bodyParams = $_POST;
            } else {
                $this->_bodyParams = [];
                mb_parse_str($this->getRawBody(), $this->_bodyParams);
            }
        }

        return $this->_bodyParams;
    }

如果 request组件(component)的配置,设置了parsers

'request' => [
            'class' => 'yii\web\Request',
            'parsers' => [
                 'application/json' => 'yii\web\JsonParser',
            ],
        ],

那么上面的代码中 $this->parsers 就是上面设置的值

[
	'application/json' => 'yii\web\JsonParser',
]

到这里,如果$contentType的值为:application/json,那么就会满足条件,下面的代码就会执行。

if (isset($this->parsers[$contentType])) {
                $parser = Yii::createObject($this->parsers[$contentType]);
                if (!($parser instanceof RequestParserInterface)) {
                    throw new InvalidConfigException("The '$contentType' request parser is invalid. It must implement the yii\\web\\RequestParserInterface.");
                }
                $this->_bodyParams = $parser->parse($this->getRawBody(), $rawContentType);
            }

isset($this->parsers[$contentType]) 返回为true

appserver 中的 /customer/login/account 接口无法识别fetch提交的post数据2天前

@tgy3300 #13楼

你的这部分功能,是fecshop默认的功能,还是你二次开发的功能?

docker-compose biuld 报错 cannot open self /usr/local/bin/docker-compose or archive /usr/local/bin/docker-compose.pkg3天前

把报错信息写到title里面:cannot open self /usr/local/bin/docker-compose or archive /usr/local/bin/docker-compose.pkg

方便后面的人搜索,如果解决了,可以在评论区写上解决的方法

appserver 中的 /customer/login/account 接口无法识别fetch提交的post数据3天前

对于php,你的这个数据只能通过 php://input

但是对于Yii2框架,进行了封装,当请求是json的时候,是可以从Yii::$app->request->post()中取出来数据的

我之前有一个对yii2这个方面的分析:http://www.fecshop.com/topic/413

你可以参考debug一下问题原因。

用ip和端口号替换appfront以及appimge的地址,图片地址不请求,是不是跨域问题3天前

appfront不存在跨域问题,appserver端才存在跨域问题

你单独访问一下这个图片地址,看一下是否可以访问。

应该是nginx配置的问题。

fecshop中如何coll时获取关联数据库的数据3天前

建议使用多次查询,如果多个产品可以使用in查询

php 扩展安装错误13天前

@docker11931 #4楼

嗯,您可以到网上在搜一下资料,我的那个安装是基于centos6安装的

php 扩展安装错误13天前

@docker11931 #2楼 用docker不需要执行上面的命令行的

https://github.com/fecshop/yii2_fecshop_docker

Your Site Analytics