【发布时间】:2022-11-18 04:51:22
【问题描述】:
我有以下问题: 我有一个不在 shopware 上下文中的着陆页。我有添加到购物车按钮并想将产品添加到购物车。
我能做什么和工作:
- 创建 api 上下文
- 创建购物车
- 添加产品
什么还行不通 - 与商店的互动:
- 使用已经存在的购物车开始
- 继续使用我们创建的购物车并使用正常结帐
【问题讨论】:
我有以下问题: 我有一个不在 shopware 上下文中的着陆页。我有添加到购物车按钮并想将产品添加到购物车。
我能做什么和工作:
什么还行不通 - 与商店的互动:
【问题讨论】:
解决方案是从会话中获取上下文。我这样破解它:
<?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 调用中使用。它就像一个魅力。
【讨论】: