For an illustration, see the following MWE.
MWE
\documentclass{article}
\usepackage{etoolbox}
\newcommand\Push[1]{\gappto\Array{#1}}
\newcommand\NewItem[2]{%
\expandafter\newrobustcmd\csname#1\endcsname{#2}%
\Push{#1}%
}
\newcommand\PrintOut{%
% for each <x> in \Array, call \<x>
}
\NewItem{Books}{There are 3 books in stock.}
\NewItem{Pencils}{There are 2 pencils in stock.}
\begin{document}
\section{Manually printed}
\begin{enumerate}
\item \Books
\item \Pencils
\end{enumerate}
\section{Automatically printed by iterating \textbackslash Array}
\end{document}
Questions
How to iterate the list \Array and call the corresponding macro for each element?

seqs to store keys and values separately. – Henri Menke Dec 07 '15 at 08:49