【问题标题】:Merge API context with session将 API 上下文与会话合并
【发布时间】:2022-11-18 04:51:22
【问题描述】:

我有以下问题: 我有一个不在 shopware 上下文中的着陆页。我有添加到购物车按钮并想将产品添加到购物车。

我能做什么和工作:

  • 创建 api 上下文
  • 创建购物车
  • 添加产品

什么还行不通 - 与商店的互动:

  • 使用已经存在的购物车开始
  • 继续使用我们创建的购物车并使用正常结帐

【问题讨论】:

    标签: shopware6 shopware6-api


    【解决方案1】:

    解决方案是从会话中获取上下文。我这样破解它:

    <?php
    
    declare(strict_types=1);
    
    function generateRandomString()
    {
        $characters = implode('', range('a', 'z')) . implode('', range('A', 'Z')) . implode('', range(0, 9));
        $charactersLength = strlen($characters);
        $randomString = '';
        for ($i = 0; $i < 32; $i++) {
            $randomString .= $characters[random_int(0, $charactersLength - 1)];
        }
    
        return $randomString;
    }
    
    session_name('session-');
    session_start();
    if (!isset($_SESSION['_sf2_attributes']['sw-context-token'])) {
        $_SESSION['_sf2_attributes']['sw-context-token'] = generateRandomString();
    }
    ?>
    
    
    <script>
       const context = <?php echo json_encode($_SESSION['_sf2_attributes']['sw-context-token'], JSON_THROW_ON_ERROR)?>;
    </script>
    

    这个 context 然后在 API 调用中使用。它就像一个魅力。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-07
      • 1970-01-01
      • 1970-01-01
      • 2011-09-04
      • 2018-05-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多