osCommerceの商品部分のなかでオプションは特に面倒な部分だ。
そのお客様の使用しているバージョンでは、項目選択肢を使うと在庫数のチェックが正確にできなかった。ソースを確認すると項目選択肢はまったく考慮されていないようだった。項目選択肢を有効にすると商品型番に{nd:数字}が、在庫選択肢を有効にすると{md:数字}のような文字列が追加される。在庫選択肢は、この文字列を考慮した仕組みがはじめから実装されていたが、項目選択肢を考慮した機能はなかった。

{nd:数字}と{md:数字}が付いている場合
{nd:数字}が付いている場合
商品型番のみまたは商品型番に{md:数字}が付いている場合

のように3パターンにして、文字列から商品型番を抜き出して、同じ商品の場合は数量を加算することで、うまく在庫を確認することができた。

これでうまく動作すると思ったが、注文側で、商品番号が勝手に変わっていることがわかった。osCommerceのオプションは本当に面倒だ。